L298N Carte de Pilote de Moteur
cette carte basée sur un circuit L298N STMicroelectronics permet la vitesse et la rotation d’un moteur à courant continue, d’un moteur bipolaire:
- 1 alimentation séparée pour les moteurs
- 2 ponts en H pilotent chacun un moteur
- 6 connecteurs à faible courant pour piloter les moteurs
La sortie 5V permet d’alimenter un micro controleur comme Arduino, ESP8266, Rapsberry,…
Micropython Raspberry Pi Pico + L298N + moteur bipolaire:
rappelons la séquence des 4 étapes d’un moteur bipolaire (CC-BY-SA):
soit une suite de [1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] pour alimenter l’un après l’autre les bobines du moteur.
code micropython (instructions print permettant de suivre les phases):
http://www.crepp.org/wp-content/uploads/2022/02/L298N_bipolar_9-10-11-12-13-14-zip.zip
from machine import Pin import utime broches = [ Pin(10,Pin.OUT),#IN1 Pin(11,Pin.OUT),#IN2 Pin(12,Pin.OUT),#IN3 Pin(13,Pin.OUT),#IN4 ] moteur1 = Pin(9, Pin.OUT) # moteur2 = Pin(14, Pin.OUT) # moteur1(1) # moteur: 1 marche, 0 arrêt moteur2(1) # full_step_sequence = [ [1,0,0,0], [0,1,0,0], [0,0,1,0], [0,0,0,1] ] print("suivi phases") while True: for step in full_step_sequence: print("step= ", step, " --> ") for i in range(len(broches)): broches[i].value(step[i]) utime.sleep(0.001) print("i=", i,"/",len(broches),": ", broches[i],".",i, end="") print(" =", step[i])
voici ce que donnent les instructions print pour suivre les phases:
( end="" évite le retour de ligne de python)
step= [1, 0, 0, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 1 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 1, 0, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 1 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 0, 1, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 1 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 0, 0, 1] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 1 step= [1, 0, 0, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 1 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 1, 0, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 1 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 0, 1, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 1 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 0, 0, 1] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 1 step= [1, 0, 0, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 1 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 1, 0, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 1 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 0, 1, 0] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 1 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 0 step= [0, 0, 0, 1] --> i= 0 / 4 : Pin(10, mode=OUT) . 0 = 0 i= 1 / 4 : Pin(11, mode=OUT) . 1 = 0 i= 2 / 4 : Pin(12, mode=OUT) . 2 = 0 i= 3 / 4 : Pin(13, mode=OUT) . 3 = 1 ...
Arduino UNO + L298N + moteur bipolaire:
la bibliothèque Stepper.h nous simplifie la tâche.
Arduino IDE/exemples/stepper/stepper_OneRevolution code:
http://www.crepp.org/wp-content/uploads/2022/02/MoteurL298N_bipolaire_01-ino.zip
/* The motor should revolve one revolution in one direction, then one revolution in the other direction. Created 11 Mar. 2007 Modified 30 Nov. 2009 by Tom Igoe */ #include <Stepper.h> const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution // for your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); void setup() { // set the speed at 60 rpm: myStepper.setSpeed(60); // initialize the serial port: Serial.begin(9600); } void loop() { // step one revolution in one direction: Serial.println("clockwise"); myStepper.step(stepsPerRevolution); delay(500); // step one revolution in the other direction: Serial.println("counterclockwise"); myStepper.step(-stepsPerRevolution); delay(500); }
Section Serveur ESP12
L’archive avec la documentation et le code est ici : Serveur