#include <IRremote.h>
IRsend irsend;
int led = 13;
void setup() {
pinMode(led, OUTPUT);
Serial.begin(9600);
}
/**
* Função que lê uma string da Serial
* e retorna-a
*/
String leStringSerial(){
String conteudo = "";
char caractere;
// Enquanto receber algo pela serial
while(Serial.available() > 0) {
// Lê byte da serial
caractere = Serial.read();
// Ignora caractere de quebra de linha
if (caractere != '\n'){
// Concatena valores
conteudo.concat(caractere);
}
// Aguarda buffer serial ler próximo caractere
delay(10);
}
conteudo.trim();
Serial.print("Recebi: ");
Serial.print(conteudo);
return conteudo;
}
//Envia o comando LIGA com 32 bits utilizando protocolo NEC
void ligaDesliga(String comando){
for (int i = 0; i < 3; i++) {
//assim não funciona pois estou tentanto converte uma string pra char "0x20DFC23D"
irsend.sendNEC(comando.c_str(), 32);
//agora com mesmo valor passando manual funciona comando de infra vermelho :{
irsend.sendNEC(0x20DFC23D, 32);
//esse comando estou enviado atravez monitor serial
}
//0x20DFC23D
Serial.println(comando.c_str());
Serial.println("");
}
void loop(){
// Se receber algo pela serial
if (Serial.available() > 0){
// Lê toda string recebida
String recebido = leStringSerial();
if (recebido == "LED1:0"){
digitalWrite(led, LOW);
}
if(recebido != ""){
digitalWrite(led, HIGH);
ligaDesliga(recebido);
}
}//FIM LOOP
}