Bonjour/Bonsoir,
Qui pour vérifier un programme Arduino?
C'est pour lundi svp
Explications:
Lorsque le bouton est pressé, le compte a rebours se lance, la LED verte s'allume (pendant 9 minutes), puis la jaune (pendant 3 minutes) et enfin la rouge qui clignote (pendant les 3 dernières minute). Au bout de ces 15 minutes, le buzzer sonne.
Le problème c'est le compte à rebours: il s'affiche sur le LCD mais ne tourne pas.
Sinon tout le reste fonctionne.
Bon courage et merci d'avance!
voici le code:
#include
#define BUZ 10
#define RED 11
#define YEL 12
#define GRN 13
const int bouton = 9;
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
long timeInit=0;
int tHour=0;
int tMin=15;
int tSec=00;
int timeToCounter(int h,int m,int s){
return h*3600+m*60+s;
}
void counterToTime(long cnt){
tHour=(cnt/3600);
tMin= (cnt%3600)/60;
tSec = ((cnt%3600)%60);
}
void setup() {
pinMode(RED, OUTPUT);
pinMode(YEL, OUTPUT);
pinMode(GRN, OUTPUT);
pinMode(BUZ, OUTPUT);
pinMode(bouton, INPUT);
lcd.begin(16, 2);
analogWrite(8,15);
lcd.print("Il reste :");
timeInit=timeToCounter(tHour,tMin,tSec);
}
void loop() {
int test = digitalRead(bouton);
if(test==LOW) {
counterToTime(timeInit);
lcd.setCursor(0, 1);
lcd.print(tHour);
lcd.print(" h ");
lcd.print(tMin);
lcd.print(" m ");
lcd.print(tSec);
lcd.print(" s");
delay(1000);
timeInit=timeInit-1;
digitalWrite(GRN, HIGH);
delay(540000);
digitalWrite(GRN, LOW);
digitalWrite(YEL, HIGH);
delay(180000);
digitalWrite(YEL, LOW);
digitalWrite(RED, HIGH);
delay(1000);
digitalWrite(RED, LOW);
delay(1000);
digitalWrite(RED, HIGH);
delay(1000);
digitalWrite(RED, LOW);
delay(180000);
tone (10, 750);
delay(200);
noTone(10);
delay(100);
tone (10, 1000) ;
delay(200);
noTone(10);
delay(1000);
}
else{
digitalWrite(RED, LOW);
digitalWrite(YEL, LOW);
digitalWrite(GRN, LOW);
noTone(10);
}
}