Warning: Illegal string offset 'format_dest' in /var/www/sdb/8/7/gilles.thebault/ecrire/inc/filtres_images_lib_mini.php on line 958

Warning: Illegal string offset 'format_source' in /var/www/sdb/8/7/gilles.thebault/ecrire/inc/filtres_images_lib_mini.php on line 961

Accueil > ARDUINO > Drivers moteurs > Arduino & shield L298 (Driver pour moteur à courant continu)

Arduino & shield L298 (Driver pour moteur à courant continu)

dimanche 28 février 2016, par thebault

Caractéristiques.

Source : http://www.dfrobot.com

Source : http://www.elecfreaks.com

Le Shield L298 permet de commander 2 moteurs à courant continu dans les 2 sens de rotation avec variation de vitesse ( commande PWM). On trouve des versions similaires chez Elecfreaks et DFRobot
- documentation du L298N
- la page des caractéristiques du shield chez DFRobot
- la page des caractéristiques du shield chez ElecFreaks
- le circuit comporte 2 ponts en H,

JPEG - 13.6 ko


- intensité maximale : 2A,
- tension alimentation : de 4,8V à 35V
- les broches du shield DFRobot DRI0009 ou elecfreaks L298 :

BrocheFonctionBrocheFonction
4 direction moteur 1 5 commande PWM moteur 1
7 direction moteur 2 6 commande PWM moteur 2

Branchements

JPEG - 504.1 ko

Programmes arduino

Exemple 1 : Un programme qui permet de commander en tout ou rien un moteur à courant continu M1 :
- commander le moteur pendant 2s,
- stopper pendant 2s,
- inverser le sens de rotation pendant 2s,
- arrêter pendant 2s


  1. int M1DIR = 4; // direction du moteur 1= broche 4
  2. int M1PWM = 5; // commande du moteur 1 = broche 5
  3.  
  4. void setup() {
  5. pinMode(M1DIR, OUTPUT);
  6. pinMode(M1PWM, OUTPUT);
  7. }
  8.  
  9. void loop() {
  10. digitalWrite(M1DIR, 0); // rotation sens positif
  11. digitalWrite(M1PWM, 1);
  12. delay(2000);
  13. digitalWrite(M1DIR, 0); // arrêt
  14. digitalWrite(M1PWM, 0);
  15. delay(2000);
  16. digitalWrite(M1DIR, 1); // rotation sens négatif
  17. digitalWrite(M1PWM, 1);
  18. delay(2000);
  19. digitalWrite(M1DIR, 0); // arrêt
  20. digitalWrite(M1PWM, 0);
  21. delay(2000);
  22. }

Télécharger


Exemple 2 : On va maintenant commander le moteur en vitesse variable. On va donc utiliser une sortie PWM. Le moteur accélère jusqu’à atteindre sa valeur maximale puis revient à vitesse nulle. Si on souhaite tourner dans l’autre sens, on modifie digitalWrite(M1DIR, 0) .

La variation de vitesse du MCC est réalisée par la commande PWM (a = rapport cyclique codé sur 8 bit - de 0 à 255 - ) : analogWrite(M1PWM, a) ;


  1. int M1DIR = 4; // direction du moteur 1= broche 4
  2. int M1PWM = 5; // commande PWM du moteur 1= broche 5
  3. int a; //rapport cyclique entre 0 et 255
  4.  
  5. void setup() {
  6. pinMode(M1DIR, OUTPUT);
  7. pinMode(M1PWM, OUTPUT);
  8. }
  9.  
  10. void loop() {
  11. // put your main code here, to run repeatedly:
  12. digitalWrite(M1DIR, 0);
  13. a=0;
  14. while (a <= 255) { // phase d'accélération.
  15. analogWrite(M1PWM, a);
  16. a = a + 1;
  17. delay(20);
  18. }
  19. while (a >=0) { // phase de décélération
  20. analogWrite(M1PWM, a);
  21. a = a - 1;
  22. delay(20);
  23. }
  24. }

Télécharger


SPIP | | Plan du site | Suivre la vie du site RSS 2.0
Habillage visuel © digitalnature sous Licence GPL