Innehållsförteckning:

Körning av små motorer med TB6612FNG: 8 steg
Körning av små motorer med TB6612FNG: 8 steg

Video: Körning av små motorer med TB6612FNG: 8 steg

Video: Körning av små motorer med TB6612FNG: 8 steg
Video: 😨 Прощаемся с надёжностью: что не так с дизельной "шестёркой" BMW N57? 2024, November
Anonim
Köra små motorer med TB6612FNG
Köra små motorer med TB6612FNG

TB6612FNG är en dubbelmotordrivrutin IC från Toshiba. Det finns gott om breakout -brädor där ute och det är ett av de mest populära valen att köra små motorer.

Det finns gott om online -resurser för att komma igång med TB6612FNG men jag bestämde mig för att skriva detta ändå för att bättre sammanställa det jag kom över.

Jag kommer att fokusera på styrlogiken och även förklara Sparkfun TB6612FNG -drivrutinsbiblioteket i detalj i denna instruerbara.

Steg 1: Delar krävs

Här är vad vi kommer att använda idag:

1) Micro Metal -motorer

2) TB6612FNG -motorförare

3) En Arduino- och USB -kabel

4) Strömkälla för motorerna

5) Brödbräda

6) Bygeltrådar

Steg 2: TB6612FNG Breakout Board

TB6612FNG Breakout Board
TB6612FNG Breakout Board

Som jag nämnde tidigare finns det gott om breakout -brädor från olika tillverkare för TB6612FNG. Alla har mer eller mindre samma komponenter på dem och även liknande pinout.

Kondensatorer är lödda på kortet för att skydda mot buller från motorerna, så du behöver inte lödda de keramiska kondensatorerna till motorerna.

IC kommer också med interna dioder för att skydda mot EMF från motorerna. Men att ha extra säkerhetsåtgärder skadar ingen. Jag lade inte till dem eftersom mina motorer inte är särskilt stora och jag saknar dioder: |

Steg 3: Pin Outs

Pin Outs
Pin Outs

Utbrottskortet TB6612FNG har en mycket bekväm pinout. Alla motorutgångar, ingångar och strömanslutningar är snyggt grupperade för maximal användarvänlighet.

Jag gjorde en illustration av pinouts och hur jag ansluter dem, jag hoppas att det kommer till nytta när jag ansluter alla dessa ledningar:)

Steg 4: Scheman

Scheman
Scheman
Scheman
Scheman

Jag är ganska ny på att använda Fritzing. Jag tycker att kretsschemat från Fritzing är ganska svårt att förstå, men panelen är bekväm för Instructables. Ställ gärna frågor om någon av kabelanslutningarna ser förvirrande ut.

Steg 5: Anslut det

Koppla upp det
Koppla upp det

Koppla ihop allt enligt scheman. Det finns många ledningar, se till att dubbelkolla efter varje anslutning.

Jag använde följande Arduino Pins för motorförarens ingångar:

Motorförare -> Arduino pin -nummer

1) PWMA -> 5

2) INA1 -> 2

3) INA2 -> 4

4) PWMB -> 6

5) INB1 -> 7

6) INB2 -> 8

Saker som kan gå fel i detta steg: 1) Vänd inte polariteten medan du ansluter Vm och GND från strömkällan. Du kan steka din motorförare.

2) Se till att ansluta PWMA och PWMB till PWM -stiften på arduino.

3) Kom ihåg att ansluta Arduino GND och GND från motordrivrutinen om du använder en annan strömkälla för varje.

Steg 6: Ladda ner och installera biblioteket

Ladda ner biblioteket från Sparkfun's GitHub -sida.

När du har laddat ner zip -filen öppnar du din Arduino IDE.

Från Sketch> Inkludera bibliotek> Lägg till. Zip -bibliotek lägger du till biblioteket du laddade ner.

När den väl har installerats bör den visas i Arkiv> Exempel som 'SparkFun TB6612FNG Motor Library'

Om du har problem med att ladda ner och installera ett Arduino -bibliotek, kolla in steg 5 i denna instruerbara.

Steg 7: Kör exempelkoden

Nu när vi har vårt bibliotek klart kan vi ladda upp exempelkoden för att testa den.

1) Öppna "MotorTestRun" -exemplet från "Sparkfun TB6612FNG Motor Driver Library" listat på dina bibliotek.

Obs! Om du inte använder samma stiftnummer som nämns i steg 5, var noga med att ändra stiftdefinitionerna till enligt din inställning.

2) Välj din styrelse från styrelsechefen

3) Ladda upp din kod och motorerna ska börja röra sig

När du har laddat upp motorerna bör börja röra sig. Om de inte är det, kontrollera din ledning igen.

Steg 8: Biblioteket förklarat

Nu för att förklara hur du använder biblioteket för din egen kodbit.

Börja först med att importera biblioteket och initialisera stiften på arduino

#omfatta

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

För att initiera dina motorobjekt måste du förskjuta för varje motor. Tänk om du gör ett kommando framåt på din motor, och det snurrar bakåt. Du kan manuellt koppla om det, eller så kan du bara ändra förskjutningen härifrån. Snyggt litet QoL -hack tillagt av SparkFun. Värdena för dessa förskjutningar är antingen 1 eller -1.

Du måste sedan initiera var och en av motorerna med följande parametrar;

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

const int offsetA = 1;

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

Och med det här är du klar med att initiera biblioteket. Inga fler steg i setup () -funktionen, vi kör bara koden i loop () -funktionen.

Motormetoden har följande funktioner. Tinker runt för att kolla in dem alla.

1).drive (värde, tid)

Motor_name = namnet på ditt motorobjektvärde = 255 till -255; negativa värden får motorn att röra sig i reversstid = tid i millisekunder

2).broms ()

Bromsfunktionen tar inga argument, bromsar motorerna.

3) broms (, <motornamn2)

Bromsfunktionen tar motorobjektnamn som argument. Bromsar motorerna som gick in i funktionen.

4) framåt (,, tid) framåt (,, hastighet, tid)

Funktionen accepterar namnet på två motorobjekt, valfritt PWM -hastighet och tid i millisekunder och kör motorn framåt under den passerade tiden. Om hastighetsvärdet är negativt går motorn bakåt. Standardhastigheten är inställd på 255.

5) tillbaka (,, tid) tillbaka (,, hastighet, tid)

Funktionen accepterar namnet på två motorobjekt, eventuellt PWM -hastighet och tid i millisekunder och kör motorn framåt under den passerade tiden. Om hastighetsvärdet är negativt, går motorn framåt. Standardhastigheten är inställd på 255.

6) vänster (,, hastighet) höger (,, hastighet)

Funktionen accepterar två motorobjektnamn och hastighet. Ordningen på motorobjekten som skickas som parametrar är viktig. För att driva enstaka motorer, använd.drive () istället.

Rekommenderad: