merci a tous
toutes les astuces donnees sont le bienvenue
mais pour moi elle donnent toute le meme resultat
la duree HIGH de la led est toujour identique a la duree LOW seule les duree changent
mon besoin je le rappelle est HIGH 1 minute - LOW 5 minutes
mon test
fonctionne 1 cycle
au deuxieme la led reste HIGH
#define TEMPO 360 // 5 minutes = 360 secondes.
unsigned long DUREE_ECOULEE, TOP_CHRONO;
boolean etat_led;
unsigned long temps;
byte et_led1=0;
byte top=0;
int led=11;
void setup(){
pinMode(led, OUTPUT);
etat_led = 1;
digitalWrite(led, etat_led);
TOP_CHRONO = millis()/1000;
}
void loop(){
et_led1=digitalRead(led);
if(top==LOW){
Traiter_une_minute();
}
if(top==HIGH){
Traiter_cinq_minutes();
}
}//fin loop
void Traiter_une_minute() {
// if(et_led1==HIGH){ balise(); }
if(millis()/1000 - temps > 60)
{
etat_led = !etat_led; //on inverse l'état de la LED
digitalWrite(led, etat_led); //on allume ou éteint
temps = millis()/1000; //on stocke la nouvelle heure
top=HIGH;
delay(100);
}
}
//-------------------------------------------------------------------
void Traiter_cinq_minutes() {
// if(et_led1==HIGH){ balise();}
DUREE_ECOULEE = (millis()/1000 - TOP_CHRONO);
if (DUREE_ECOULEE == TEMPO){
TOP_CHRONO = millis()/1000;
delay(100);
top=LOW;
}
}