Bonsoir !
Je débute totalement en programmation arduino et avec mes maigres connaissances dans le domaine, je cherche à faire clignoter une LED sans utiliser la fonction "delay" qui stoppe le déroulement du programme. Jusque là rien de bien compliqué et j'y arrive grâce à la fonction "millis".
En revanche la particularité du clignotement que je souhaite obtenir, est d'avoir un coup la led allumée 1 seconde puis éteinte 10 sec et ainsi de suite...
Avec le code actuel, (que voici en fin de message) je ne parviens pas à avoir de clignotement sauf si je supprime le dernier "if", auquel cas, j'obtiens bien un clignotement. Or avec ce clignotement, la LED est allumée est éteinte pour les mêmes durées (1 seconde ON et 1 seconde OFF )...
Quelqu'un saurait il me dire ou se trouve mon erreur et comment procéder ?
Par avance merci pour l'aide apportée, et désolé pour les explications laborieuses ainsi que pour la programmation quelque peu "barbare".
int led = 11; // led en broche 11
int intervale; // variable définissant la durée d'extinction de la LED clignotante
unsigned long previousTime; // variable enregistrant le dernier "temps"
int ledState; // variable enregistrant l'état de la LED
int buttonPin = 10; // bouton poussoir en broche 10
int buttonState; // variable enregistrant l'état du bouton poussoir
int previousState; // variable enregistrant le précédent état du bouton poussoir
int variableA; // variable intervenant dans le choix du mode de clignotement
int duree; // variable définissant la durée d'allumage de la LED lors de son clignotement
void setup(){
pinMode (led, OUTPUT); // définit la led (broche 11) comme une sortie
intervale = 2000;
ledState = LOW; // définit l'état de la led en début d'execution du programme
previousTime = millis(); // définit la valeur de "previousTime" en début de programme
Serial.begin(9600); // active le "moniteur série" pour afficher les valeur de la variable A en cours d'execution du programme
pinMode (buttonPin, INPUT); // définit le bouton poussoir (broche 10) comme une sortie
variableA = 1; // mise la valeur 1, la variable A
duree = 1000; // la durée d'allumage de la LED lors de son clignotement est fixée ici à 1 seconde
}
void loop(){
buttonState = digitalRead (buttonPin); // partie du programme permettant de faire varier la durée où la led est éteinte durant son clignotement
if(previousState != buttonState){ //
if (buttonState == HIGH) { //
variableA ++;}} //
previousState = buttonState; //
if (variableA == 4) { //
variableA =1;} //
Serial.println (variableA); //
switch (variableA) { //
case 1: //
intervale = 1000; //
break; //
//
case 2: //
intervale = 5000; //
break; //
//
case 3: //
intervale = 10000; //
break; //----------------------------------------------------------------------------------------------------
}
if ((millis()-previousTime) > intervale){
previousTime = millis();
ledState = !ledState;
digitalWrite (led, ledState);
}
if ((previousTime + duree) > millis ()){
previousTime = millis();
ledState = !ledState;
digitalWrite (led, ledState);
}
}
-----