Inhoudsopgave:

Kleine motoren aansturen met de TB6612FNG - Ajarnpa
Kleine motoren aansturen met de TB6612FNG - Ajarnpa

Video: Kleine motoren aansturen met de TB6612FNG - Ajarnpa

Video: Kleine motoren aansturen met de TB6612FNG - Ajarnpa
Video: Lesson 102: Using ZK-5AD 4A Dual DC Motor Driver TA6586 4A 14V The best Motor Driver (new product) 2024, November
Anonim
Kleine motoren aandrijven met de TB6612FNG
Kleine motoren aandrijven met de TB6612FNG

De TB6612FNG is een dual motor driver IC van Toshiba. Er zijn tal van breakout-boards voor en het is een van de meest populaire keuzes om kleine motoren aan te drijven.

Er zijn tal van online bronnen om aan de slag te gaan met de TB6612FNG, maar ik besloot dit toch te schrijven om beter te kunnen compileren wat ik tegenkwam.

Ik zal me concentreren op de besturingslogica en ook de Sparkfun TB6612FNG-motorstuurprogrammabibliotheek in detail uitleggen in deze instructable.

Stap 1: Benodigde onderdelen

Dit is wat we vandaag gaan gebruiken:

1) Micro-metaalmotoren

2) TB6612FNG-motorstuurprogramma

3) Een Arduino- en USB-kabel

4) Stroombron voor de motoren

5) Broodplank

6) Doorverbindingsdraden

Stap 2: Het TB6612FNG Breakout Board

Het TB6612FNG Breakout-bord
Het TB6612FNG Breakout-bord

Zoals ik eerder al zei, zijn er tal van breakout-boards van verschillende fabrikanten voor de TB6612FNG. Ze hebben allemaal min of meer dezelfde componenten en ook een vergelijkbare pinout.

Condensatoren zijn op het bord gesoldeerd ter bescherming tegen ruis van de motoren, zodat u die keramische condensatoren niet aan de motoren hoeft te solderen.

Het IC wordt ook geleverd met interne diodes om te beschermen tegen EMF van de motoren. Maar het hebben van extra veiligheidsmaatregelen doet niemand pijn. Ik heb ze niet toegevoegd omdat mijn motoren niet erg groot zijn en ik een tekort aan diodes heb:|

Stap 3: Pin-outs

Pin-outs
Pin-outs

Het TB6612FNG breakout board heeft een zeer handige pinout. Alle motoruitgangen, ingangen en stroomaansluitingen zijn mooi gegroepeerd voor maximaal gebruiksgemak.

Ik heb een illustratie gemaakt van de pinouts en hoe je ze moet aansluiten, ik hoop dat het van pas komt bij het aansluiten van al die draden:)

Stap 4: Schema's

Schema's
Schema's
Schema's
Schema's

Ik ben vrij nieuw in het gebruik van Fritzing. Ik vind de circuitschema's van Fritzing vrij moeilijk te begrijpen, maar de breadboard-weergave is handig voor Instructables. Voel je vrij om vragen te stellen als een van de draadverbindingen er verwarrend uitziet.

Stap 5: Bedrading Het Up

Bedrading
Bedrading

Sluit alles aan volgens schema. Er zijn veel draden, controleer het na elke verbinding.

Ik heb de volgende Arduino-pinnen gebruikt voor de ingangen van de motordriver:

Motorstuurprogramma -> Arduino-pinnummer

1) PWMA -> 5

2) INA1 -> 2

3) INA2 -> 4

4) PWMB -> 6

5) INB1 -> 7

6) INB2 -> 8

Dingen die fout kunnen gaan in deze stap: 1) Keer de polariteit niet om tijdens het aansluiten van de Vm en de GND van de stroombron. Je zou je motordriver kunnen braden.

2) Zorg ervoor dat u de PWMA en PWMB aansluit op de PWM-pinnen op de arduino.

3) Vergeet niet om de Arduino GND en de GND van de motordriver aan te sluiten als u voor elk een andere stroombron gebruikt.

Stap 6: De bibliotheek downloaden en installeren

Download de bibliotheek van de GitHub-pagina van Sparkfun.

Nadat u het zipbestand hebt gedownload, opent u uw Arduino IDE.

Voeg vanuit Sketch > Bibliotheek opnemen >. Zip-bibliotheek toevoegen de bibliotheek toe die u hebt gedownload.

Eenmaal succesvol geïnstalleerd, zou het moeten verschijnen in Bestand> Voorbeelden, als 'SparkFun TB6612FNG Motor Library'

Als je problemen hebt met het downloaden en installeren van een Arduino-bibliotheek, bekijk dan stap 5 van dit instructable.

Stap 7: De voorbeeldcode uitvoeren

Nu we onze bibliotheek gereed hebben, kunnen we de voorbeeldcode uploaden om deze uit te testen.

1) Open het voorbeeld 'MotorTestRun' uit de 'Sparkfun TB6612FNG Motor Driver Library' die in uw bibliotheken wordt vermeld.

Opmerking: als u niet dezelfde pincodes gebruikt als vermeld in stap 5, zorg er dan voor dat u de pindefinities wijzigt in overeenstemming met uw instellingen.

2) Selecteer je board bij de boardmanager

3) Upload uw code en de motoren zouden moeten beginnen te bewegen

Zodra u het uploadt, moeten de motoren beginnen te bewegen. Als dit niet het geval is, controleert u uw bedrading opnieuw.

Stap 8: De bibliotheek uitgelegd

Nu om uit te leggen hoe u de bibliotheek kunt gebruiken voor uw eigen stukje code.

Begin eerst met het importeren van de bibliotheek en het initialiseren van de pinnen op arduino

#erbij betrekken

#define AIN1 2 #define AIN2 4 #define PWMA 5 #define BIN1 7 #define BIN2 8 #define PWMB 6#define STBY 9

Om uw motorobjecten te initialiseren, moet u offsets instellen voor elke motor. Stel je voor dat je een voorwaartse opdracht op je motor doet, en hij draait in zijn achteruit. U kunt het handmatig opnieuw bedraden, of u kunt de offset vanaf hier wijzigen. Handige kleine QoL-hack toegevoegd door SparkFun. De waarden van deze offsets zijn 1 of -1.

U moet dan elk van de motoren initialiseren met de volgende parameters;

Motor = Motor (Pin 1, Pin 2, PWM-pin, offset, Standby-pin)

const int offsetA = 1;

const int offsetB = 1; Motor motor1 = Motor (AIN1, AIN2, PWMA, offsetA, STBY);

En hiermee bent u klaar met het initialiseren van de bibliotheek. Geen stappen meer in de setup()-functie, we voeren de code gewoon uit in de loop()-functie.

De motormethode heeft de volgende functies. Knutselen om ze allemaal te bekijken.

1).drive (waarde, tijd)

Motor_name = naam van uw motor objectwaarde= 255 tot -255; negatieve waarden zorgen ervoor dat de motor achteruit gaat = tijd in milliseconden

2).rem()

Remfunctie accepteert geen argumenten, remt de motoren.

3) rem(, <motor_name2)

De remfunctie neemt de namen van motorobjecten als argumenten. Remt de motoren die in de functie zijn overgegaan.

4) vooruit(,, tijd) vooruit(,, snelheid, tijd)

Functie accepteert de naam van twee motorobjecten, optioneel PWM-snelheid en -tijd in milliseconden en laat de motor gedurende de verstreken tijd in voorwaartse richting lopen. Als de waarde van de snelheid negatief is, gaat de motor achteruit. De standaardsnelheid is ingesteld op 255.

5) terug(,, tijd) terug(,, snelheid, tijd)

Functie accepteert de naam van twee motorobjecten, optioneel PWM-snelheid en -tijd in milliseconden en laat de motor gedurende de verstreken tijd in voorwaartse richting lopen. Als de waarde van de snelheid negatief is, zal de motor vooruit gaan. De standaardsnelheid is ingesteld op 255.

6) links(,, snelheid) rechts(,, snelheid)

Functie accepteert twee namen van motorobjecten en snelheid. De volgorde van de motorobjecten die als parameters worden doorgegeven, is belangrijk. Gebruik in plaats daarvan.drive() om enkele motoren aan te drijven.

Aanbevolen: