Niente, la libreria si era aggiornata alle versione 3 e quindi c'era bisogno di cambiare qualche riga di codice. Ora, sfrutto l'occasione per chiedere un'altra cosa: questo "telecomando seriale" usa un piccolo programma fatto in C# su Visual Studio per comunicare, il tutto è connesso tramite USB al PC. Questo programma scrive nella porta seriale dei numeri, ad esempio "1" oppure "2", poi l'Arduino alla ricezione di questi numeri dovrebbe inviare un segnale alla TV tramite led IR... Il problema è che le prime volte questa comunicazione seriale funziona, ma dopo un po' di tempo (o scrivendo "1", "2" ripetutamente) smette di funzionare. L'Arduino riceve i dati seriali, ma è come se il codice dentro l'if non funzionasse. Se aspetto 30 secondi/1 minuto, poi, la comunicazione sembra andare bene. Sembra un po' casuale... La mia domanda è: c'è un cooldown per il numero di dati inviati tramite porta seriale? Oppure è una limitazione di Arduino o altro?
Questo è il mio codice:
#include <IRremote.h>
#define SAMSUNG_BITS 32
IRsend irsend(3);
void setup()
{
Serial.begin(9600);
irsend.enableIROut(38);
}
void loop()
{
if(Serial.read() == '1') {
const unsigned int S_1[68]={4650,4300,700,1550,700,1550,650,1550,700,400,700,400,700,400,700,450,700,400,700,1500,700,1500,700,1550,700,450,650,400,700,450,650,450,700,400,700,400,700,450,650,1550,700,400,700,400,700,400,700,450,650,450,650,1550,700,1500,700,450,650,1550,700,1550,650,1550,700,1500,700,1550,650};
irsend.sendRaw(S_1,68,38);
delay(500);
Serial.write("0");
} else if(Serial.read() == '2') {
const unsigned int S_2[68]={4600,4350,650,1550,700,1500,700,1550,700,400,700,400,700,450,650,450,700,400,700,1500,700,1500,700,1550,700,400,700,450,650,450,700,400,700,400,700,1500,700,400,700,1550,700,400,700,400,700,450,650,450,700,400,700,400,700,1550,650,450,700,1500,700,1550,650,1550,700,1500,700,1550,650};
irsend.sendRaw(S_2,68,38);
delay(500);
Serial.write("0");
}
}