Bonjour a tous,
merci pour vos aides et j'ai pu finir mon mini projet grâce a vous, voici mon code final :
/*
* IR TEST LED & REMOTE
* Copyleft Snootlab 2012
*/
#include <IRremote.h>
#include <LiquidCrystal.h>
#define RECV_PIN 9
#define LED_PIN1 6
#define LED_PIN2 7
#define LED_PIN3 8
#define LED_PIN4 10
#define ON_CODE 0xFF30CF // +
#define ON_CODE2 0xFF18E7
#define ON_CODE3 0xFF7A85
#define OFF_CODE 0xFFA25D // -
#define PLUS_CODE 0xFF906F
// initialize the library with the numbers of the interface pins
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd (12,11,5,4,3,2);
int heures,minutes,secondes;
char message[16] ="";
boolean led1 = false;
boolean led2 = false;
boolean led3 = false;
boolean led4 = false;
void setup()
{
lcd.begin (16,2);
heures = 15;
minutes = 30;
secondes =30;
pinMode(LED_PIN1, OUTPUT);
pinMode(LED_PIN2, OUTPUT);
pinMode(LED_PIN3, OUTPUT);
pinMode(LED_PIN4, OUTPUT);
irrecv.enableIRIn(); // Start receiver
Serial.begin(9600);
lcd.print("bonjour");
led4 = true;
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, HIGH);
}
void loop() {
// If IR message is received
if (irrecv.decode(&results)) {
long int decCode = results.value;
Serial.println(decCode);
switch (results.value) {
case 0xFF30CF:
Serial.println("SOURCE 1");
digitalWrite(LED_PIN4, LOW);
lcd.clear();
{
if (digitalRead(led1) == HIGH);
{
delay(100);
led1 = !led1;
digitalWrite (LED_PIN1,led1);
}
if (digitalRead(LED_PIN1)==HIGH)
{
lcd.print("CD");
}
else if (digitalRead(LED_PIN1)==LOW)
{
lcd.clear();
lcd.print("CD OFF");
}
}
break;
case 0xFF18E7:
digitalWrite(LED_PIN4, LOW);
Serial.println("SOURCE 2");
lcd.clear();
{
if (digitalRead(led2) == HIGH);
{
delay(100);
led2 = !led2;
digitalWrite (LED_PIN2,led2);
}
if (digitalRead(LED_PIN2)==HIGH)
{
lcd.print("TUNER");
}
else if (digitalRead(LED_PIN2)==LOW)
{
lcd.clear();
lcd.print("TUNER OFF");
}
}
break;
case 0xFF7A85:
digitalWrite(LED_PIN4, LOW);
Serial.println("SOURCE 3");
lcd.clear();
{
if (digitalRead(led3) == HIGH);
{
delay(100);
led3 = !led3;
digitalWrite (LED_PIN3,led3);
}
if (digitalRead(LED_PIN3)==HIGH)
{
lcd.print("PHONO");
}
else if (digitalRead(LED_PIN3)==LOW)
{
lcd.clear();
lcd.print("PHONO OFF");
}
}
break;
case 0xFFA25D:
Serial.println("ON/OFF");
{
if (digitalRead(led4)==HIGH);
{
delay(100);
led4 = !led4;
digitalWrite (LED_PIN4,led4);
}
if (digitalRead(LED_PIN4)==LOW)
{
lcd.clear();
lcd.print("Hello");
}
else if (digitalRead(LED_PIN4)==HIGH)
{
digitalWrite(LED_PIN1, LOW);
digitalWrite(LED_PIN2, LOW);
digitalWrite(LED_PIN3, LOW);
digitalWrite(LED_PIN4, HIGH);
lcd.clear();
lcd.print("Bye");
delay(250);
lcd.clear();
lcd.print("OFF");
}
}
break;
default:
Serial.println("Waiting ...");
}
irrecv.resume(); // Receive the next value
} //on commence par gérer le temps qui passe...
if(secondes == 60) //une minutes est atteinte ?
{
secondes = 0; //on recompte à partir de 0
minutes++;
}
if(minutes == 60) //une heure est atteinte ?
{
minutes = 0;
heures++;
}
if(heures == 24) //une journée est atteinte ?
{
heures = 0;
}
//met le message dans la chaine à transmettre
sprintf(message,"Il est %2d:%2d:%2d",heures,minutes,secondes);
lcd.setCursor(0,1); //met le curseur en position (0;0) sur l'écran
lcd.write(message); //envoi le message sur l'écran
delay(1000); //attend une seconde
//une seconde s'écoule...
secondes++;
}