IR Arduino Transmit n Receive

2

Estoy usando un Módulo receptor de IR digital y un Módulo transmisor de IR digital conectados cada uno con Arduino Uno diferente. ¿Cómo puedo transmitir datos como "1234" al receptor y mostrar los datos en la pantalla LCD? Esto se debe a que la mayoría de los ejemplos que encontré utilizando el código de control remoto IR como Sony y RC4. Solo quiero enviar un dato simple.

    
pregunta lunia

1 respuesta

5

Como la pregunta no indica qué módulos transmisores y receptores digitales IR están en uso, esta respuesta explica cómo se puede lograr la comunicación de datos infrarrojos utilizando simplemente un LED IR genérico y un receptor IR modulado como el TSOP17xx u otras partes similares.

Suposiciones :

  • El IR LED elegido puede manejarse con una corriente de 20 mA, por ejemplo. IR333
  • Se debe utilizar el sensor TSOP1756 (modulación de 56 KHz).
    • Cambie la frecuencia de modulación de acuerdo con la parte real utilizada en el módulo del sensor. Para TSOP11 38 , por ejemplo, la frecuencia de modulación es de 38 KHz.

Recibiendo :

Esta es la parte fácil. Simplemente conecte el pin OUT del sensor al pin RX serial de su Arduino (digital Pin 0 ). Si su Arduino es uno de los modelos básicos (más antiguos), use Serial.read() en loop() :

int inputByte = 0;
if (Serial.available() > 0) {
    // read the incoming byte:
    inputByte = Serial.read();
    // Do stuff with this byte, then loop again

Para Arduino Mega o Due , también puede usar Serial1, Serial2 o Serial3, según el pin RX que utilice.

Para obtener referencias adicionales, consulte la referencia serial de Arduino .

N.B. Encienda el sensor con el mismo voltaje que su Arduino en realidad ejecuta su microcontrolador en , ya sea 3.3 o 5 voltios, según el modelo de Arduino. Cada placa Arduino tiene un pin de salida de voltaje adecuado que puede usar para esto. No not use la fuente externa (generalmente de 7 a 12 voltios) provista a la placa Arduino.

Transmitiendo :

Tienes dos opciones: (1) Arduino, LED y componentes pasivos, o (2) usando un componente de puerta lógica adicional. La primera opción es buena para LEDs IR de baja corriente (tops de 20-30 mA):

  • Establezca uno de los temporizadores Arduino (Timer1 por ejemplo, es un temporizador de 16 bits) para la frecuencia de modulación, con salida a uno de los pines D9 o D10 del temporizador asociados con este temporizador.
  • Para un Arduino de 16 MHz, para obtener aproximadamente 56 KHz, use un valor de desbordamiento de contador de 286 (= 55,944 Hz ). Un valor de desbordamiento de 421 entregará 38,005 Hz en su lugar, si es necesario.
  • Conecte una resistencia limitadora de corriente adecuada ( 120 a 150 ohmios en un Arduino de 5 voltios = aproximadamente 18 mA a 23 mA ), un diodo de señal pequeña y el LED en serie como se muestra abajo:

simular este circuito : esquema creado usando CircuitLab

  • Cuando el pin TX es alto, el LED se pulsará a la frecuencia de modulación. Cuando el pin de TX está bajo, el LED no se encenderá, y el diodo de pequeña señal en serie protegerá al LED de una avería inversa.
  • Si su Arduino es del tipo de 3.3 voltios, entonces el diodo de pequeña señal no es realmente esencial.

Para controlar un LED de corriente superior , un componente lógico adicional, un quad AND gate como SN74AS1008 . Esta parte genera o hunde hasta 48 mA por compuerta, y varias compuertas pueden conectarse en paralelo para una unidad de corriente más alta.

  • Conecte la salida del Timer1 como se estableció anteriormente, a una entrada de cada una de las puertas AND.
  • Conecte la salida de TX como se mencionó anteriormente, a la segunda entrada de cada una de las puertas AND.
  • Conecte una resistencia limitadora de corriente de valor adecuado a cada pin de salida de estas puertas 4Y, de manera que la suma de las 4 corrientes de salida sea igual a la corriente de control deseada en el LED
  • Conecte los otros extremos de las 4 resistencias limitadoras de corriente al Ánodo del LED, con el Cátodo conectado a tierra Arduino.
  • Es posible que tenga que suministrar el Vcc de la puerta AND desde una fuente de alimentación externa (5 voltios), ya que el regulador a bordo del Arduino se sobrecalentará si se extrae demasiada corriente a través de él. Asegúrese de que la conexión a tierra de esta fuente externa esté conectada a Arduino GND.

simular este circuito

Ahora simplemente use Serial.write() en su código Arduino loop() , para transmitir cualquier información en serie, que será recibida por el Serial.read() en el otro extremo, como se describió anteriormente.

    
respondido por el Anindo Ghosh

Lea otras preguntas en las etiquetas