Advertisement
RuiViana

RC_IR_Read

Mar 10th, 2017
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.78 KB | None | 0 0
  1. #include <IRremote.h>                           // Biblioteca IRremote Version - 2.2.1 https://github.com/z3t0/Arduino-IRremote
  2. int recvPin = 11;                               // Port para entrada do sinal do IR
  3. IRrecv irrecv(recvPin);                         // Estabelecendo  
  4. IRsend control;                            
  5. unsigned int botao[RAWBUF];                     // Criando a array para os RAWs
  6. //------------------------------------
  7. void  setup ( )
  8. {
  9.   Serial.begin(9600);                           // Inicialisa a serial
  10.   irrecv.enableIRIn();                          // Inicialisa recepecao de IR
  11.   Serial.println("Click no RC");                // Print
  12. }
  13. //------------------------------------
  14. void  ircode (decode_results *results)          // Decodifica os dados recebidos
  15. {
  16.   if (results->decode_type == PANASONIC)        // Panasonic tem um endereco
  17.   {
  18.     Serial.print(results->address, HEX);        // Informa o endereco
  19.     Serial.print(":");                          // Print
  20.   }
  21.   Serial.print(results->value, HEX);            // Print o Code
  22. }
  23. //------------------------------------
  24. void  encoding (decode_results *results)            // Identifica o tipo do RC
  25. {
  26.   switch (results->decode_type)                     // Seleciona o tipo de RC
  27.   {                                                 // Imprime o tipo de RC
  28.     default:
  29.     case UNKNOWN:      Serial.print("UNKNOWN");       break ;
  30.     case NEC:          Serial.print("NEC");           break ;
  31.     case SONY:         Serial.print("SONY");          break ;
  32.     case RC5:          Serial.print("RC5");           break ;
  33.     case RC6:          Serial.print("RC6");           break ;
  34.     case DISH:         Serial.print("DISH");          break ;
  35.     case SHARP:        Serial.print("SHARP");         break ;
  36.     case JVC:          Serial.print("JVC");           break ;
  37.     case SANYO:        Serial.print("SANYO");         break ;
  38.     case MITSUBISHI:   Serial.print("MITSUBISHI");    break ;
  39.     case SAMSUNG:      Serial.print("SAMSUNG");       break ;
  40.     case LG:           Serial.print("LG");            break ;
  41.     case WHYNTER:      Serial.print("WHYNTER");       break ;
  42.     case AIWA_RC_T501: Serial.print("AIWA_RC_T501");  break ;
  43.     case PANASONIC:    Serial.print("PANASONIC");     break ;
  44.     case DENON:        Serial.print("Denon");         break ;
  45.   }
  46. }
  47. //------------------------------------
  48. void  dumpInfo (decode_results *results)          // Monta o HEX do IR
  49. {
  50.   if (results->overflow)                          // Verifica se houve buffer overflow
  51.   {                                               // Se houve print
  52.     Serial.println("IR code too long. Edit IRremoteInt.h and increase RAWLEN");
  53.     return;
  54.   }
  55.   Serial.print("Encoding: ");                     // Print
  56.   encoding(results);                              // Chama a rotina de identificação
  57.   Serial.print("");                               // Print
  58.   Serial.print("  Code: ");                       // Print
  59.   ircode(results);                                // Imprime o code em HEX
  60.   Serial.print(" (");                             // Print  
  61.   Serial.print(results->bits, DEC);               // Informa qtos bits tem o code
  62.   Serial.println(" bits)");                       // Print
  63. }
  64. //------------------------------------
  65. void  loop ( )
  66. {
  67.   decode_results  results;                        // Guarda os resultados lidos
  68.   if (irrecv.decode(&results))                    // Se recebeu um code
  69.   {
  70.     dumpInfo(&results);                           // Mostra os resultados
  71.     irrecv.resume();                              // prepare para nova recepecao
  72.     irrecv.enableIRIn();                          // Inicialisa recepecao de IR                          
  73.   }
  74.   delay(200);                                     // Delay
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement