Bonjour, j'essaye d'apprendre à utiliser le programme millis mais je rencontre des problèmes inattendus.
Le code ci-dessous et censé faire clignoter 4 leds dans l'ordre suivant 1-2-3-4-1-2-3-4... etc.
Le problème et que seul la led 1 s'allume et je ne comprend pas pourquoi le reste ne s'allument pas.
Quelqu'un aurait une idée de la source du problème et une solution à proposer? ![]()
[code]
int led1 = 10;
int led2 = 9;
int led3 = 8;
int led4 = 7;
int led1State = LOW;
int led2State = LOW;
int led3State = LOW;
int led4State = LOW;
unsigned long currentTime = 0;
unsigned long previousTime = 0;
int interval1 = 500 ;
int interval2 = 500 ;
int interval3 = 500 ;
int interval4 = 500 ;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop() {
unsigned long currentTime = millis();
//Led1
if ((currentTime - previousTime) > interval1) {
previousTime = currentTime;
if (led1State == LOW) {
led1State = HIGH;
} else {
led1State = LOW;
}
digitalWrite(led1, led1State);
}
//Led2
if ((currentTime - previousTime) > interval2) {
previousTime = currentTime;
if (led2State == LOW) {
led2State = HIGH;
} else {
led2State = LOW;
}
digitalWrite(led2, led2State);
}
//Led3
if ((currentTime - previousTime) > interval3) {
previousTime = currentTime;
if (led3State == LOW) {
led3State = HIGH;
} else {
led3State = LOW;
}
digitalWrite(led3, led3State);
}
//Led4
if ((currentTime - previousTime) > interval4) {
previousTime = currentTime;
if (led4State == LOW) {
led4State = HIGH;
} else {
led4State = LOW;
}
digitalWrite(led4, led4State);
}
}
[/code]