Faire varier la vitesse d’un Moteur pas à pas à l’aide d’un potentiomètre avec un L298N et Arduino Uno
Description :
Projet permettant de contrôler la vitesse d’un moteur pas à pas à l’aide d’un potentiomètre connecté à un Arduino Uno.
Le moteur est piloté via un driver L298N, et la position du potentiomètre est lue en temps réel pour ajuster la vitesse de rotation.
Cette configuration offre un contrôle dynamique et intuitif, idéal pour des applications nécessitant des variations progressives de vitesse, comme des mini-convoyeurs, des systèmes robotiques ou des dispositifs de précision mécanique.
Le montage illustre également la gestion des entrées analogiques de l’Arduino et le pilotage de moteurs via un pont en H.
Prérequis :
- 1 x Carte Arduino Uno
- 1 x L298N
- 1 x Moteur PAP bipolaire (NEMA17)
- 1 x Alimentation 12V
- 1 x Potentiomètre 10 KΩ
- 1 x Breadboard
- Fils de connexion
Version IDE :
- Arduino IDE 2.3.5
Vidéo de démonstration :
Schéma de câblage :


Code :
#include <Stepper.h>
const int stepsPerRevolution = 200;
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
unsigned long previousMillis = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis();
int ValeurPotentiometre = analogRead(A0);
int motorSpeed = map(ValeurPotentiometre, 0, 1023, 0, 200);
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
myStepper.step(1);
}
else {
digitalWrite (8, LOW);
digitalWrite (9, LOW);
digitalWrite (10, LOW);
digitalWrite (11, LOW);
}
if (currentMillis - previousMillis >= 10) {
previousMillis = currentMillis;
Serial.println(motorSpeed);
}
}
