c'est bon ca marche par contre au dessus de 31s sa coince je passe en valeur negative (-3253) pour le temps travail et repos
le code
//definition bt3 et 4
if (bt1==0){bt3=1;} //secondes
if (bt1==1){bt3=60;} //minutes
if (bt1==2){bt3=3600;} //heures
if (bt2==0){bt4=1;} //secondes
if (bt2==1){bt4=60;} //minutes
if (bt2==2){bt4=3600;} //heures
tempsrepos=interremp*bt4*1000;//calcul temps entre deux recharges en ms
tempstravail=(dureeco2*bt3*1000)+(interremp*bt4*1000);//calcul temps repos+travail en ms
if (plageco2==1 && (time-departco2>tempsrepos)){duree1=1;} //temporisation repos en ms
if (duree1==1 && (time-departco2>tempstravail)){duree1=0;departco2=time;} // temporisation envoi co2 en ms
les declarations
// Co2
// heure de debut
int debut6;
// heure de fin
int fin6;
byte dureeco2;
byte interremp;
byte duree1;
byte duree2;
byte bt1;
byte bt2;
int bt3;
int bt4;
byte plageco2; ///plage envoi co2
unsigned long departco2;
unsigned long tempstravail;
unsigned long tempsrepos;
int co2stat;
int departremp;
unsigned long time=millis();
je pense que le probleme vient du type de donne declare pour tempstravail et tempsrepos