Problème tempo travail

Salut,

je suis en train d'apprendre a faire une tempo travail avec la vidéo ci-dessous.

https://www.youtube.com/watch?v=WllNMAZFX4U&list=PLF88SKt6r7NbK8nCD7TxUbKJJFv1fcR_Z&index=88

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

Bonsoir, Problèmes, je ne vais pas me taper 13minutes de YouTube pour voir le montage que tu as fait, et je pense que beaucoup ne le ferons pas.

Met ici ton cablage

Comme je ne sais pas le montage que tu as réalisé je te propose de modifier ton code

pinMode ( Broche_BP_HAUT, INPUT);
  pinMode ( Broche_BP_BAS, INPUT)

Par

pinMode(pin,INPUT_PULLUP);

info ici.

Bonjour

Merci pour les informations.

ci-joint les photos de mon câblage.

J’ai essayé ta méthode sans réussite.

As-tu une autre solution ?

Cdlt

1.jpg

2.jpg

3.jpg

Bonjour,

Tes boutons sont mal cablés. Voir le tuto d'Eskimon.