Salut,
je suis en train d'apprendre a faire une tempo travail avec la vidéo ci-dessous.
Je viens d’écrire tout le programme.
Sauf que lors de mes essais la LED clignote par intermittence.
Alors que je ne touche a rien.
Et dans le moniteur il se passe la chose ci-dessous.
21:34:09.851 -> Temps_Actuel : 7406Temps_Precedent : 7317ETAT_BP_HAUT : 1ETAT_BP_BAS1 Marche LED : 0
21:34:09.918 -> Temps_Actuel : 7495Temps_Precedent : 7495ETAT_BP_HAUT : 0ETAT_BP_BAS0 Marche LED : 0
21:34:10.002 -> Temps_Actuel : 7585Temps_Precedent : 7495ETAT_BP_HAUT : 1ETAT_BP_BAS1 Marche LED : 0
21:34:10.096 -> Temps_Actuel : 7674Temps_Precedent : 7674ETAT_BP_HAUT : 0ETAT_BP_BAS0 Marche LED : 0
21:34:10.190 -> Temps_Actuel : 7763Temps_Precedent : 7674ETAT_BP_HAUT : 1ETAT_BP_BAS1 Marche LED : 0
21:34:10.283 -> Temps_Actuel : 7854Temps_Precedent : 7854ETAT_BP_HAUT : 0ETAT_BP_BAS0 Marche LED : 0
21:34:10.377 -> Temps_Actuel : 7943Temps_Precedent : 7854ETAT_BP_HAUT : 1ETAT_BP_BAS1 Marche LED : 0
21:34:10.471 -> Temps_Actuel : 8032Temps_Precedent : 8032ETAT_BP_HAUT : 0ETAT_BP_BAS0 Marche LED : 0
21:34:10.564 -> Temps_Actuel : 8122Temps_Precedent : 8032ETAT_BP_HAUT : 1ETAT_BP_BAS1 Marche LED : 0
21:34:10.658 -> Temps_Actuel : 8211Temps_Precedent : 8211ETAT_BP_HAUT : 0ETAT_BP_BAS0 Marche LED : 0
21:34:10.739 -> Temps_Actuel : 8300Temps_Precedent : 8211ETAT_BP_HAUT : 1ETAT_BP_BAS1 Marche LED : 0
21:34:10.841 -> Temps_Actuel : 8390Temps_Precedent : 8390ETAT_BP_HAUT : 0ETAT_BP_BAS0 Marche LED : 0
21:34:10.908 -> Temps_Actuel : 8479Temps_Precedent : 8390ETAT_BP_HAUT : 1ETAT_BP_BAS1 Marche LED : 0
21:34:11.008 -> Temps_Actuel : 8568Temps_Precedent : 8568ETAT_BP_HAUT : 0ETAT_BP_BAS0 Marche LED : 0
21:34:11.098 -> Temps_Actuel : 8658Temps_Precedent : 8568ETAT_BP_HAUT : 1ETAT_BP_BAS1 Marche LED : 0
21:34:11.192 -> Temps_Actuel : 8748Temps_Precedent : 8748ETAT_BP_HAUT : 0ETAT_BP_BAS0 Marche LED : 0
Comme vous pouvez le voir l'ensemble passe de 0 à 1.
Programme ci-dessous:
const int Broche_BP_HAUT = 22;
const int Broche_BP_BAS = 44;
const int Broche_LED = 36;
int ETAT_BP_HAUT = 0;
int ETAT_BP_BAS = 0;
int Tempo_TRAVAIL = 5000; // temps de la tempo travail en milliseconde
unsigned long Temps_Actuel;
unsigned long Temps_Precedent = 0;
void setup() {
Serial.begin(9600);
pinMode ( Broche_BP_HAUT, INPUT);
pinMode ( Broche_BP_BAS, INPUT);
pinMode ( Broche_LED, OUTPUT);
}
void loop() {
Temps_Actuel = millis();
ETAT_BP_HAUT = digitalRead(Broche_BP_HAUT);
ETAT_BP_BAS = digitalRead(Broche_BP_BAS);
if (ETAT_BP_HAUT == LOW){
Temps_Precedent = Temps_Actuel;
}
if ((ETAT_BP_HAUT == HIGH) && (Temps_Actuel - Temps_Precedent >= Tempo_TRAVAIL)) {
digitalWrite (Broche_LED, HIGH);
}
if (ETAT_BP_BAS == HIGH) {
digitalWrite (Broche_LED, LOW);
}
Serial.print("Temps_Actuel : ");Serial.print(Temps_Actuel);
Serial.print("Temps_Precedent : ");Serial.print(Temps_Precedent);
Serial.print("ETAT_BP_HAUT : ");Serial.print(ETAT_BP_HAUT);
Serial.print("ETAT_BP_BAS");Serial.print(ETAT_BP_BAS);
Serial.print(" Marche LED : ");Serial.println(digitalRead(Broche_LED));
}
Par avance merci


