// Clignotant commandé avec fréquence réglable (domaine public).
int PB_ON = 5; // Bouton poussoir de mise en route (vert).
int PB_OFF = 2; // Bouton poussoir d'arrêt (rouge).
int LED = 7; // Sortie LED
int pot_value;
bool static volatile etatMontage = true;
void changeEtat() {
// Routine d'interruption sur appui bouton poussoir rouge.
etatMontage = false;
}
void setup() {
// initialisations.
pinMode(LED, OUTPUT);
pinMode(PB_ON,INPUT_PULLUP);
pinMode(PB_OFF,INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(PB_OFF), changeEtat, FALLING);
}
void loop() {
while(digitalRead(PB_ON) == HIGH) {
// Ne rien faire
}
etatMontage = true; // Ici, poussoir vert appuyé
while(etatMontage) {
pot_value = analogRead(A0);
digitalWrite(LED, HIGH); // allume la LED
delay(pot_value + 100); // attente (100 ms mini, 1123 ms maxi)
digitalWrite(LED, LOW); // éreint la LED
delay(pot_value + 100); // attente (100 ms mini, 1123 ms maxi)
}
// Ici, poussoir rouge appuyé : etatMontage est 'false'
}