Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

9 Schritt:Schritt 1: Holen Sie Ihre Bestellung Schritt 2: Löten Sie Ihre Verbindung Schritt 3: Stellen Sie Ihre Brotschneidebrett-Up Schritt 4: Schließen Sie das Arduino Schritt 5: Schließen Sie die Motoren Schritt 6: Sidetrack - Back EMF Schutz Schritt 7: Fügen Sie Back-EMF Protection Schritt 8: Final Assembly Schritt 9: Der Kodex

Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

Als Anfänger mich, kämpfte ich, um eine One-Stop-Befehlssatz zu finden, um zum Laufen zu bringen mit Sparkfun der Motortreiber 1a Doppel TB6612FNG . Diese Motortreiber Breakout-Board ist ein außergewöhnliches Preis ist schön klein, aber hat noch ein wenig mehr Aufwand, um es arbeiten.

Die TB6612FNG ist eine H-Brückentreiber - Ich will nicht in die technischen Einzelheiten, wie es funktioniert, aber das Endergebnis ist, dass es eine angeschlossene Motor in beiden Richtungen und mit einer variablen Geschwindigkeit zu drehen. Dies ermöglicht Ihnen, eine sehr agile Roboter von 2 Motoren angetrieben zu bauen:
- Vorwärts zu bewegen
- rückwärts bewegen
- Drehen Sie in einem sehr engen Kreis von Fahr ein Motor vorwärts und einen Motor in umgekehrter
- Eine Vielzahl von anderen bewegt mit Differenzial Motor Geschwindigkeiten und Richtungen

Um dieses instructable auf den Fahrer ausgerichtet zu halten, habe ich den Bot auf einem einfachen Meccano Körper gebaut und haben nicht verlängert es auf keinen Hinderniserkennung gehören - der Bot treibt nur einen Satz Muster.

Bevor Sie beginnen - die Fahrerdaten:
- Logik-Versorgungsspannung (VCC) von 2,7 bis 5,5 VDC
- Motor-Versorgungsspannung (VM) bis tp 15VDC
- Aktuelle von 1,2 A pro Kanal konstant (3.2A Peak)
- Antriebe bis zu 2 Motoren

Bilder:
1. Fertige Robot
2. Die TB6612FNG Breakout-Board
3. Volle Schaltplan

Schritt 1: Holen Sie Ihre Bestellung

  1. Erstens: Die Zutaten
    - 1 x Sparkfun Motortreiber 1a Doppel TB6612FNG
    - 1 x von Set -Header Pins
    - 1 x Brotschneidebrett sowie Anschlussdrähte
    - 8 x 1N4001 Gleichrichterdioden (oder ähnlich)
    - 1 x Arduino Uno R3
    - 1 x 6V Netzteil (I verwendet 4x 1,2V NiMH-Akkus in einer Halterung)
    - 1 x 9V-Batterie mit einer 2,1 mm Hohlstecker
    - 2 x DC-Motoren Strom und Spannung Bewertung des Fahrers nicht mehr als (I verwendet Pololu der 250: 1 Mikrometallgetriebemotor für ihre überschaubare RPM und hohem Drehmoment)
    - Montagebügel und Räder (I verwendet Pololu verlängert Getriebemotor Klammern und 32x7 Räder - kleine Räder = überschaubare Geschwindigkeit)
    - Etwas, um den Körper zu bauen (Meccano, Lego, dicke Wellpappe, etc)

    Zweitens: Die Kochgeräte
    - Lötkolben
    - Resin Kern Lot
    - Abisolierzangen

Schritt 2: Löten Sie Ihre Verbindung

  1. Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Sie müssen ein paar Verbindungen zu löten, bevor Sie loslegen. Ich fand das feine Lötarbeiten entmutigend sein, aber randofo ist How-To half immens - zusammen mit einer guten Dosis der Praxis auf ein paar alte Bretter fand ich herumliegen.

    Die Breakout-Board
    Die TB6612FNG Ausbruch kommt ohne Pins - so müssen Sie Ihre eigenen löten.

    Snap 2 Sets von 8 Kopfstiften aus dem Streifen mit einer Zange um einen sauberen Bruch am rechten Stift zu bekommen. Legen Sie die Kopfstiften in ein Steckbrett, und dann die Breakout-Board oben auf diese - dies wird den richtigen Abstand und einen Winkel von 90 Grad zwischen der Karte und den Kopfstiften zu gewährleisten. Ich habe auch Play-Doh verwendet werden, um Stifte in Position zu halten (Play-doh nicht schmelzen, es geht einfach knackig und abgreifbar ist). Sie werden von meinem weniger als feine Lötarbeiten, die ich bin immer noch in den Griff bekommen mit meinem Lötkolben zu sehen!

    Batterieanschlüsse - der Motor die Batterie
    Der Motor läuft weg von einem separaten 6V-Quelle. In Abhängigkeit von der Art von Stecker Sie für Ihre Batteriehalter haben, müssen Sie möglicherweise die Kopfstifte auf den Leitungen löten - die Stromversorgung der Motor in das Steckbrett zu verbinden. (Die Breakout-Board verfügt über Kondensatoren an Bord, um Rauschen aus dem Motor zu isolieren, so dass keine Notwendigkeit, diese selbst hinzufügen)

    Batterieanschlüsse - der Arduino-Batterie
    Das Arduino wird weglaufen einer 9V-Batterie, so dass sie nicht brauchen, um das USB-Kabel angebunden werden. Je nach Stecker / Halter haben Sie benötigen, um eine 2,1 mm Hohlstecker auf den Leitungen löten (sicherstellen, dass der Mittelstift ist mit der positiven Leitung gelötet). Alternativ kaufen Sie eine Halterung mit einem Anschluss bereits angebracht.

    Motorklemmen
    Schließlich löten Drähte der Motoren-Terminals. Ich verwendete Schaltdrähte, zog das eine Ende und gelötet auf die Motor. Auf diese Weise, die Stifte müssen Sie den Motor mit dem Steckbrett zu verbinden.

    Bilder:
    1. Löten der Breakout-Board (kann Ihnen sagen, ich lerne immer noch!?!)
    2. Batterie-Anschlüsse verlötet
    3. Motorklemmen gelötet und Motoren montiert

Schritt 3: Stellen Sie Ihre Brotschneidebrett-Up

  1. Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Halten sie alle zusammen
    Ich habe ein Gummiband verwendet, um meine Arduino auf meinem Steckbrett zu halten. Dies verhindert einen versehentlichen Kurzschluss der Kontakte auf der Unterseite des Arduino, und hält sie auf dem Steckbrett befestigt - man kann nicht versehentlich de-Draht Ihre gesamte Projekt, wenn die Steckbrett wandert zu weit von der Arduino!

    Positionieren Sie den Motor Driver
    Legen Sie die TB6612FNG Breakout-Board auf dem Steckbrett. Es muss den Abbau der Mitte des Steckbrett zu überspannen, so dass die zwei Reihen von Pins an getrennte Stromkreise halten. Die eine Seite des Treiber-Platine verarbeitet Eingänge, und die anderen Ausgänge.

    Power Rails
    Meine Steckbrett hat 2 Stromschienen - ich benutze ein (das oberste in den Bildern), um den Arduino / TB6612FNG Strom zu versorgen, und die andere (die untere), um den Motor des Strom zu versorgen. Sie müssen die Motoren von einer separaten Energiequelle fahren, wie der Strom die Motoren zeichnen wahrscheinlich zu viel für die Arduino zu handhaben sein. Sie müssen die GND von den beiden Quellen zu verbinden, um eine gemeinsame Basis zu gewährleisten.

    Bilder:
    1. Montage der Breakout-Board
    2. Gesamtschaltplan
    3. Physikalische Schaltung, Motoren und Motor Batterien off-Rahmen (beachten Sie die Starthilfekabel an der linken Verbindungs ​​die Erde von den beiden Stromquellen)

Schritt 4: Schließen Sie das Arduino

  1. Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Jetzt verdrahten den Breakout Board an den Arduino - sowohl die Steuerstifte und die Macht.

    Schließen Sie die Stromversorgung:
    Die Macht Sie hier den Anschluss ist die Kraft benötigt, um die TB6612FNG, nicht die Macht, um die Motoren anzutreiben.
    - Verbinden Sie die 5V Arduino mit der VCC-
    - Schließen Sie das Arduino GND an die GND-

    Schließen Sie das Control Pins:
    Jeder Motor (mit A und B) 3 Steuereingänge IN1 und IN2 aus welcher Richtung sie sich dreht, und ein PWM-Eingangsdrehzahl zu steuern. Die STBY Stift wird verwendet, um die Motoren zum Leben zu erwecken / setzen Sie sie in den Schlaf
    - Pin 3 ---> PWMA
    - Pin 8 ---> AIN2
    - Pin 9 ---> AIN1
    - Pin 10 ---> STBY
    - Pin 11 ---> BIN1
    - Pin 12 ---> BIN2
    - Pin 5 ---> PWMB

    Bilder:
    1. Schließen Sie das Netz
    2. Schließen Sie die Steuerstifte
    3. Schaltplan
    4. Rückseite des Breakout-Board ist, die Verbindungspunkte

Schritt 5: Schließen Sie die Motoren

  1. Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Weiter ist es, die Motoren mit dem Steckbrett zu verbinden.

    Connect Motorleistung
    Verbinden Sie den unteren Leistungsschiene (6 V) an die Breakout-Board VM pin

    Verbinden Sie die Output-Pins
    Schließen Sie die A01 und A02 / B01 und B02 Pins des Breakout-Board mit dem Steckbrett. Diese Paare (01 und 02) wird jedes Motorantrieb - der TB6612FNG wird die Polarität zu wechseln und die Kontrolle der Spannung der diese, um die Richtung und die Geschwindigkeit, die der Motor also in bestimmen.

    Im nächsten Schritt werden wir die Motoren mit dem Steckbrett (mit einigen Gegen-EMK-Schutz) zu verbinden

    Bilder:
    1. Schließen Sie den Strom aus der unteren Schiene
    2. Verbinden Sie die Ausgänge mit dem Steckbrett, bereit, die Motoranschlüsse zu akzeptieren. Hinweis Motorbatterie in unten links angeschlossen

Schritt 6: Sidetrack - Back EMF Schutz

  1. Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung
    Es gibt jede Menge Informationen über Back-EMF Protection, aber ich bin nicht wirklich so technisch. Also in Bezug auf meine Laien ...

    EMF (elektromotorische Kraft) ist grundsätzlich Strom, der erzeugt wird (in diesem Fall), wenn Trägheits hält einen Motor dreht, nachdem seine Stromversorgung unterbrochen wurde geschnitten. Der Motor effektiv zu einem Generator, und der Strom erzeugt sie "schlägt zurück" in die Schaltung möglicherweise zu Schäden an den Komponenten.

    Glücklicherweise gibt es eine Möglichkeit, dass wir dagegen zu schützen ...

    Gegen-EMK-Schutz wird am einfachsten durch Verbinden einer Diode parallel zu dem Motor erreicht wird. Die Diode (vereinfacht ausgedrückt) leitet die Spannung wieder in den Motor, so dass es nicht den Rest der Schaltung zu beschädigen. Eine gemeinsame Diode zu verwenden, ist die 1N4001.

    In einer einfachen Schaltung, die einen Motor in eine Richtung treibt, das ist ganz einfach - finden Sie in der obigen Abbildung. Verbinden die Diode, die parallel zum Motor - das Ende mit dem weißen Streifen eine Verbindung zu der positiven Versorgungs und der andere auf den Boden.

    Wir sind jedoch Steuern eines Motors, der in beiden Richtungen, was bedeutet, dass diese Methode nicht drehen kann. Wir müssen ein wenig mehr kreativ und leider verwenden 4 mal so viele Dioden.

Schritt 7: Fügen Sie Back-EMF Protection

  1. Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung

    Um den Treiber und die Schaltung gegen Gegen-EMK zu schützen, müssen wir 2 Gleichrichter-Dioden, um jede Verbindung, dass jeder Motor macht mit dem Steckbrett zu verbinden (Ich habe diese Verbindungen die "Motorklemmen" der Einfachheit halber genannt). Dies sorgt dafür, dass jeder Motor kann in beiden Richtungen drehen.

    Eine Diode verbindet den Motoranschluss zu Positiv, die andere Diode verbindet den Motor Anschluß GND. Es ist wichtig, um die Polarität richtig zu machen, so schließen Sie wie folgt vor:
    - Motorklemmen ---> Positive: weißer Streifen der Diode mit der positiven Stromschiene
    - Motorklemmen ---> Boden: weiße Streifen Diode mit dem Motoranschluss

    Abschließend den Motor an dem Steckbrett - in dem Bild hier, das weiße Kabel.

    Wiederholen Sie diesen Vorgang für jede der 3 verbleibenden Motorleistungen

    Bilder:
    1. Anschlüsse für einen einzigen Motorklemmen
    2. Vollpension, mit allen 4 Motorklemmenanschlüsse

Schritt 8: Final Assembly

  1. Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung
    Wir haben jetzt alles, was wir brauchen, um von einer elektrischen Perspektive verbunden sind:
    - Zum TB6612FNG Breakout-Board Arduino
    - Breakout Board Motorleistung und Dioden für Gegen-EMK-Schutz
    - Motoren mit dem Steckbrett

    Jetzt müssen wir sie alle zusammen auf einem einfachen Körper gelegt:
    - 2 Rollen an den Motoren montiert
    - Eine dritte Lenkrolle / Kugel, die sich frei bewegen
    - Platz für die Steckbrett, Arduino und Batterien halten

    Hier ist, was ich kam mit - man könnte dies mit alles von Lego zusammenarbeiten, um zu einem einfachen Plastikschale / Karton Meccano.

Schritt 9: Der Kodex

  1. Unter Verwendung der Sparkfun Motortreiber 1a Doppel TB6612FNG - Eine Einführung
    Schließlich, hier ist der Code, den ich verwendet, um die Motortreiber steuern. Hoffe, es ist klar genug, kommentierte Sinn zu machen, und Entschuldigungen Ich konnte nicht herausfinden, wie einen Download-Link, um es zu schaffen!

    Genießen Sie.
    / *
    Beispielcode, um die Sparkfun TB6612FNG 1A Dual-Motortreiber mit Arduino UNO R3 ausführen

    Dieser Code führt ein paar einfache Manöver, um die Funktionen zu veranschaulichen:
    - Motorantrieb (motorNumber, motorDirection, Motorgeschwindigkeit)
    - Motorbremse (motorNumber)
    - Motorstop (motorNumber)
    - MotorsStandby

    Anschlüsse:
    - Pin 3 ---> PWMA
    - Pin 8 ---> AIN2
    - Pin 9 ---> AIN1
    - Pin 10 ---> STBY
    - Pin 11 ---> BIN1
    - Pin 12 ---> BIN2
    - Pin 5 ---> PWMB

    - Motor 1: A01 und A02
    - Motor 2: B01 und B02

    * /

    // Definieren die Pins

    // Motor 1
    int pinAIN1 = 9; // Direction
    int pinAIN2 = 8; // Direction
    int pinPWMA = 3; // Geschwindigkeit

    // Motor 2
    int pinBIN1 = 11; // Direction
    int pinBIN2 = 12; // Direction
    int pinPWMB = 5; // Geschwindigkeit

    //Stehen zu
    int pinSTBY = 10;

    // Konstanten zu helfen, erinnern die Parameter
    static boolean turnCW = 0; // Für Motordrive-Funktion
    static boolean turnCCW = 1; // Für Motordrive-Funktion
    static boolean motor1 = 0; // Für Motorantrieb, Motorstop, Motorbremse Funktionen
    static boolean motor2 = 1; // Für Motorantrieb, Motorstop, Motorbremse Funktionen

    Leere setup ()
    {
    // Die PIN Modi
    pinMode (pinPWMA, OUTPUT);
    pinMode (pinAIN1, OUTPUT);
    pinMode (pinAIN2, OUTPUT);

    pinMode (pinPWMB, OUTPUT);
    pinMode (pinBIN1, OUTPUT);
    pinMode (pinBIN2, OUTPUT);

    pinMode (pinSTBY, OUTPUT);

    }

    Leere Schleife ()
    {

    // Fahren beide Motoren CW, volle Geschwindigkeit
    Motorantrieb (motor1, turnCW, 255);
    Motorantrieb (motor2, turnCW, 255);

    // Fahren Sie für 2 Sekunden
    Verzögerung (2000);

    // Richtung motor1 Drehen: Stoppen Motor1, langsam Motor2
    Motorstop (motor1);
    Motorantrieb (motor2, turnCW, 192);

    // Drehen Sie für 2 Sekunden
    Verzögerung (2000);

    // In entgegengesetzte Richtung drehen: Stoppen Motor2, langsam Motor1
    Motorantrieb (motor1, turnCW, 192);
    Verzögerung (250);
    Motorstop (motor2);

    // Drehen Sie für 2 Sekunden
    Verzögerung (2000);

    //Aufrichten
    Motorantrieb (motor2, turnCW, 192);
    Verzögerung (500);

    // Motoren in den Standby setzen
    motorsStandby ();
    Verzögerung (1000);

    // Sie eine enge Kurve in Richtung motor1: Motor2 vorwärts, Motor1 Rückwärts
    Motorantrieb (motor1, turnCCW, 192);
    Motorantrieb (motor2, turnCW, 192);

    // Drehen Sie für 2 Sekunden
    Verzögerung (2000);

    // Übernehmen Bremsen, dann in den Standby-
    Motorbremse (motor1);
    Motorbremse (motor2);
    motorsStandby ();

    // Stehen noch für 5 Sekunden, dann wird es noch einmal tun wir ...
    Verzögerung (5000);

    }

    nichtig Motorantrieb (boolean motorNumber, boolean motorDirection, int Motorgeschwindigkeit)
    {
    / *
    Dies treibt einen bestimmten Motor, in eine spezifische Richtung, mit einer bestimmten Geschwindigkeit:
    - MotorNumber: motor1 oder motor2 ---> Motor 1 oder Motor 2
    - MotorDirection: turnCW oder turnCCW ---> im Uhrzeigersinn oder gegen den Uhrzeigersinn
    - Motorgeschwindigkeit: 0 bis 255 ---> 0 = Stop / 255 = schnell
    * /

    boolean pinIn1; // Bezieht sich auf AIN1 oder BIN1 (abhängig von der angegebenen Motor-Nummer)

    // Geben Sie die Richtung, um den Motor drehen
    // Im Uhrzeigersinn: AIN1 / BIN1 = HIGH und AIN2 / BIN2 = LOW
    // Counter-Clockwise: AIN1 / BIN1 = LOW und AIN2 / BIN2 = HIGH
    if (motorDirection == turnCW)
    pinIn1 = HIGH;
    sonst
    pinIn1 = LOW;

    // Wähle den Motor zu drehen, und stellen Sie die Richtung und die Geschwindigkeit
    if (motorNumber == motor1)
    {
    digital (pinAIN1, pinIn1);
    digital (pinAIN2, pinIn1!); // Das ist das Gegenteil der AEIN1
    analogWrite (pinPWMA, Motorgeschwindigkeit);
    }
    sonst
    {
    digital (pinBIN1, pinIn1);
    digital (pinBIN2, pinIn1!); // Das ist das Gegenteil der BIN1
    analogWrite (pinPWMB, Motorgeschwindigkeit);
    }

    // Schließlich stellen Sie sicher STBY deaktiviert ist - ziehen Sie es HOCH
    digital (pinSTBY, HIGH);

    }

    Leere Motorbremse (boolean motorNumber)
    {
    / *
    Diese "Short Brake" s die angegebene Motor, indem Geschwindigkeit auf Null
    * /

    if (motorNumber == motor1)
    analogWrite (pinPWMA, 0);
    sonst
    analogWrite (pinPWMB, 0);

    }

    nichtig Motorstop (boolean motorNumber)
    {
    / *
    Dies stoppt die angegebene Motor indem sowohl IN-Pins auf LOW
    * /
    if (motorNumber == motor1) {
    digital (pinAIN1, LOW);
    digital (pinAIN2, LOW);
    }
    sonst
    {
    digital (pinBIN1, LOW);
    digital (pinBIN2, LOW);
    }
    }

    nichtig motorsStandby ()
    {
    / *
    Damit die Motoren in den Standby-Modus
    * /
    digital (pinSTBY, LOW);
    }