Go Down

Topic: Programme pour un on/off avec un bouton poussoir (Read 1 time) previous topic - next topic

anonymous1234

Bonjour, j'aimerais savoir si on peut rendre ce programme plus propre? (plus simple…). Est ce qu'il est correct?
Merciiiii


/* Ce programme fait clignoter une LED branchée sur la sortie digitale 8
• en fonction de l'intensité lumineuse détectée par le capteur photo-électrique connecté sur le port analogique A0
• */

int capteur1=0 ; // Déclaration variable capteur1 et affectation de la sortie 0
int led1=8 ; // Définition de la valeur 8 et du nom de la broche (led1) à utiliser
int lum1=0 ; // Déclaration variable lum1 identifiant la valeur de la luminosité
int but1=4; // Déclaration bouton
int etatBut=0; // Variable état après
int LastetatBut=0; // Variable état avant
int var=0;

void setup()
{
  pinMode(led1,OUTPUT) ;  //configure D8 comme une sortie
  pinMode(but1,INPUT); //configure D4 comme entrée
}



void loop()
{
  etatBut=digitalRead(but1); //Lecture de l'état du bouton
  if (etatBut!=LastetatBut) //Comparaison avec l'état avant
  { if (etatBut==HIGH) // Si différent et bouton à 1 (front montant)
    {  var++;          // On incrémente la variable var
       }     
    else
    {
      }
}

   etatBut=LastetatBut; //On mémorise l'état de la variable
    delay(300); //Tempo de 300ms
   {
          funct(); //On lance la fonction funct
      }
   }
 
   void funct() //Fonction principale
  {
    if (var==0) //On ne fait rien si var est à 0
    {
      }
   
    if (var==1) //On réalise une tâche si var=1 soit un appui
   
    {
      lum1=analogRead(capteur1) ;  //Lire la valeur sur capteur1
       digitalWrite(led1,HIGH); //Allumer led1
       delay(lum1);                  //Attente d'une durée égale à la valeur lum1 en millisecondes
       digitalWrite(led1,LOW);    //Met la sortie digitale à l'état bas (led éteinte)
       delay(lum1);
       }
   
     if (var==2) //si var=2 cela signifie que l'on a appuyé une deuxième fois donc fin
     {
          delay(300);
          var=0; //on réinitialise la variable var
          delay(300);
           }
    }




anonymous1234


elektrax

çà donne quoi à la compilation ?

schema du hardware ?

pour brancher une ldr sur une entree adc : https://learn.adafruit.com/photocells/using-a-photocell

goo est ton ami

Go Up