Amélioration d'un code pour allumé une lampe en tapent dans les mains

Princesse_69200 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour
Je début dans l'informatique et je voudrais savoir si il est possible d'améliorer de code pour allumé une lampe en tapent dans les main avec une Ardnoino nano, et si oui comment.

int capteur_clap = 3;
int relais = 2;
int powerPin = A0;
int gndPin = A1;


int clap = 0;
long debut_plage_detection = 0;
long plage_detection = 0;
boolean etat_lampe = false;
 
void setup(){
  pinMode(capteur_clap, INPUT);
  pinMode(relais, OUTPUT);
  pinMode(powerPin, OUTPUT);
  pinMode(gndPin, OUTPUT);
  digitalWrite(gndPin,LOW);
  digitalWrite(powerPin,HIGH);
  Serial.begin(9600);
}
 
void loop(){
  
  int etat_capteur_clap = digitalRead(capteur_clap);
  
  if (etat_capteur_clap == 1)
  {
      if (clap == 0)
      {
        debut_plage_detection = plage_detection = millis();
        clap++;
      }
      else if (clap > 0 && millis()- plage_detection >= 50)
      {
        plage_detection = millis();
        clap++;
      }
  }
  
  if (millis()- debut_plage_detection >= 400)
  {
      if (clap == 2)
      {
          if (!etat_lampe)
            {
              etat_lampe = true;
              digitalWrite(relais, HIGH);
              Serial.println(1);
            }
          else if (etat_lampe)
            {
              etat_lampe = false;
              digitalWrite(relais, LOW);
            }
      }
      clap = 0;
  }
}

1 réponse

[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
Salut Princesse_69200,

Peut-être que ce code où j'avais proposé une implémentation sous la forme d'une machine à états te sera utile ou pourra t'inspirer : https://forums.commentcamarche.net/forum/affich-36679801-projet-sur-arduino-allumer-une-led-en-tapant-2-fois-dans-les-mains#14

Dal
1