Le moteur pas à pas est un des actionneurs les plus utilisés. Il permet un positionnement assez précis pour être utilisés dans les machines-outils de moyenne gamme.
La bibliothèque AccelStepper utilisée ici peut être téléchargée et décompressée dans le répertoire « librairies ».
/*** * Auteur: Jean Demartini * date: 13/07/2015 * * Moteur pas à pas 5V : 28BYJ-48 * * Ce moteur a 4 phases à activer successivement : * * Les sorties digitales d'un Arduino peuvent les piloter * dans la mesure ou elles sont utilisées pour piloter * un transistor MosFET suffisamment puissant. * * Moteur * P1 P2 P3 P4 Com * +-|--|--|--|--|-+ * | +--(-)-- GND * | +--(+)-- Vcc(5V) * +-|-|-|-|-------+ * 1 2 3 4 * * 1: cP1 * 2: cP2 * 3: cP3 * 4: cP4 * * Nota: l'alimentation fournie par le port USB n'est pas suffisante, * il faut utiliser une alimentation annexe (5V-1A par exemple). ***/ #include "AccelStepper.h" #define HALFSTEP 8 // Motor pin definitions #define phi_1 3 // IN1 sur ULN2003 driver 1 #define phi_2 4 // IN2 sur ULN2003 driver 1 #define phi_3 5 // IN3 sur ULN2003 driver 1 #define phi_4 6 // IN4 sur ULN2003 driver 1 // Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48 AccelStepper stepper1(HALFSTEP, phi_1, phi_3, phi_2, phi_4); void setup() { stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(100.0); stepper1.setSpeed(300); stepper1.moveTo(1000); } void loop() { //Change direction when the stepper reaches the target position if (stepper1.distanceToGo() == 0) { stepper1.moveTo(-stepper1.currentPosition()); } stepper1.run(); }