La livraison gratuite de plus de 1000DH pour les particuliers
Shield L298N Moteur Driver
37.00 د.م.
Module de pilotage de moteur L298N pour Arduino.
2 en stock
Tutoriel : Contrôle de vitesse de 2 moteurs avec un module L298N et Arduino
Composants utilisés
- 1 Module de contrôle de moteurs L298N (prêt à l’emploi)
- 1 Carte Arduino UNO
- Des Câbles de branchement Dupont
- 1 ou 2 moteurs à courant continu
- 1 Moteur pas à pas comportant 4 fils, deux phases
- 1 Servo moteur
- 1 multimètre
- 1 Alimentation de puissance 9V
Principe de fonctionnement
Le module L298N permet de commander séparément 2 moteurs à courant continu DC de 3 à 30 V, ou un moteur pas à pas bipolaire (2 phase step motor).
Il fonctionne avec une interface de commande TTL 5V (donc compatible avec Arduino ou avec de nombreux autres micro-contrôleurs en basse tension).
Il comporte deux ponts en H pour commuter les courants (2A par pont en crête, 20W maxi).
Ce module permet de faire varier la vitesse de rotation (en modulation PWM) et d’inverser le sens de rotation des moteurs.
Il peut piloter des charges inductives (bobinages, relais), les sorties de puissances sont protégées par des diodes de roue libre anti-retour.
Applications
Ce composant est idéal pour piloter un robot à deux roues motrices, en faisant varier la vitesse de rotation d’une roue par rapport à l’autre pour tourner.
Il permet de faire fonctionner divers ensembles mécanisés, des voitures téléguidées, des pompes, des treuils, etc…
Il permet également de commander simplement un moteur pas à pas à 2 phases (4 fils).
Alimentation de puissance
Utiliser une alimentation de puissance pour les moteurs : piles, batterie, transformateur, alimentation par convertisseur de tension.
Le petit convertisseur de tension de la carte Arduino n’est en effet pas prévu pour générer de la forte puissance.
Le double pont en H de la carte L298N est équipé d’un radiateur de refroidissement (75 °C).
Câblage, pour 2 moteurs DC
Le bornier à vis bleu (3 pins) :
- VMS –> Tension VMS de la partie puissance de 5 à 35 Volts (sur la source de puissance).
- GND, –> Relié à la masse de l’alimentation de puissance.
- +V –> Sortie du régulateur de la carte L298N en +5V. Permet d’alimenter des composants externes éventuels (Intensité de 0 à 36 mA), sinon non connecté.
Les 2 borniers à vis verts (2 x 2 pins)
MotorA et MotorB servent à brancher séparément 1 ou 2 moteurs à courant continu, ou les 2 bobines d’un moteur pas à pas à 2 phases et 4 fils.
- A- –> Moteur A- (inverser les 2 fils pour inverser le sens de rotation)
- A+ –> Moteur A+
- B- –> Moteur B-
- B+ –> Moteur B+
LEDs témoin
- Sens de rotation des moteurs
- Alimentation 5V
Signaux de commande sur les 6 pins (logique TTL : 5V = high, 0V = low).
- EnA –> Enable moteur A, sur niveau High TTL –> vers le micro contrôleur Arduino, sortie PWM si on veut commander la vitesse.
- In1 –> Input 1 (pont-en-H A) broches de commande digitales (1 et 2) qui sont utilisées pour commander le sens de rotation du moteur A
- In2 –> Input 2 (pont A)
- In3 –> Input 3 (pont B) idem pour moteur B
- In4 –> Input 4 (pont B)
- EnB –> Enable moteur B, sur niveau High TTL
Commandes de fonctionnement
- Faire tourner le moteur A sens normal : IN1=H, IN2=L, ENA=H
- Faire tourner le moteur A à l’envers : IN1=L, IN2=H, ENA=H
- Pour arrêter rapidement le moteur A : IN1=L, IN2=L, ENA=H (ou IN1=H, IN2=H, ENA=H)
- Pour arrêter doucement le moteur (arrêt en roue libre): ENA=L (IN1 et IN2 ignorés)
Note : On peut utiliser seulement les 2 pins EnA et EnB si la carte Arduino n’a pas besoin de gérer les sens de rotation des moteurs mais juste leur vitesse.
Exemple de code pour 2 moteurs DC
-
Serial.begin(9600); //Serial monitor } void loop() { //Augmenter progressivement la vitesse des 2 moteurs for (int vitesse=0; vitesse <= 255; vitesse++){ analogWrite(ENB,vitesse);//start driving motorB analogWrite(ENA,vitesse);//start driving motorA Serial.println(vitesse); delay(100); } //Une vitesse trop lente fait vibrer sans tourner le moteur }//************************************************ // Exemple d'utilisation module L298 // Commande de 2 moteurs DC // tiptopboards.com 04 11 2013 // //************************************************** int ENA=5;//Branché sur Arduino pin 5(output pwm) int IN1=2;//Sur Arduino pin 2 int IN2=3;//Sur Arduino pin 3 int ENB=6;//Sur Arduino pin 6(output pwm) int IN3=4;//Sur Arduino pin 4 int IN4=7;//Sur Arduino pin 7 void setup() { pinMode(ENA,OUTPUT);//Configuré en sorties pinMode(ENB,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); digitalWrite(ENA,LOW); digitalWrite(ENB,LOW);//stop driving digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH);//setting motorA's direction digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW);//setting motorB's direction
Ce code démarre les 2 moteurs DC et accélère leur vitesse de rotation.
Commande d’un moteur pas à pas (4 fils, 2 phases)
On commence par identifier quels sont les fils de phase avec un multimètre, en mesurant la résistance électrique des fils pris 2 à 2.
Ici on a 6 fils sur le moteur : noir, marron , rouge(2x), orange, jaune.
Mesurer la résistance en Ohm des fils pris 2 à 2
Noir Marron Rouge Orange Jaune
Noir 150 75
Marron 150
Rouge 75 74
Orange 74 147
Jaune 147
Donc bobine_A = noir-marron, et bobine_B = jaune-orange.
Câblage à réaliser
- MotA- = noir
- MotA+ = marron
- MotB- = jaune
- MotB+ = orange
Exemple de code pour moteur Stepper
-
void setup() { pinMode(ENA,OUTPUT); //Les 6 pins configurées en sorties pinMode(ENB,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); //Enable A et B, utilise les 2 ponts en H digitalWrite(ENA,HIGH);// Activer pont A digitalWrite(ENB,HIGH);// Activer pont B } void loop(){ // Un moteur Pas-à-pas se contrôle à l'aide de 4 battements // Séquences AB A-B A-B- AB- ou séquence AB AB- A-B- A-B//******************************************* // Module L298N pour commander un // Moteur 2 phases pas à pas (4 fils) // // Rolland tiptopboards.com 09 10 2013 // //============================================ //Câblage du steper, utilise 6 broches int ENA=2; // Arduino Pin 2 int IN1=3; // Arduino Pin 3 int IN2=4; // Arduino Pin 4 int ENB=5; // Arduino Pin 5 int IN3=6; // Arduino Pin 6 int IN4=7; // Arduino Pin 7
int tps = 20; //Délai en ms entre deux commandes de changement de pas (vitesse du moteur) digitalWrite(IN1,LOW); //0110 A-B digitalWrite(IN2,HIGH); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); delay(tps); digitalWrite(IN1,LOW); //0101 A-B- digitalWrite(IN2,HIGH); digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); delay(tps); digitalWrite(IN1,HIGH); //1001 AB- digitalWrite(IN2,LOW); digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH); delay(tps); digitalWrite(IN1,HIGH); //1010 AB digitalWrite(IN2,LOW); digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW); delay(tps); }
Avis
Il n’y a pas encore d’avis.