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);
}
}