Arduino (IoT): Simple Tutorial de IR Receptor/Transmisor Parte 2

Infrared IR Sensors Arduino Santiapps
Arduino IoT Arduino (IoT): Simple Tutorial de Infrarojo (IR) Receptor/Transmisor by Santiapps Marcio Valenzuela
Arduino IoT Arduino (IoT): Simple Tutorial de Infrarojo (IR) Receptor/Transmisor

Arduino (IoT): Simple Tutorial de IR Receptor/Transmisor (Parte 2)

 

En la Parte 1 vimos como usar el receptor IR para leer códigos enviados por un control remote X.  Ahora veremos como controlar LEDs de colores.

 

Conexiones

Si recuerdan de la primera parte, nuestro circuito era asi pero no usamos las LED:

Arduino (IoT) Simple Tutorial Infrarojo (IR) Receptor/Transmisor by Santiapps Marcio Valenzuela
Arduino (IoT) Simple Tutorial Infrarojo (IR) Receptor/Transmisor

Ahora vamos a usar 3 LEDs y controlarlas desde nuestro mcu.

Arduino (IoT) Simple Tutorial Infrarojo (IR) Receptor/Transmisor by Santiapps Marcio Valenzuela
Arduino (IoT) Simple Tutorial Infrarojo (IR) Receptor/Transmisor

Codigo

La libreria que usaremos esta aqui.

El codigo de nuestro ejemplo sera:

  1. #include <IRremote.h>
  2. int RECV_PIN = 3; // pin de salida del TSOP4838
  3. int led1 = 2;
  4. int led2 = 4;
  5. int led3 = 7;
  6. int itsONled[] = {0,0,0,0};
  7. /* al inicio las LEDs estan OFF (zero)
  8. #define code1 63495 // code received from button A
  9. #define code2 30855 // code received from button B
  10. #define code3 22695 // code received from button C
  11.  
  12. IRrecv irrecv(RECV_PIN);
  13. decode_results results;
  14. void setup(){
  15. Serial.begin(9600); // you can comment this line
  16. irrecv.enableIRIn(); // Start the receiver
  17. pinMode(led1, OUTPUT);
  18. pinMode(led2, OUTPUT);
  19. pinMode(led3, OUTPUT);
  20. }
  21. void loop() {
  22. if (irrecv.decode(&results)) {
  23. unsigned int value = results.value;
  24. switch(value) {
  25. case code1:
  26. if(itsONled[1] == 1) { // Si la led1 esta ON
  27. digitalWrite(led1, LOW); // apagarla
  28. itsONled[1] = 0; // y guardar su estado como OFF
  29. } else { // Si la led1 estaba OFF
  30. digitalWrite(led1, HIGH); // encenderla
  31. itsONled[1] = 1; // y registrarla como ON
  32. }
  33. break;
  34. case code2:
  35. if(itsONled[2] == 1) {
  36. digitalWrite(led2, LOW);
  37. itsONled[2] = 0;
  38. } else {
  39. digitalWrite(led2, HIGH);
  40. itsONled[2] = 1;
  41. }
  42. break;
  43. case code3:
  44. if(itsONled[3] == 1) {
  45. digitalWrite(led3, LOW);
  46. itsONled[3] = 0;
  47. } else {
  48. digitalWrite(led3, HIGH);
  49. itsONled[3] = 1;
  50. }
  51. break;
  52. }
  53. Serial.println(value); // Esto es para ver los resultados
  54. irrecv.resume(); // Proximo valor…
  55. }
  56. }

Lo unico es que primero habra que determinar los códigos de los botones que vamos a usar.  Esto lo aprendimos en la Parte 1 de esta serie.