/*attiny bistable1
  Dominique Hudry
  liens: https://www.e-genieclimatique.com/arduino-code-source-videos-e-genieclimatique-youtube-tmetlardy/#algotelerupteur
         https://wokwi.com/projects/380182764833106945
         
  à la mise sous tension le BP est au repos et la led est éteinte
  si appui sur BP la led s'allume
  on relache le BP la led reste allumée
  nouvel appui sur BP la led s'éteint
  on relache le BP la led reste éteinte
 */

const byte PinBP = 0;
const byte PinLed = 1; 
bool etatBP; // BP relaché: HIGH,  BP appuyé: LOW
bool precedentEtatBP = HIGH; // état initial
bool etatLed = LOW;

void setup() {
  pinMode(PinBP, INPUT_PULLUP); // PinBP en entrée avec pullup
  pinMode(PinLed, OUTPUT); // PinLed en sortie
} // fin setup

void loop() {
  etatBP = digitalRead (PinBP); // lecture de l'état du BP
  delay(50); // pour anti rebond
  if ((etatBP == LOW) && (precedentEtatBP == HIGH)) {
    etatLed = !etatLed; // inversion de etatLED
  } // fin if
  precedentEtatBP = etatBP; //sauvegarde de l'état précédent du BP
  digitalWrite(PinLed, etatLed); // la led s'allume ou s'éteint fonction de etatLed
} // fin loop
ATTINY8520PU