Bonjour,
après avoir fait plusieurs recherches, je ne trouve pas de solution à mon problème. Je m'explique : je cherche une fonction qui permettrait, sur un seul bouton, de lancer le code, et si il y a un problème de pouvoir le stopper. Je ne peux pas mettre le pin RESET, et je ne vois pas comment intégrer le soft reset, void (*softReset) (void) = 0;
Voici le code que j'ai pour l'instant, qui fonctionne.
int ledV = 2; // déclaration des leds, relais et bouton
int ledJ = 3;
int ledRCom = 4;
int relais = 5;
int bouton = 6;
int etatBouton = digitalRead(bouton); // lecture du bouton
void setup() {
pinMode(ledV, OUTPUT); //initialisation des leds, relais et bouton
pinMode(ledJ, OUTPUT);
pinMode(ledRCom, OUTPUT);
pinMode(relais, OUTPUT);
pinMode(bouton, INPUT_PULLUP);
// put your setup code here, to run once:
Serial.begin(9600);
digitalWrite(ledRCom, HIGH); // on éteint et allume les leds quel'on veut, et on ferme le relais
digitalWrite(relais, LOW);
digitalWrite(ledJ, LOW);
digitalWrite(ledV, LOW);
}
void loop() {
Serial.println(etatBouton); // Lorsque bouton appuyé : exécuter le code
if (etatBouton == 0)
{
digitalWrite(ledRCom, LOW); //Rouge OFF, Jaune HIGH
digitalWrite(ledJ, HIGH);
delay(5000);
digitalWrite(ledV, HIGH);
delay(200);
digitalWrite(ledV, LOW);
delay(6800);
digitalWrite(ledV, HIGH); // on fait clignoter la verte à 10s
delay(200);
digitalWrite(ledV,LOW);
delay(800);
digitalWrite(ledV, HIGH); // on fait clignoter la leds verte a t-3.t-2 et t-1 s
delay(200);
digitalWrite(ledV,LOW);
delay(800);
digitalWrite(ledV, HIGH);
delay(200);
digitalWrite(ledV,LOW);
delay(800);
digitalWrite(ledV, HIGH); // on éteint la Jaune et on laisse allumé la verte, le relais est ouvert
digitalWrite(ledJ, LOW);
digitalWrite(relais, HIGH);
}
}
Merci beaucoup pour votre aide,
Zazu