Arduino TB6612FNG contrôleur moteur

Aujourd’hui on va apprendre à comment utiliser le module TB6612FNG pour contrôler des moteurs.

Ce module est facile à utiliser et va nous servir dans un prochain projet pour halloween.

Moteur TB6612FNG circuit

 

#define PIN_PWMA 8
#define PIN_AIN2 7
#define PIN_AIN1 6
#define PIN_STBY 5
#define PIN_POT  A0

int pos = 0;    
int val; 

void setup() {
Serial.begin(57600);
  pinMode(PIN_PWMA,OUTPUT);
  pinMode(PIN_AIN2,OUTPUT);
  pinMode(PIN_AIN1,OUTPUT);
  pinMode(PIN_STBY,OUTPUT);
}

void loop() {

val = analogRead(PIN_POT);      
pos = map(val, 0, 1023, 0, 255);
Serial.print("Potentiometre : "); 
Serial.println(pos);

analogWrite(PIN_PWMA,pos);

digitalWrite(PIN_STBY,HIGH);

digitalWrite(PIN_AIN1,HIGH);
digitalWrite(PIN_AIN2,LOW);

delay(3000);

Serial.println("ShortBrake");
digitalWrite(PIN_AIN1,HIGH);
digitalWrite(PIN_AIN2,HIGH);

delay(3000);

digitalWrite(PIN_AIN1,LOW);
digitalWrite(PIN_AIN2,HIGH);

delay(3000);
Serial.println("Stop");
digitalWrite(PIN_AIN1,LOW);
digitalWrite(PIN_AIN2,LOW);

delay(3000);

}

En matériel il nous faut :
– 1 arduino Mega ou uno
– 1 module TB6612FNG
– 1 moteur 12V ( ou moins )
– 1 potentiomètre 10KΩ

Le module fonctionne entre 2,7 Volt et 5,5 Volt et coté moteur entre 4,5 Volt et 15 Volt Maximum.

Niveau puissance ce module à une capacité de 1,2 A ( 2 A en tension de pic) et permet de commander jusqu’à 2 moteurs.

TB6612FNG 1

Pour le branchement rien de compliqué, VM pour la tension du moteur ( différente de l’arduino, on récupère le VIN de l’arduino 12 Volt ), VCC ici on récupère le 5 Volt de l’arduino, A01 et A02 pour le moteur A ( B01 et B02 pour le moteur B si on souhaite utiliser 2 moteurs ), PWMA branché sur le pin 8, AIN2 sur le pin 7, AIN1 sur le pin 6, STBY sur le pin 5 et le potentiomètre le pin A0.

Je défini mes différents pin avec define et je crée deux variables , pos pour la vitesse du moteur et val pour la valeur du potentiomètre.

Dans le setup on initialise le serial et on définit nos pin en sortie avec OUTPUT.

Partie boucle,on récupère la valeur du potentiomètre avec analogReal , on redéfinit la valeur avec le map pour nous donner une valeur entre 0 et 255.

J’imprime dans le serial la valeur du potentiomètre qui va être ma vitesse de moteur.

Je donne la vitesse au pin PWMA avec analogWrite, je mets à l’état haut HIGH le PIN_STBY avec digitalWrite.

Puis mon moteur va tourner dans un sens avec digitalWrite(PIN_AIN1,HIGH); et digitalWrite(PIN_AIN2,LOW);

J’attends 3 secondes avec delay puis j’effectue un arrêt brutal du moteur avec PIN_AIN1 et PIN_AIN2 à l’état HIGH.

On patiente 3 secondes avant de relancer le moteur mais ce coup ci dans l’autre sens avec digitalWrite(PIN_AIN1,LOW); et digitalWrite(PIN_AIN2,HIGH);

On laisse tourner 3 secondes puis on fait un arrêt lent ( le moteur termine son inertie) avec digitalWrite(PIN_AIN1,LOW); et digitalWrite(PIN_AIN2,LOW); puis arrêt de 3 secondes avant de recommencer au début de la boucle

C’est aussi simple que ça, maintenant à toi de jouer.

 

Télécharger le code :
TutoMoteurTB6612FNG

N’hésitez pas à poser vos questions sur les réseaux sociaux de la chaîne instagramtwitter , facebook ,youtube ; si vous ne comprenez pas certaines parties du tutoriel n’hésitez pas , me dire ce que vous aimeriez que je crée pour en faire des vidéos tutoriel  et à partager les projets que vous aimeriez créer etc…

Comme toujours allez sur la page de C’est quoi Retro et Geek pour connaître tout ce que je recherche à faire sur la chaîne.

Merci les RetroGeeker et RetroGeekeuse