Sommario:

Guidare piccoli motori con il TB6612FNG: 8 passaggi
Guidare piccoli motori con il TB6612FNG: 8 passaggi

Video: Guidare piccoli motori con il TB6612FNG: 8 passaggi

Video: Guidare piccoli motori con il TB6612FNG: 8 passaggi
Video: Come ormeggiare: consigli per un ormeggio perfetto 2024, Novembre
Anonim
Guidare piccoli motori con il TB6612FNG
Guidare piccoli motori con il TB6612FNG

Il TB6612FNG è un circuito integrato per driver a doppio motore di Toshiba. Ci sono un sacco di schede breakout là fuori ed è una delle scelte più popolari per guidare piccoli motori.

Ci sono molte risorse online su come iniziare con il TB6612FNG, ma ho deciso di scriverlo comunque per compilare meglio quello che mi sono imbattuto.

Mi concentrerò sulla logica di controllo e spiegherò in dettaglio anche la libreria di driver del motore Sparkfun TB6612FNG in questo tutorial.

Passaggio 1: parti necessarie

Ecco cosa useremo oggi:

1) Motori Micro Metal

2) Driver del motore TB6612FNG

3) Un Arduino e un cavo USB

4) Alimentazione per i motori

5) Tagliere

6) Ponticelli

Passaggio 2: la scheda breakout TB6612FNG

La scheda breakout TB6612FNG
La scheda breakout TB6612FNG

Come ho detto prima, ci sono molte schede breakout di diversi produttori per il TB6612FNG. Tutti hanno più o meno gli stessi componenti e anche un pinout simile.

I condensatori sono saldati sulla scheda per la protezione contro il rumore dei motori, quindi non dovrai saldare quei condensatori ceramici ai motori.

L'IC è inoltre dotato di diodi interni per la protezione dall'EMF posteriore dai motori. Ma avere misure di sicurezza extra non fa male a nessuno. Non li ho aggiunti perché i miei motori non sono molto grandi e sono a corto di diodi:|

Passaggio 3: pin out

Pin out
Pin out

La breakout board TB6612FNG ha una piedinatura molto comoda. Tutte le uscite del motore, gli ingressi e le connessioni di alimentazione sono ben raggruppate per la massima facilità d'uso.

Ho fatto un'illustrazione dei pinout e di come collegarli, spero che sia utile quando si collegano tutti quei fili:)

Fase 4: Schemi

Schematico
Schematico
Schematico
Schematico

Sono abbastanza nuovo nell'usare Fritzing. Trovo gli schemi del circuito di Fritzing abbastanza difficili da capire, ma la vista breadboard è comoda per Instructables. Sentiti libero di fare qualsiasi domanda se una qualsiasi delle connessioni dei cavi sembra confusa.

Passaggio 5: cablaggio

Cablaggio
Cablaggio

Collega tutto secondo gli schemi. Ci sono molti cavi, assicurati di ricontrollare dopo ogni connessione.

Ho usato i seguenti pin Arduino per gli ingressi del driver del motore:

Driver del motore -> Numero pin Arduino

1) PWMA -> 5

2) INA1 -> 2

3) INA2 -> 4

4) PWMB -> 6

5) INB1 -> 7

6) INB2 -> 8

Cose che possono andare storte in questo passaggio: 1) Non invertire la polarità durante il collegamento di Vm e GND dalla fonte di alimentazione. Potresti friggere il tuo macchinista.

2) Assicurati di collegare PWMA e PWMB ai pin PWM su arduino.

3) Ricordarsi di collegare Arduino GND e GND dal driver del motore se si utilizza una fonte di alimentazione diversa per ciascuno.

Passaggio 6: download e installazione della libreria

Scarica la libreria dalla pagina GitHub di Sparkfun.

Una volta scaricato il file zip, apri il tuo IDE Arduino.

Da Schizzo > Includi libreria > Aggiungi libreria. Zip, aggiungi la libreria che hai scaricato.

Una volta installato con successo, dovrebbe essere visualizzato su File> Esempi, come "SparkFun TB6612FNG Motor Library"

Se hai difficoltà a scaricare e installare una libreria Arduino, controlla il passaggio 5 di questa istruzione.

Passaggio 7: esecuzione del codice di esempio

Ora che abbiamo la nostra libreria pronta, possiamo caricare il codice di esempio per testarlo.

1) Aprire l'esempio 'MotorTestRun' dalla 'Sparkfun TB6612FNG Motor Driver Library' elencata nelle proprie librerie.

Nota: se non stai utilizzando gli stessi numeri di pin menzionati al passaggio 5, assicurati di modificare le definizioni dei pin in base alla tua configurazione.

2) Seleziona la tua scheda dal gestore della scheda

3) Carica il tuo codice e i motori dovrebbero iniziare a muoversi

Una volta caricato, i motori dovrebbero iniziare a muoversi. Se non lo sono, controlla di nuovo il cablaggio.

Passaggio 8: spiegazione della libreria

Ora spieghiamo come usare la libreria per il tuo pezzo di codice.

Innanzitutto inizia con l'importazione della libreria e l'inizializzazione dei pin su arduino

#includere

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

Per inizializzare i tuoi oggetti motore, devi impostare gli offset per ogni motore. Immagina se stai eseguendo un comando in avanti sul tuo motore e sta girando al contrario. Puoi ricablarlo manualmente o puoi semplicemente modificare l'offset da qui. Nifty little QoL hack aggiunto da SparkFun. I valori di questi offset sono 1 o -1.

Bisogna quindi inizializzare ciascuno dei Motori con i seguenti parametri;

Motore = motore (pin 1, pin 2, pin PWM, offset, pin standby)

const int offsetA = 1;

const int offsetB = 1; Motore motore1 = Motore (AIN1, AIN2, PWMA, offsetA, STBY);

E con questo, hai finito di inizializzare la libreria. Niente più passaggi nella funzione setup(), eseguiamo semplicemente il codice nella funzione loop().

Il metodo del motore ha le seguenti funzioni. Armeggiare per controllarli tutti.

1).drive(valore, tempo)

Motor_name = nome del tuo motore objectvalue= da 255 a -255; valori negativi faranno muovere il motore in tempo inverso= tempo in millisecondi

2).freno()

La funzione Brake non accetta argomenti, frena i motori.

3) freno(, <nome_motore2)

La funzione Brake accetta i nomi degli oggetti motore come argomenti. Frena i motori passati alla funzione.

4) avanti(,, tempo) avanti(,, velocità, tempo)

La funzione accetta il nome di due oggetti motore, facoltativamente velocità PWM e tempo in millisecondi e fa girare il motore in avanti per il periodo di tempo trascorso. Se il valore della velocità è negativo, il motore andrà indietro. La velocità predefinita è impostata su 255.

5) indietro(,, tempo) indietro(,, velocità, tempo)

La funzione accetta il nome di due oggetti motore, facoltativamente velocità PWM e tempo in millisecondi e fa girare il motore in avanti per il periodo di tempo trascorso. Se il valore della velocità è negativo, il motore andrà avanti. La velocità predefinita è impostata su 255.

6) sinistra(,, velocità) destra(,, velocità)

La funzione accetta due nomi di oggetti motore e velocità. L'ordine degli oggetti motore passati come parametri è importante. Per pilotare motori singoli, usa invece.drive().

Consigliato: