Innholdsfortegnelse:

Kjøring av små motorer med TB6612FNG: 8 trinn
Kjøring av små motorer med TB6612FNG: 8 trinn

Video: Kjøring av små motorer med TB6612FNG: 8 trinn

Video: Kjøring av små motorer med TB6612FNG: 8 trinn
Video: Staysman & Lazz - En godt stekt pizza 2024, November
Anonim
Kjøring av små motorer med TB6612FNG
Kjøring av små motorer med TB6612FNG

TB6612FNG er en dual -motor driver IC fra Toshiba. Det er mange breakout boards der ute for det, og det er et av de mest populære valgene å kjøre små motorer.

Det er mange elektroniske ressurser for å komme i gang med TB6612FNG, men jeg bestemte meg for å skrive dette uansett for å bedre kompilere det jeg kom over.

Jeg vil fokusere på kontrolllogikken og også forklare Sparkfun TB6612FNG -motordriverbiblioteket i detalj i denne instruerbare.

Trinn 1: Deler påkrevd

Her er hva vi skal bruke i dag:

1) Micro Metal -motorer

2) TB6612FNG -motorfører

3) En Arduino- og USB -kabel

4) Strømkilde for motorene

5) Brødbrett

6) Stikkledere

Trinn 2: TB6612FNG Breakout Board

TB6612FNG Breakout Board
TB6612FNG Breakout Board

Som jeg nevnte før, er det mange breakout -plater fra forskjellige produsenter for TB6612FNG. Alle har mer eller mindre de samme komponentene på dem og også lignende pinout.

Kondensatorer er loddet på brettet for å beskytte mot støy fra motorene, så du trenger ikke å lodde de keramiske kondensatorene til motorene.

IC kommer også med interne dioder for å beskytte mot bakre EMF fra motorene. Men å ha ekstra sikkerhetstiltak skader ingen. Jeg la ikke til dem fordi motorene mine ikke er veldig store og jeg mangler dioder: |

Trinn 3: Fest ut

Pin Outs
Pin Outs

Utbruddskortet TB6612FNG har en veldig overbevisende pinout. Alle motorutganger, innganger og strømtilkoblinger er pent gruppert for maksimal brukervennlighet.

Jeg laget en illustrasjon av pinoutene og hvordan jeg kobler dem, jeg håper det kommer godt med når du kobler til alle disse ledningene:)

Trinn 4: Skjemaer

Skjemaer
Skjemaer
Skjemaer
Skjemaer

Jeg er ganske ny på å bruke Fritzing. Jeg synes kretsskjemaene fra Fritzing er ganske vanskelige å forstå, men visningen på brødbrettet er praktisk for Instructables. Still gjerne spørsmål hvis noen av ledningstilkoblingene ser forvirrende ut.

Trinn 5: Koble den til

Kabling den opp
Kabling den opp

Koble alt opp i henhold til skjemaer. Det er mange ledninger. Sørg for å dobbeltsjekke etter hver tilkobling.

Jeg brukte følgende Arduino Pins for inngangene til motorføreren:

Motordriver -> Arduino PIN -nummer

1) PWMA -> 5

2) INA1 -> 2

3) INA2 -> 4

4) PWMB -> 6

5) INB1 -> 7

6) INB2 -> 8

Ting som kan gå galt i dette trinnet: 1) Ikke snu polariteten mens du kobler Vm og GND fra strømkilden. Du kan steke bilføreren din.

2) Sørg for å koble PWMA og PWMB til PWM -pinner på arduinoen.

3) Husk å koble Arduino GND og GND fra motordriveren hvis du bruker en annen strømkilde for hver.

Trinn 6: Last ned og installer biblioteket

Last ned biblioteket fra Sparkfun's GitHub -side.

Når du har lastet ned zip -filen, åpner du Arduino IDE.

Fra Sketch> Include Library> Add. Zip Library, legg til biblioteket du lastet ned.

Når den er installert, bør den vises i Fil> Eksempler, som 'SparkFun TB6612FNG Motor Library'

Hvis du har problemer med å laste ned og installere et Arduino -bibliotek, kan du se trinn 5 i denne instruksen.

Trinn 7: Kjøre eksempelkoden

Nå som vi har biblioteket vårt klart, kan vi laste opp eksempelkoden for å teste den.

1) Åpne "MotorTestRun" -eksemplet fra "Sparkfun TB6612FNG Motor Driver Library" oppført på bibliotekene dine.

Merk: Hvis du ikke bruker de samme PIN -numrene som nevnt i trinn 5, må du endre pinnedefinisjonene til i henhold til oppsettet ditt.

2) Velg brettet ditt fra styrelederen

3) Last opp koden din, og motorene skal begynne å bevege seg

Når du har lastet opp motorene, skal motorene begynne å bevege seg. Hvis de ikke er det, sjekk ledningene igjen.

Trinn 8: Biblioteket forklart

Nå for å forklare hvordan du bruker biblioteket til ditt eget stykke kode.

Begynn først med å importere biblioteket og initialisere pinnene på arduino

#inkludere

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

For å initialisere motorobjektene må du sette forskyvninger for hver motor. Tenk om du gjør en kommando forover på motoren din, og den snurrer omvendt. Du kan koble den til manuelt, eller du kan bare endre forskyvningen herfra. Nifty little QoL hack lagt til av SparkFun. Verdiene for disse forskyvningene er enten 1 eller -1.

Du må deretter initialisere hver av motorene med følgende parametere;

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);

Og med dette er du ferdig med å initialisere biblioteket. Ingen flere trinn i setup () -funksjonen, vi kjører bare koden i loop () -funksjonen.

Motormetoden har følgende funksjoner. Tinker rundt for å sjekke dem alle ut.

1).drive (verdi, tid)

Motor_name = navnet på motorobjektet ditt = 255 til -255; negative verdier vil få motoren til å bevege seg i reversstid = tid i millisekunder

2). Brems ()

Bremsefunksjonen tar ingen argumenter, bremser motorene.

3) brems (, <motornavn2)

Bremsefunksjon tar motorobjektnavn som argumenter. Bremser motorene som gikk inn i funksjonen.

4) fremover (,, tid) fremover (,, hastighet, tid)

Funksjonen godtar navnet på to motorobjekter, eventuelt PWM -hastighet og tid i millisekunder og kjører motoren fremover i den forløpne tiden. Hvis hastighetsverdien er negativ, går motoren bakover. Standardhastigheten er satt til 255.

5) tilbake (,, tid) tilbake (,, hastighet, tid)

Funksjonen godtar navnet på to motorobjekter, eventuelt PWM -hastighet og tid i millisekunder og kjører motoren fremover i den forløpne tiden. Hvis verdien av hastigheten er negativ, går motoren fremover. Standardhastigheten er satt til 255.

6) venstre (,, hastighet) høyre (,, hastighet)

Funksjonen godtar to motorobjektnavn og hastighet. Rekkefølgen på motorobjektene som passeres som parametere er viktig. Hvis du vil kjøre enkeltmotorer, bruker du.drive () i stedet.

Anbefalt: