Bonjour j'ai un code qui fonctionne avec millis pour faire clignoter une led mais sera utilsé aussi avec un buzzer si ça fonctionne.
Le problème est que la led ne s’éteint pas complètement. Quand au même essai avec un buzzer il ne s'arrête pas. Je ne comprends pas.
Pourriez-vous m'aider svp? le code est ci-dessous.
Je ne suis pas contre une programmation alternative pour le même résultat.
Merci pour votre aide.
int led= 7;
unsigned long tempsDebut; // variable pour stocker le temps de départ
unsigned long tempsActuel;// variable pour stocker le le temps qui s'écoule
unsigned long duree3;// variable pour stocker la duree d'attente
void setup() {
Serial.begin(9600);// on initialise la communication série
pinMode(led, OUTPUT);
tempsDebut = millis(); // on initialise le temps de départ sur le temps Arduino
duree3 = 5000;
}
void loop() {
tempsActuel = millis(); //on stocke le temps Arduino
if (tempsActuel - tempsDebut < duree3) {
bip();
}
}
void bip() {
if (tempsActuel - tempsDebut >= 500) {// on teste si la durée est dépassée
digitalWrite(led, HIGH);
if (tempsActuel - tempsDebut >= 1000) {
digitalWrite(led, LOW);
if (tempsActuel - tempsDebut >= 1500) {
digitalWrite(led, HIGH);
if (tempsActuel - tempsDebut >= 2000) {
digitalWrite(led, LOW);
if (tempsActuel - tempsDebut >= 2500) {
digitalWrite(led, HIGH);
if (tempsActuel - tempsDebut >= 3000) {
digitalWrite(led, LOW);
if (tempsActuel - tempsDebut >= 3500) {
digitalWrite(led, HIGH);
if (tempsActuel - tempsDebut >= 4000) {
digitalWrite(led, LOW);
if (tempsActuel - tempsDebut >= 4500) {
digitalWrite(led, HIGH);
if (tempsActuel - tempsDebut >= 5000) {
digitalWrite(led, LOW);
}
}
}
}
}
}
}
}
}
}
}