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):
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.