/*
Ce programme a pour but de piloter un moteur pas à pas (modèle NEMA 17) via un pilote (modèle StepStick).
Il fait faire un tour puis inverse le sens de rotation et ainsi de suite.
Le boîtier "WOKWI Logic" de la simulation permet de récupérer (au format VCD) les changements d'états des broches auquel il est branché.
Pour pouvoir ouvrir ce type de fichier, il vous faudra installer un logiciel comme GTKWave (par exemple) :
- pour windows : https://sourceforge.net/projects/gtkwave/files/gtkwave-3.3.100-bin-win64/gtkwave-3.3.100-bin-win64.zip/download
- pour mac : https://sourceforge.net/projects/gtkwave/files/gtkwave-3.3.100-osx-app/gtkwave.zip/download
*/
// L'alimentation du moteur est piloté par la broche ENABLE.
// Pour alimenter le moteur il faut mettre la broche "stepper_enable_pin" à l'état "LOW"
const int stepper_enable_pin = 7;
// Les broches suivantes permettent de piloter respectivement :
// la rotation du moteur un pas après l'autre
const int stepper_step_pin = 6;
// le sens de rotation
const int stepper_dir_pin = 5;
// Broche où est connectée la sortie verticale de votre joystick
const int pot_in = A0;
void setup() {
Serial.begin(115200);
// Nous configurons le rôle de nos broches, ici en sortie (OUTPUT)
pinMode(stepper_enable_pin, OUTPUT);
pinMode(stepper_step_pin, OUTPUT);
pinMode(stepper_dir_pin, OUTPUT);
// Pour l'instant nous désactivons l'alimentation de notre moteur
// (pour économiser de l'énergie, et pour éviter toutes chauffes inutiles du pilote)
digitalWrite(stepper_enable_pin,HIGH);
// Nous passons les broches à l'état bas (LOW)
digitalWrite(stepper_step_pin,LOW);
digitalWrite(stepper_dir_pin, LOW);
delay(1000);
}
void loop() {
Serial.println(analogRead(pot_in));
// Délai que vous pourrez supprimer lors de l'écriture de votre programme
delay(1000);
}