Bonjour, j’ai besoin de votre aide car dans un programme j’ai un signal d’alarme qui tourne en continu en appuyant sur un BP ce qui déclenche une boucle for. Cependant j’aimerais comprendre comment en appuyant sur un autre bouton je peux arrêter cette boucle for voilà mon code et merci de votre aide;
#define ECHOPIN 7
#define TRIGPIN 8
#define LEDPIN 13
#define BUZZPIN 9
#define BPALERT 5
#define BPACQ 11
#include <Wire.h>
#include "rgb_lcd.h"
rgb_lcd lcd;
void setup(){
Serial.begin(9600);
pinMode(ECHOPIN, INPUT);
pinMode(TRIGPIN, OUTPUT);
pinMode(LEDPIN, OUTPUT);
pinMode(BUZZPIN, OUTPUT);
pinMode(BPALERT, INPUT_PULLUP);
pinMode(BPACQ, INPUT_PULLUP);
lcd.begin(16, 2);
}
void loop(){
digitalWrite(TRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGPIN, LOW);
int distance = pulseIn(ECHOPIN, HIGH);
distance= distance/58;
Serial.println(distance);
delay(500);
digitalWrite(LEDPIN, LOW);
digitalWrite(BUZZPIN, LOW);
boolean etatBouton = digitalRead(BPALERT);
boolean etatBoutons = digitalRead(BPACQ);
lcd.clear();
lcd.home(); // Replace le curseur en haut à gauche
char message[16] = "";
sprintf(message, " Dist : %4d cm", distance);
lcd.print(message);
lcd.setCursor(0,1);
if (distance >45)
{
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
tone(9,500);
delay(500);
tone(9,1000);
}
else if (etatBouton == 0)
{
for (int i = 0; i<1000; i++)
{
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
tone(9,500);
delay(500);
tone(9,1000);
if (etatBoutons ==0)
{
break;
}
}
}
else
{
noTone(9);
digitalWrite(13, LOW);
}
}