/*attiny declenchement selon nombre detections
18/12/2023
Dominique Hudry
La led initialement éteinte ne s'allume que si et seulement si le nombre de détections par le capteur a été atteint
Le nombre de séquences est aléatoire
lien: https://wokwi.com/projects/384478392035328001
compatible ATtiny25
*/
#include "simpleBouton.h"
const byte PinCapteur = 0; // la sortie du capteur
const byte PinLed = 1; // commande vers le générateur de sons
byte nbreDetections = 3; // nombre de détections nécessaires avant une action
byte nbreSequences; // nombre de séquences à jouer
int dureeImpulsion = 1000; // durée de l'impulsion de commande
int espacementSequences = 500; // pause entre deux séquences
simpleBouton detection(PinCapteur);
void setup() {
pinMode(PinLed, OUTPUT);
digitalWrite(PinLed, LOW); // led éteinte
randomSeed(analogRead(A2)); // pour déterminer le nombre de séquences
} // fin setup
void loop() {
detection.actualiser();
if (detection.vientDEtreEnfonce()) {
nbreDetections = nbreDetections - 1; // décrémentation
} // fin if
if (nbreDetections == 0) {
nbreSequences = random(1, 3); // 1 ou 2
for (byte i = 0; i < nbreSequences; i++) { // nombre aléatoire de séquences
digitalWrite(PinLed, HIGH);
delay(dureeImpulsion); // durée de l'impulsion, ne pas descendre en dessous de 50
digitalWrite(PinLed, LOW);
delay(espacementSequences); //
} // fin for
nbreDetections = 3; // retour à l'état initial
} // fin if
} // fin loop