Para la transmisión/recepción simplificada usa el módulo RF 433MHz, que dispone de un pin para DATA único necesario para el ejemplo.
No se incluyen librerias para los periféricos de transmisión TX o Receptor RX
Transmisor: un bit alto y un bit bajo.
La señal de prueba se compone de un bit alto (1) por 100ms, y un bit bajo(0) por 100ms, suficiente para exponer el concepto que se quiere dar.
Sin embargo, el ancho de bit puede ser cambiado de forma simétrica, asimétrica, ajustado a las necesidades de uso.
La señal se aplica en dos formas:
- pin de transmisión, pin 4, aplicado al transmisor RF433 en DATA
- pin para LED, pint 13, del arduino, como señal visual .
Las instrucciones para el primer arduino que controla la transmisión corresponden a:
/* Prueba de transmisión, * parpadeo de led y transmisión de bit */ #define TxRfPin 4 #define ledPin 13 void setup(){ pinMode(TxRfPin, OUTPUT); pinMode(ledPin, OUTPUT); digitalWrite(TxRfPin,LOW); digitalWrite(ledPin, LOW); } void loop(){ digitalWrite(TxRfPin, HIGH); digitalWrite(ledPin, HIGH); delay(100); digitalWrite(TxRfPin,LOW); digitalWrite(ledPin, LOW); delay(100); }
Receptor
El receptor se arma con otro arduino y el periférico receptor. El pin DATA del receptor se conecta al arduino usando como entrada el pin analógico A0; se obtienen valores en el rango [0, 1023].
Una muestra de lo recibido en forma gráfica se obtiene de «Serial Plotter» del programa arduino, y los datos del «Serial Monitor»
0 0 0 0 0 0 0 0 0 1023 1022 1023 1023 1023 1023 1023 1023 1022 1023 1023 1023 1023 1023
Dado que los valores obtenidos son lecturas analógicas y pueden variar, se usan umbrales para la detección de un bit 1 y un bit 0 para encender o apagar el led del receptor.
Encender o apagar el led se decide con los valores de umbral.
/* * Receptor RF 433 * Prueba de recepción data analógico */ #define RxRfPin A0 #define ledPin 13 unsigned int data = 0; const unsigned int umbralAlto = 800; const unsigned int umbralBajo = 400; void setup(){ pinMode(ledPin, OUTPUT); digitalWrite(ledPin, LOW); Serial.begin(9600); } void loop(){ data=analogRead(RxRfPin); Serial.println(data); if(data>umbralAlto){ digitalWrite(ledPin, HIGH); } if(data<umbralBajo){ digitalWrite(ledPin, LOW); } }
Esquematico de conexiones
Información adicional
Especificaciones técnicas del RF433 de geektech:
Transmisor
- voltaje de funcionamiento: 3V ~ 12V\n\r
- corriente de trabajo : max 40mA (12V ) , min 9mA ( 3V )
- Resonance : ondas de sonido ( SAW)
- modo de modulación: ASK / OOK
- frecuencia de trabajo: 315MHz-433.92MHz,
- Transmission potencia : 25 mW ( 315 MHz a 12 V )
- Frequency : + 150 kHz (max)
- velocidad: 10Kbps
- self : negativo
- Aerial Longitud: 24cm ( 315MHz ) , 18 cm ( 433,92 MHz )
RX especificaciones técnicas:
- voltaje de funcionamiento: 5.0VDC + 0.5V
- corriente de trabajo: 2.5mA (5.0VDC)
- principio de funcionamiento: superheterodyn
- Método de trabajo : OOK / ASK
- Operating Frecuencia : 315 MHz , 433,92 MHz,
- ancho de banda : 2 MHz ( 315 MHz , con el resultado de la prueba en Lowing la sensibilidad 3DBm )
- sensibilidad: sobresale -105dBm (50)
- señal de salida: señal de nivel eléctrico TTL total transmitir
Referencia: https://arduinobasics.blogspot.com/2014/06/433-mhz-rf-module-with-arduino-tutorial.html Revisado wl 14/04/2018