Descripción
Kit de comunicación por radiofrecuencia (RF) a 433MHz, compuesto por emisor (FS1000A) y receptor (XY-MK-5V) de bajo coste. La comunicación es de tipo simplex (un único canal, una única dirección) a baja velocidad (2.4kbps), pero suficiente para muchos proyectos. El módulo no dispone de seguridad adicional ni identificación hardware, por lo que el nivel de seguridad puede aumentarse vía software.
El tamaño realmente reducido del módulo emisor y receptor hace que puedan usarse en proyectos de pequeño tamaño, por ejemplo en mandos a distancia.
La frecuencia utilizada por este módulo (433MHz) pertenece a la banda libre del espectro radioeléctrico, por lo que puedes usarlo de forma gratuita y legal en tus proyectos.
El alcance del módulo depende de la tensión de alimentación y la antena utilizada:
- Con 5V y la antena integrada el alcance es de unos pocos metros.
- Con 12V (tensión máxima) y antena de cobre de 16,5cm el rango puede superar 100m, siempre sin obstáculos y con una alimentación suficientemente estable y potente. Es importante respetar la longitud exacta de la antena, al ser múltiplo de la longitud de onda, lo que maximiza el alcance.
Se incluye:
- Emisor (FS1000A)
- Receptor (XY-MK-5V)
Conexionado emisor:
- DATA: A un pin digital de Arduino, por ejemplo D9
- Vcc: A alimentación (5V de Arduino)
- GND: A GND de Arduino
Conexionado receptor:
- Vcc: a 5V de Arduino
- DATA (2 pines con la misma señal): A un pin digital de Arduino, por ejemplo D8
- GND: A GND de Arduino
Con este tipo de módulos suele usarse la transmisión basada en ASK, que sincroniza emisor y receptor antes de emitir los datos, por lo que aconsejamos el uso de la librería «Virtual Wire«.
El siguiente código de ejemplo lee el monitor serie en el receptor y, cuando se escribe una «a» activa la salida del receptor; apagándola cuando se escriba una «b». Es fácil adaptar este código para realizar funciones más complejas. Por ejemplo, que abra la puerta del garaje cuando reciba una cadena de texto determinada.
Código para activar una salida a distancia (EMISOR):
#include <VirtualWire.h> const int dataPin = 9; void setup() { Serial.begin(9600); vw_setup(2000); vw_set_tx_pin(dataPin); } void loop(){ while (Serial.available() > 0) { char data[1]; data[0] = Serial.read(); vw_send((uint8_t*)data,sizeof(data)); vw_wait_tx(); } delay(200); }
Código para activar una salida a distancia (RECEPTOR):
#include <VirtualWire.h> const int dataPin = 8; const int outPin = 5; void setup() { vw_setup(2000); vw_set_rx_pin(dataPin); vw_rx_start(); pinMode(outPin , OUTPUT); digitalWrite(outPin , false); } void loop() { uint8_t data; uint8_t dataLength=1; if (vw_get_message(&data,&dataLength)) { if((char)data=='a') { digitalWrite(outPin , true); } else if((char)data=='b') { digitalWrite(outPin , false); } } }
Valoraciones
No hay valoraciones aún.