Ciao a tutti!
In questa guida vi illustrerò come creare un progetto con Arduino che farà accendere dei LED a seconda del pulsante premuto da un telecomando di una TV.
Per prima cosa abbiamo bisogno di:
– Un ricevitore infrarossi
– 4 Led
– 4 resistori da 220ohm
– Cavi per collegamenti
– Breadboard (Basetta)
– Arduino Uno
Sketch:
[c]
#include <IRremote.h>
//inizializzo e definisco le variabili con le porte della scheda
int RECV_PIN = 3;
int led1 = 2;
int led2 = 4;
int led3 = 7;
int led4 = 8;
int itsONled[] = {0, 0, 0, 0, 0};
//codici dei pulsanti del telecomando
#define code1 65160
#define code2 33772
#define code3 52972
#define code4 3494
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
unsigned int value = results.value;
switch (value) {
case code1:
if (itsONled[1] == 1) {
digitalWrite(led1, LOW);
itsONled[1] = 0;
} else {
digitalWrite(led1, HIGH);
itsONled[1] = 1;
}
break;
case code2:
if (itsONled[2] == 1) {
digitalWrite(led2, LOW);
itsONled[2] = 0;
} else {
digitalWrite(led2, HIGH);
itsONled[2] = 1;
}
break;
case code3:
if (itsONled[3] == 1) {
digitalWrite(led3, LOW);
itsONled[3] = 0;
} else {
digitalWrite(led3, HIGH);
itsONled[3] = 1;
}
break;
case code4:
if (itsONled[4] == 1) {
digitalWrite(led4, LOW);
itsONled[4] = 0;
} else {
digitalWrite(led4, HIGH);
itsONled[4] = 1;
}
break;
}
Serial.println(value);
irrecv.resume();
}
}
[/c]
Una volta aperto il file “.ino” bisognerà caricarlo sulla scheda e aprire il monitor seriale, ad ogni tasto del telecomando corrisponde un codice questo codice andrà copiato nella programmazione al posto di queste “x”.
#define code1 xxxxx
#define code2 xxxxx
#define code3 xxxxx
#define code4 xxxxx
Adesso il nostro codice è pronto !
Non ci resta che fare i collegamenti e il gioco è fatto!
Ecco il video del funzionamento: https://www.youtube.com/watch?v=hORU1QO_ivw
Vi allego anche altre foto: