/* attiny monostable redeclenchable
Attiny85
18/05/2020
liens: https://forum.arduino.cc/index.php?topic=257939.0
https://wokwi.com/projects/396243518885227521
tout appui avant la fin de la tempo la relance
Brochage ATiny85
5 =|1 U 8|= VCC
3 =|2 7|= 2
Led <--4 =|3 6|= 1
GND =|4 5|= 0<-- BP--GND
*/
// constantes
const byte Led = 4;
const byte BP = 0;
// variables
unsigned long tempo = 5000; //valeur en ms à adapter selon besoin
unsigned long debut_tempo;
bool dernier_appui = HIGH;
void setup() {
pinMode(Led, OUTPUT); // Led en sortie
pinMode(BP, INPUT_PULLUP); // BP en entrée avec pullup
}
void loop() {
byte appui = digitalRead(BP); // lecture de l'état du BP
if (!appui) { // si appui = 0
if (appui != dernier_appui) { // et si différent de dernier appui
digitalWrite(Led, HIGH); // alors Led allumée
debut_tempo = millis(); // et on initialise debut_tempo
}
}
dernier_appui = appui; // mémorisation de l'appui, dernier_appui = 0
if (digitalRead(Led)) { // si la Led est allumée
if (millis() - debut_tempo >= tempo) { // et si l'écart est > ou = à la tempo
digitalWrite(Led, LOW); // alors la Led s'éteint
}
}
}