Bonjour à tous
débutant en programmation Arduino
je rencontre un problème dans le développement d'un projet
Ouverture d'un Portail simple battant.
le système se compose de deux boutons poussoir de deux relais d'un moteur et d'une lampe clignotante avertisseur de mouvement.
Lors de la pression sur le 1er bouton la lampe dois clignoter pendant 5 secondes avant la mise en route du moteur le battant se met en mouvement et atteint le 2éme bouton poussoir qui sert de fin de course et dois arrêter le moteur et la lampe.
Mon problème se situe au niveau lorsque je programme le clignotement de la lampe la détection de fin de course n'arrete pas le moteur ni lampe.
/*
le bouton poussoir est connecté au pin 2 pour un mode INPUT_PULLUP
la Led est connectée au pins 4 avec une résistance de 220Ω
*/
//déclaration des variables
int pinBoutonO, pinLed; int pinBoutonF;
int pinRelais;
boolean etatAllumage;
boolean etatFermeture;
void setup()
{
//initialisation des variables
Serial.begin(9600);
pinBoutonO = 3;
pinBoutonF = 2;
pinLed = 4;
pinRelais=13;
etatAllumage=0;
etatFermeture=0;
//définition des modes
pinMode(pinBoutonO, INPUT_PULLUP); pinMode (pinBoutonF,INPUT_PULLUP); pinMode(pinLed, OUTPUT);
pinMode(pinRelais, OUTPUT);
}
void loop()
{
Serial.print(etatAllumage);
Serial.print(etatFermeture);
if (etatAllumage) //on teste si etatAllumage est à 1
{
digitalWrite(pinLed, LOW); //on éteint la LED delay(200);
digitalWrite(pinLed,HIGH);
delay(200); delay(500);
digitalWrite(pinRelais, HIGH);
}
if (pinBoutonF == HIGH)
//else //sinon
if (etatFermeture)
{
digitalWrite(pinRelais, LOW);
digitalWrite(pinLed, LOW); //on éteint la LED
}
//lecture de l'état du bouton et stockage dans etatBouton
boolean etatPinBoutonO = digitalRead(pinBoutonO); boolean etatPinBoutonF = digitalRead(pinBoutonF);
Serial.println(etatPinBoutonO);
Serial.println(etatFermeture);
//test des conditions
if (!etatPinBoutonO)//si bouton appuyé (donc le pin indique 0 car il est en mode INPUT_PULLUP)
{
if (etatAllumage) //si etatAllumage à 1
{
etatAllumage=0; //on le passe à 0
}
else //sinon
{
etatAllumage=1; //on le passe à 1
}
delay(100);
if (!etatPinBoutonF)//si bouton appuyé (donc le pin indique 0 car il est en mode INPUT_PULLUP)
{
if (etatFermeture) //si etatAllumage à 1
{
etatFermeture=0; //on le passe à 0
}
else //sinon
{
etatFermeture =1; //on le passe à 1
}
delay(100);
}
}
}
Merci de m' aider
bien à vous
moustique56