Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Comandos Remoto TV Semp
- #include <IRremote.h>
- IRsend irsend;
- unsigned int Temp = 0; // Variavel temporária para caulco de numero de 2 bytes
- unsigned int ValorTotal = 0; // Valor final de até 2 bytes
- char valorlido = 0;
- unsigned int Lido; // Valor lido na serial
- //--------------------------------
- void setup()
- {
- Serial.begin(9600);
- }
- //--------------------------------
- void loop()
- {
- while (Serial.available() > 0) // Enquanto tiver dados na seria faça
- {
- delay(100); // Tempo de deslocamento do buffer da serial
- Lido = Serial.read();
- if (Temp != 0) // Se tiver algum valor em Temp, faça
- {
- Temp = Temp | Lido << 8; // OR com o valor em Temp e valor lido na serial deslocado 8 bits para esquerda
- }
- else // Se temp era 0, faça
- {
- Temp = Lido ; // Temp = valor lido na serial
- }
- ValorTotal = Temp; // Salva valor calculado
- }
- valorlido = ValorTotal & 0x00FF; // Separa os byte da direita
- if (valorlido != 0x00) // Se o byte separado for diferente de 0, faça
- {
- if (valorlido == 'P')//Liga e Desliga a TV
- irsend.sendNEC (0x2FD48B7, 32);
- //Comandos de Volume
- else if (valorlido == '+')//Subir volume
- irsend.sendNEC (0x2FD58A7, 32);
- else if (valorlido == '-')//Descer volume
- irsend.sendNEC (0x2FD7887, 32);
- else if (valorlido == 'U')//Subir canal
- irsend.sendNEC (0x2FDD827, 32);
- else if (valorlido == 'D')//Descer canal
- irsend.sendNEC (0x2FDF807, 32);
- //Teclado de Canais
- else if (valorlido == '1')//1 canal
- irsend.sendNEC (0x2FD807F, 32);
- else if (valorlido == '2')//2 canal
- irsend.sendNEC (0x2FD40BF, 32);
- else if (valorlido == '3')//3 canal
- irsend.sendNEC (0x2FDC03F, 32);
- else if (valorlido == '4')//4 canal
- irsend.sendNEC (0x2FD20DF, 32);
- else if (valorlido == '5')//5 canal
- irsend.sendNEC (0x2FDA05F, 32);
- else if (valorlido == '6')//6 canal
- irsend.sendNEC (0x2FD609F, 32);
- else if (valorlido == '7')//7 canal
- irsend.sendNEC (0x2FDE01F, 32);
- else if (valorlido == '8')//8 canal
- irsend.sendNEC (0x2FD10EF, 32);
- else if (valorlido == '9')//9 canal
- irsend.sendNEC (0x2FD906F, 32);
- else if (valorlido == '0')//0 canal
- irsend.sendNEC (0x2FD00FF, 32);
- //Comandos Menu
- else if (valorlido == 'M')//Menu
- irsend.sendNEC (0x2FD708F, 32);
- else if (valorlido == 'm')//Mudo
- irsend.sendNEC (0x2FD08F7, 32);
- else if (valorlido == 'V')//Voltar Ch
- irsend.sendNEC (0x2FDE817, 32);
- else if (valorlido == 'S')//Sair
- irsend.sendNEC (0x2FDE817, 32);
- delay(300); // Tempo para envio do 2o. digito
- }
- Temp = 0; // Zera variavel Temp
- Lido = 0; // Zera variavel Lido
- ValorTotal = ValorTotal >> 8; // Desloque ValorTotal i byte para direita
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement