Ascenseur avec Arduino
Bonjour les gars, je suis en train de construire un ascenseur de trois étages, j'ai compilé le code et à
moment de faire les connexions et tout fonctionne très bien mais au moment d'appeler en quelque sorte
au niveau de l'ascenseur, les capteurs ne remplissent pas leur fonction
j'espère que vous pourrez m'aider
J'utilise un capteur d'obstacle et des boutons-poussoirs, ainsi qu'un moteur CC de 5 volts.
#define E1 10 // active le Pin pour le moteur
#define I1 8 // Broche de contrôle 1 pour moteur
#define I2 9 // Broche de contrôle 2 pour le moteur
#define P1 2 // Pin de contrôle du bouton poussoir première étage
#define P2 3 // Contrôle du pin pulsateur deuxième étage
#define P3 4 // Broche de contrôle de l'interrupteur au troisième étage
#define S1 5 // Broche de contrôle capteur première plante
#define S2 6 // Broche de contrôle capteur deuxième étage
#définir S3 7 // Broche de contrôle capteur troisième étage
const int ledPin = 11; //broche de contrôle pour contrôler les leds
int PULSADOR_1 = 0; //variables pour contrôler l'état des boutons-poussoirs de chaque étage
int PULSADOR_2 = 0;
int PULSADOR_3 = 0;
int SENSOR_1 = 0; //variables pour contrôler l'état des capteurs de chaque plante
int CAPTEUR_2 = 0;
int CAPTEUR_3 = 0;
void setup(){
pinMode(I1, SORTIE);//MOTEUR
pinMode(I2, SORTIE);//MOTEUR
pinMode(E1, SORTIE);//MOTEUR
pinMode(P1, INPUT);//POUSSOIR
pinMode(P2, INPUT);//BOUTON
pinMode(P3, INPUT);//PULSATOR
pinMode(S1, INPUT);//SENSOR
pinMode(S2, INPUT);//SENSOR
pinMode(S3, INPUT);//SENSOR
pinMode(ledPin, OUTPUT);//LED CABINE
}
void loop()
{
digitalWrite(ledPin, HAUT);
retard(10);
digitalRead(2); // lit l'état de la broche 2 assignée à la première plante
digitalRead(3); // lit l'état de la broche 3 attribuée à la plante seconde
digitalRead(4); //lit l'état de la broche 4 assignée à la troisième plante
SENSOR_1=digitalRead(5); // lit l'état du pin 5 assigné à la première plante
digitalRead(6); //lit l'état de la broche 6 assignée à la deuxième plante
digitalRead(7); //lit l'état de la broche 7 assignée à la troisième plante
if(PULSADOR_1==HIGH) //si le bouton du premier étage est pressé
{
si(SENSOR_2==HAUT) // et la plante actuelle est la deuxième, l'ascenseur descend
{
digitalWrite(E1, HAUT); // Nous activons le moteur
digitalWrite(I1, FAIBLE); // Nous commençons à DESCENDRE
digitalWrite(I2, HAUT);
si(SENSOR_1==HAUT){
digitalWrite(E1, BAS); Par moteur
}
}
si(SENSOR_3==HIGH) //si la cabine est au troisième étage, l'ascenseur descend plus longtemps
{
digitalWrite(E1, HAUT); Nous activons le moteur
digitalWrite(I1, BAS); // Nous partons pour DESCENDRE
digitalWrite(I2, HAUT);
si(SENSOR_1==HAUT){
digitalWrite(E1, BAS); Moteur arrêté
}
}
}
sinon si(PULSADOR_2==HAUT) //si nous appuyons sur le bouton du deuxième étage
{
si(SENSOR_1==HAUT) // et la plante actuelle est la première
{
digitalWrite(E1, HAUT); // Nous activons le moteur
digitalWrite(I1, HAUT); // Nous démarrons pour MONTER
digitalWrite(I2, BAS);
si(SENSOR_2==HAUT){
digitalWrite(E1, BAS); Moteur arrêté
}
si(SENSOR_3==HIGH) //et la plante actuelle est la troisième
{
digitalWrite(E1, HAUT); Nous activons le moteur
digitalWrite(I1, BAS); // Nous démarrons pour DESCENDRE
digitalWrite(I2, HAUT);
si(SENSOR_2==HAUT){
digitalWrite(E1, BAS); Moteur Arrêté
}
sinon si(PULSADOR_3==HAUT) //si nous appuyons sur le bouton du troisième étage
{
si(SENSOR_2==HAUT)// et la plante actuelle est la deuxième
{
digitalWrite(E1, HAUT); // Nous activons le moteur
digitalWrite(I1, HAUT); // Nous partons pour MONTER
digitalWrite(I2, BAS);
si(SENSOR_3==HAUT){
digitalWrite(E1, FAIBLE); Parons moteur
}
}
si(SENSOR_1==HIGH) //et la plante actuelle est la première
{
digitalWrite(E1, ÉLEVÉ); // Nous activons le moteur
digitalWrite(I1, HAUT); // Nous démarrons pour MONTER
digitalWrite(I2, BAS);
si(SENSOR_3==HAUT){
digitalWrite(E1, BAS); Moteur Arrêté
}
}
}
}