/*attiny bistable 2 sorties
Une mise à la masse furtive de l'entrée inverse les sorties et les mémorise
A la mise sous tension la sortie1 est à 1 et la sortie2 est à 0
lien: https://wokwi.com/projects/414362369697286145
Une mise à la masse furtive de l'entrée inverse les sorties et les mémorise
A la mise sous tension la sortie1 est à 1 et la sortie2 est à 0
test: ok
*/
// configuration
const byte PinBP = 4;
const byte Sortie1 = 0;
const byte Sortie2 = 1;
bool etatBP;// BP relaché: HIGH BP appuyé: LOW
bool precedentEtatBP = HIGH;
bool etatSortie = LOW;
void setup() {
pinMode(PinBP, INPUT_PULLUP); // on règle PinBP en entrée
pinMode(Sortie1, OUTPUT); // on règle Sortie1 en sortie
pinMode(Sortie2, OUTPUT); // on règle Sortie2 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)) {
etatSortie = !etatSortie; //inversion de etatSortie
} // fin if
precedentEtatBP = etatBP; // sauvegarde de l'état précédent du BP
if (etatSortie == HIGH) {
digitalWrite(Sortie1, HIGH);
digitalWrite(Sortie2, LOW);
} // fin if
else {
digitalWrite(Sortie1, LOW);
digitalWrite(Sortie2, HIGH);
} // fin else
} // fin loop