Schritt 8: Adafruit zur Rettung!!!
Bevor wir fortfahren, sollten Sie prüfen, Löten einen Kondensator auf der Servo-Controller-Board zu entkoppeln oder die Stromquelle zu stabilisieren. Es ist auch ratsam, entweder verwenden Sie separate Stromquellen für die Servos und dem Arduino oder entkoppeln/stabilisieren die Macht an den Arduino geliefert. Entkopplung, ist eine andere Art zu sagen, dass Sie einen Kondensator zwischen Spannungsquelle (VCC) und Masse (GND) hinzufügen müssen. Die Größe des Kondensators hängt von der Stromquelle, wie gut es mithalten kann mit Stoßströme und das Element, das Sie Entkopplung sind. Weitere Informationen finden Sie in der Allmächtigen Google. Schließlich verwendest du elektrolytische unbedingt Kappen (Metall kann Kappen) Blick auf die Platine, Ihre Polarität korrekt erhalten.
Eine kleine Auffrischung auf das Servo-Signal:
Frequenz 50Hz beträgt also 1 Sekunde / 50 = 20 Millisekunden (ms) Perioden
1ms Basis Pulse ist die low-Signal, 0 Grad oder volle Rückseite für eine kontinuierliche Rotation (CR)-Servo
1.5ms Pulse ist die mittlere Signal, 90 Grad oder Zentrum für ein CR-servo
2ms Pulse ist das high-Signal, 180 Grad oder voll vorwärts für ein CR-Servo
Die Servo-Controller-Board hat 12 Bit Auflösung pro Periode um das Servo-Signal zu erstellen. Wie verwenden wir diese 12 Bit ist einfach weil 2 ^ 12 = 4096. Jetzt können wir einfachen Verhältnissen oder Stoichemetry um herauszufinden, wie lange wir wollen, dass unser Signal weiterhin hohe Einschaltdauer ot zugeordnete Wert anwenden. Denken Sie daran, Arduinos nicht mögen, Gleitkomma Berechnungen also ganzzahlige Mathematik zu verwenden versuchen oder Sie werden Ihr Programm verlangsamt.
Servo-Signal aus 4096
Gesamtdauer: 20 ms = 4096
Low-Signal: 1 MS = 4096/20 = 205
Mitte Signal: 1.5ms = 205 * 1,5 = 308
High-Signal: 2ms = 205 * 2 = 410
Software-Anleitung:
Diese Werte sollten als Konstanten zu Beginn Ihres Programms für die einfache Bearbeitung später gespeichert werden. So, jetzt gehen wir wie dieses Bereichs zu nutzen, um über das Servo-Board ausgeben?
Zuerst müssen Sie die Bibliothek-Datei für den Vorstand.
#include < Adafruit_PWMServoDriver.h >
Zweitens erklären Sie die Bezeichnung für das Servo-Board zu und verknüpfen Sie die beiden mit der Board-Adresse. Standardadresse ist 0 x 40.
Adafruit_PWMServoDriver servo=Adafruit_PWMServoDriver(0x40);
Drittens in der Setup-Schleife beginnen Sie die Servo-Board-Verbindung.
Servo.Begin();
Viertens: set Freqeuncy Servo-Board in der Setup-Schleife.
servo.setPWMFreq(freq);
Fünftens: schreiben Sie den Wert in der Servo-Board in der Hauptprogramm-Schleife.
servo.setPWM (Kanal, on, off);
servo.setPWM(2,0,ch3);
Hardware-Anweisung:
Erstens verlötet ich auf inklusive Pin-Header, Klemmleiste und eine 470uF elektrolytische Kappe für 10V bewertet. Sie könnten mit einer größeren Kappe und sogar eine bewertete für 6V gehen.
Zweitens, ich änderte nicht die Standardadresse des Vorstands und ist nur erforderlich, wenn Sie, Daisy-Chain mehrere Bretter zusammen wollen.
Drittens habe ich etwas flüssiges Isolierband auf der Unterseite des Pin-Header, da ich einen groben Roboter für die Prüfung machen werden.
Viertens müssen Sie um den I2C-Bus anschließen 5V und GND aus dem Arduino mit VCC und GND Pins liefern. Schließen Sie als nächstes A5, A4, SDA und SCL. Sehen Sie das Bild, das ich mit Fritzing erstellt!
Das sind die Grundlagen und entnehmen Sie bitte Adafruits Tutorial für weitere Informationen. Als nächstes werde ich zeigen, wie ich das Servo-Board mit Logik, zwei kontinuierliche Rotation Servos Steuern umgesetzt.