Receptor infrarrojo especial

 y control remoto general

Con Arduino - BÁSICO 1

ARDUINO GUATEMALA TSOP1738

OBJETIVO

Se desea implementar una comunicación con un receptor infrarrojo de 38Khz y un control remoto cualquiera, es posible utilizar el TSOP1738 ó el PIC2031 en conjunto con Arduino.

 

El objetivo primordial es el de visualizar información del botón pulsado (control remoto) en el Monitor Serial del programa de arduino.

 

Cada receptor posee diferente forma e identificación de pines, pero lo importante es la frecuencia en que trabajan, en este caso serán receptores de 38Khz.

 

materiales

  • 1 Arduino (UNO, leonardo, MEGA, NANO, etc)
  • 1 Receptor infrarrojo TSOP1738 ó el PIC2031
  • 1 Capacitor electrolitico 10uF
  • 1 Resistencia 10K ohm
  • 1 Resistencia 330 ohm 
  • Control remoto infrarrojo cualquiera

 

Materiales adicionales:

 

  • Protoboard
  • Cables de conexiones 

 

 

Receptor infrarrojo PCM - TSOP1738
Receptor infrarrojo PCM - TSOP1738
Receptor infrarrojo PCM - PIC2031
Receptor infrarrojo PCM - PIC2031

DIAGRAMA

Codigo

Antes de realizar cualquier código de programación debe de instalar la librería correspondiente a este receptor: 

 

https://github.com/shirriff/Arduino-IRremote

 

Nota: como instalar una libreria

 

Una vez instalada la librería deberá de conocer los códigos de cada botón del control remoto, para esto debe de cargar el código IRrecvDemo, este es un código ejemplo que viene dentro de la librería, el cual permite ver cada código al pulsar un botón del control remoto:

 

 

/*

 * IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv

 * An IR detector/demodulator must be connected to the input RECV_PIN.

 * Version 0.1 July, 2009

 * Copyright 2009 Ken Shirriff

 * http://arcfn.com

 */

 

#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

  }

 

}

 

 

Al presionar los botones del control remoto aparecerán los siguientes datos en Hexadecimal, correspondiente al valor del botón pulsado:

Los datos anteriores deben ser guardados para el código final, el cual corresponde al siguiente:

/*

EJEMPLO RECEPCIÓN INFRARROJOS

TIENES QUE CAMBIAR EL CODIGO SEGUN EL CONTROL QUE UTILICE

 */

 

#include <IRremote.h>

 

IRrecv irrecv(11);//El pin 11 de arduino, cambiar para utilizar otro si asi se desea

 

decode_results results;

 

void setup()

{

  Serial.begin(9600);

  irrecv.enableIRIn(); // Start the receiver

}

 

void RecepcionInfrarrojos(decode_results *results) {

 

 

   //Tienes que adaptarlo a tu mando a distancia

   switch (results->value){

    case  0xE0E020DF://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 1");

      break;

     

    case  0xE0E0A05F://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 2");

      break;

   

    case  0xE0E0609F://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 3");

      break;

    case  0xE0E010EF://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 4");

      break; 

     

    case  0xE0E0906F://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 5");

      break; 

         

    case  0xE0E050AF://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 6");

      break; 

    

    case  0xE0E030CF://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 7");

      break; 

     

    case  0xE0E0B04F://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 8");

      break; 

   

    case  0xE0E0708F://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 9");

      break; 

     

    case  0xE0E08877://cambia el codigo por el que envio tu mando a distancia

      Serial.println("PULSADO NUMERO 0");

      break; 

 

 

}

 

 

void loop() {

  if (irrecv.decode(&results)) {

    RecepcionInfrarrojos(&results);

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

  }

}

Al presionar cierto botón del control remoto, aparecerá un texto mostrando el código al cual le corresponde el botón pulsado, esto gracias a la instrucción SWITCH CASE, en este caso el código corresponde a los botones pulsados del 0 al 9.

Descarga
DESCARGA CODIGO EXPLICACION DIAGRAMA
TSOP1738.rar
Archivo comprimido 823.3 KB

Escribir comentario

Comentarios: 0