Advertisement
RuiViana

IAL_RemoteControl

Jun 22nd, 2016
291
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.06 KB | None | 0 0
  1. //Comandos Remoto TV Semp
  2.  
  3. #include <IRremote.h>
  4. IRsend irsend;
  5. unsigned int Temp = 0;            // Variavel temporária para caulco de numero de 2 bytes
  6. unsigned int ValorTotal = 0;      // Valor final de até 2 bytes
  7. char valorlido = 0;
  8. unsigned int  Lido;               // Valor lido na serial
  9. //--------------------------------
  10. void setup()
  11. {
  12.   Serial.begin(9600);
  13. }
  14. //--------------------------------
  15. void loop()
  16. {
  17.   while (Serial.available() > 0)    // Enquanto tiver dados na seria faça
  18.   {
  19.     delay(100);                     // Tempo de deslocamento do buffer da serial
  20.     Lido = Serial.read();
  21.     if (Temp != 0)                  // Se tiver algum valor em Temp, faça
  22.     {
  23.       Temp = Temp | Lido << 8;      // OR com o valor em Temp e valor lido na serial deslocado 8 bits para esquerda
  24.     }
  25.     else                            // Se temp era 0, faça
  26.     {
  27.       Temp = Lido ;                 // Temp = valor lido na serial
  28.     }
  29.     ValorTotal = Temp;              // Salva valor calculado
  30.   }
  31.   valorlido = ValorTotal & 0x00FF;  // Separa os byte da direita
  32.   if (valorlido != 0x00)            // Se o byte separado for diferente de 0, faça
  33.   {
  34.     if (valorlido == 'P')//Liga e Desliga a TV
  35.       irsend.sendNEC (0x2FD48B7, 32);
  36.     //Comandos de Volume
  37.  
  38.     else if (valorlido == '+')//Subir volume
  39.       irsend.sendNEC (0x2FD58A7, 32);
  40.     else if (valorlido == '-')//Descer volume
  41.       irsend.sendNEC (0x2FD7887, 32);
  42.     else if (valorlido == 'U')//Subir canal
  43.       irsend.sendNEC (0x2FDD827, 32);
  44.     else if (valorlido == 'D')//Descer canal
  45.       irsend.sendNEC (0x2FDF807, 32);
  46.     //Teclado de Canais
  47.     else if (valorlido == '1')//1 canal
  48.       irsend.sendNEC (0x2FD807F, 32);
  49.     else if (valorlido == '2')//2 canal
  50.       irsend.sendNEC (0x2FD40BF, 32);
  51.     else if (valorlido == '3')//3 canal
  52.       irsend.sendNEC (0x2FDC03F, 32);
  53.     else if (valorlido == '4')//4 canal
  54.       irsend.sendNEC (0x2FD20DF, 32);
  55.     else if (valorlido == '5')//5 canal
  56.       irsend.sendNEC (0x2FDA05F, 32);
  57.     else if (valorlido == '6')//6 canal
  58.       irsend.sendNEC (0x2FD609F, 32);
  59.     else if (valorlido == '7')//7 canal
  60.       irsend.sendNEC (0x2FDE01F, 32);
  61.     else if (valorlido == '8')//8 canal
  62.       irsend.sendNEC (0x2FD10EF, 32);
  63.     else if (valorlido == '9')//9 canal
  64.       irsend.sendNEC (0x2FD906F, 32);
  65.     else if (valorlido == '0')//0 canal
  66.       irsend.sendNEC (0x2FD00FF, 32);
  67.     //Comandos Menu
  68.     else if (valorlido == 'M')//Menu
  69.       irsend.sendNEC (0x2FD708F, 32);
  70.     else if (valorlido == 'm')//Mudo
  71.       irsend.sendNEC (0x2FD08F7, 32);
  72.     else if (valorlido == 'V')//Voltar Ch
  73.       irsend.sendNEC (0x2FDE817, 32);
  74.     else if (valorlido == 'S')//Sair
  75.       irsend.sendNEC (0x2FDE817, 32);
  76.      delay(300);                              // Tempo para envio do 2o. digito
  77.   }
  78.   Temp = 0;                                   // Zera variavel Temp
  79.   Lido = 0;                                   // Zera variavel Lido
  80.   ValorTotal = ValorTotal >> 8;               // Desloque ValorTotal i byte para direita
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement