#include <Stepper.
h> // Bibliothèque moteur pas à pas
// ===== MOTEUR =====
const int pas_par_tour = 2048; // Nombre de pas pour un tour complet
Stepper moteur(pas_par_tour, 8, 10, 9, 11); // IN1, IN3, IN2, IN4
// ===== BOUTONS =====
const int boutonRDC = 2;
const int bouton1 = 4;
const int bouton2 = 5;
// const int bouton3 = 6;
// ===== VARIABLES ASCENSEUR =====
int etageActuel = 0;
const int pasEntreEtage = 4500; // Nombre de pas entre deux étages
// ======================================================
void setup()
pinMode(boutonRDC, INPUT_PULLUP);
pinMode(bouton1, INPUT_PULLUP);
pinMode(bouton2, INPUT_PULLUP);//SAns resistance
//pinMode(bouton1, INPUT_PULLUP);
[Link](10); // Vitesse moteur
[Link](9600);
[Link]("*********************");
[Link](" MINI PROJET ASCENSEUR ");
[Link]("*********************");
[Link]("Choisir un étage...");
// ======================================================
void loop()
int RDC = digitalRead(boutonRDC);
int etage1 = digitalRead(bouton1);
int etage2 = digitalRead(bouton2);
//int etage3 = digitalRead(bouton3);
// Boutons actifs à LOW avec INPUT_PULLUP
if (RDC == LOW)
allerAEtage(0);
delay(300); // Anti-rebond
else if (etage1 == LOW)
allerAEtage(1);
delay(300);
else if (etage2 == LOW)
allerAEtage(2);
delay(300);
}
//else if (etage3 == LOW)
//{
// allerAEtage(3);
// delay(300);
//}
// ======================================================
void allerAEtage(int cible)
if (cible == etageActuel)
[Link]("Deja a cet etage.");
return;
int difference = cible - etageActuel;
int pasNecessaire = difference * pasEntreEtage;
[Link]("Deplacement vers etage : ");
[Link](cible);
[Link](pasNecessaire);
etageActuel = cible;
[Link]("Arrive a l'etage : ");
[Link](cible);
[Link]("---------------------");
delay(500);