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.

Arduino (IoT) Video Serie: Kit de Carro Parte 4 (IR)

4WD Car Kit Arduino Santiapps Series

Arduino Honduras Santiapps Marcio Valenzuela

Arduino (IoT) Video Serie: Kit de Carro Parte 4 (IR)

Este es el codigo final:

#include "AFMotor.h"
#include "IRremote.h"

AF_DCMotor motor1(1, MOTOR12_64KHZ); // create motor #1, 64KHz pwm
AF_DCMotor motor2(2, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
AF_DCMotor motor3(3, MOTOR12_64KHZ); // create motor #2, 64KHz pwm
AF_DCMotor motor4(4, MOTOR12_64KHZ); // create motor #2, 64KHz pwm

int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup() {
  Serial.begin(9600);           // set up Serial library at 9600 bps
  Serial.println("Motor test!");
  irrecv.enableIRIn(); // Start the receiver

  motor1.setSpeed(200);     // set the speed to 200/255
  motor2.setSpeed(200);     // set the speed to 200/255
  motor3.setSpeed(200);     // set the speed to 200/255
  motor4.setSpeed(200);     // set the speed to 200/255
}

void loop() {

  //Recibir & Analizar codigo recibido
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);

      if (results.value == 0x2C2E80FF){
        Serial.println("forward");
        forward();
        delay(2000);
        brake();
      } else if (results.value == 0x5A1A483D){
        Serial.println("backward");
        backward();
        delay(2000);
        brake();
      } else if (results.value == 0x9578646A){
        Serial.println("left");
        left();
        delay(1000);
        brake();  
      } else if (1==1) {
        Serial.println("right");
        right();
        delay(1000);
        brake();  
      }

      irrecv.resume(); // Receive the next value
  } 
}

void forward(){
  Serial.println("running forward");
  motor3.run(FORWARD);   
  motor4.run(FORWARD);     
}
void backward(){
  Serial.println("running backward");
  motor3.run(BACKWARD);    
  motor4.run(BACKWARD);    
}
void left(){
  motor3.run(FORWARD);   
}
void right(){
  motor4.run(FORWARD);    
}
void brake(){
  motor1.run(RELEASE);    
  motor2.run(RELEASE);    
  motor3.run(RELEASE);    
  motor4.run(RELEASE);      
}

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

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 

 

IR es un tipo de comunicación que se utiliza en proyectos para controlar componentes.  Aquí hacemos un breve ejemplo de como usar un receptor.

 

Conexiones

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

Codigo
[code]
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup(){
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
irrecv.resume(); // Receive the next value
}
}
[/code]

Aqui vemos como el modulo receptor recibe las señales de un control remoto que tiene una LED IR adentro.  En el proximo tutorial veremos como usar la LED IR que viene con el Receptor IR, para armar nuestro propio control.

Video