You are on page 1of 6

18/4/2016

ControlremotoporRF(RadioFrecuencia)usandoArduino/GenuinoyunJoystick|WebRobtica.com

Web-Robtica.com
Robtica Educatva, Electrnica Divertida, Inteligencia Artificial, Programacin, Ingenieria

Control remoto por RF (RadioFrecuencia) usando Arduino/Genuino y


un Joystick
Prototipos, Prototipos

Arduino/Genuino, Cdigo Arduino, Control Remoto, Mdulos RF,


Prototipos Arduino, Robotica educativa, Taller de Web-Robtica
Con este prototipo bsico vamos a sentar las bases para poder mover nuestros vehculos y robots,
controlados conArduino/Genuino, mediantecontrol remoto, usando un joystick y los mdulos de
Radio-Frecuencia. Al accionar nuestro joystick en un equipo emisor, obtendremos diferentes
respuestas de unos LEDs en el equipo receptor.

Cmo funcionan los mdulos RF transmisor y


receptor inalambricos la biblioteca VirtualWire
Anuncios Google

ArduinoRFArduinoPCBArduinointLCDArduino

Los equipos de Radio-Frecuencia estn compuestos dos mdulos, un transmisor y un receptor


inalmbricos que funcionan a 315Mhz.. Dado que slo uno de ellos es transmisor, la comunicacin de
datos slo funcionar en un sentido, por lo que se necesitan dos pares (de diferentes frecuencias)
para actuar como un par transmisor / receptor.

Los mdulos de RF de bajo coste requieren un formato especial de datos, con patrones de
sincronizacin, equilibrio de bits 0 y 1, y comprobacin de errores. VirtualWire ofrece todas estas
caractersticas, lo que permite un mejor rendimiento de los circuitos de radio muy baratos.

http://www.webrobotica.com/tallerdewebrobotica/prototipos/controlremotoporrfradiofrecuenciausandoarduinogenuinoyunjoystick

1/6

18/4/2016

ControlremotoporRF(RadioFrecuencia)usandoArduino/GenuinoyunJoystick|WebRobtica.com

Para usar esta bibiloteca descarga el archivo y sbelo al programa Arduino IDE.

ArduinoIDE>Programa>IncludeLibrary>Add.ZipLibrary

Descargar biblioteca (VirtualWire)


Podis encontrar sus funcionamiento bsico de esta biblioteca en: www.webrobotica.com/arduino/como-utilizar-los-modulos-rf-transmisor-y-receptor-315mhz-con-arduino

Como funciona el mdulo joystick

El mdulo joystick nos va a proporcionas una seal analgica para el movimiento en el eje X, y otra
seal para el eje Y.
Dependiendo de la cantidad de seal en cada entrada activar una seal que podemos utilizar para
controlar diferentes aparatos, como LEDs, motores, etc.
www.web-robotica.com/arduino/como-utilizar-el-modulo-joystick-con-arduino

Como usar el control remoto por RF (RadioFrecuencia) usando Arduino/Genuino y un Joystick

Para este prototipo vamos a construir dos equipos, el equipo emisor y el receptor.

http://www.webrobotica.com/tallerdewebrobotica/prototipos/controlremotoporrfradiofrecuenciausandoarduinogenuinoyunjoystick

2/6

18/4/2016

ControlremotoporRF(RadioFrecuencia)usandoArduino/GenuinoyunJoystick|WebRobtica.com

El equipo emisor, que controla remotamente al equipo receptor, est compuesto por una placa
Arduino/Genuino, un joystick y el Mdulo emisor de Radio-Frecuencia. Para las diferentes
posiciones del joystick vamos a emitir diferentes caracteres. Estos caracteres actuarn sobre
diferentes LEDs en el mdulo receptor. El equipo receptor est compuesto por una placa
Arduino/Genuino, un mdulo receptor y cuatro LEDs.

Componentes y materiales
2 PlacasArduino/Genuino
1 Mdulo joystick
1 MduloEmisor RF
1 MduloReceptor RF
4 LEDs
4Resistencias
Protoboard
Cables de conexin

Esquema y montaje
Emisor de Control Remoto

Para el equipo emisor tenemos que conectar el mdulo emisor y el joystick a la


placa Arduino/Genuino. El mdulo emisor lo conectamos a +5V, a GND, y al pin 12 de la
placa Arduino/Genuino. El Joystick lo conectamos a +5V, a GND, la seal X y la seal Y los
conectamos a los pines analgicos A0 y A5 de la placaArduino/Genuino ,y el pulsador lo conectamos
al pin 2 de la placaArduino/Genuino.

Receptor de Control Remoto

http://www.webrobotica.com/tallerdewebrobotica/prototipos/controlremotoporrfradiofrecuenciausandoarduinogenuinoyunjoystick

3/6

18/4/2016

ControlremotoporRF(RadioFrecuencia)usandoArduino/GenuinoyunJoystick|WebRobtica.com

Para el equipo receptor tenemos que conectar el mdulo receptor y los LEDs junto con las
resistenciasa la placaArduino/Genuino. El mdulo receptorlo conectamos a +5V, a GND, yal pin 12
de la placa Arduino/Genuino. Los LEDs los conectamos a GND, y a los pines 4, 5, 6 y 7 de la
placaArduino/Genuino.

Cdigo Arduino para el equipo emisor


Anuncios Google

ArduinointLCDArduinoArduinounoRFModule

#include<VirtualWire.h>
booleanrunning=true;
char*controller;
intxPin=A5;
intyPin=A0;
intbuttonPin=2;
intxPosition=0;
intyPosition=0;
intbuttonState=1;
voidsetup(){
Serial.begin(9600);
pinMode(xPin,INPUT);
pinMode(yPin,INPUT);
pinMode(13,OUTPUT);

vw_set_ptt_inverted(true);//
vw_set_tx_pin(12);
vw_setup(4000);//speedofdatatransferKbps
}
voidloop(){
xPosition=analogRead(xPin);
yPosition=analogRead(yPin);
buttonState=digitalRead(buttonPin);

Serial.print("X:");

http://www.webrobotica.com/tallerdewebrobotica/prototipos/controlremotoporrfradiofrecuenciausandoarduinogenuinoyunjoystick

4/6

18/4/2016

ControlremotoporRF(RadioFrecuencia)usandoArduino/GenuinoyunJoystick|WebRobtica.com

Serial.print(xPosition);
Serial.print("|Y:");
Serial.print(yPosition);
Serial.print("|Emitiendo:");
Serial.println(controller);
if(xPosition<=300&&300>yPosition<700)
{
controller="4";
vw_send((uint8_t*)controller,strlen(controller));
vw_wait_tx();//Waituntilthewholemessageisgone
digitalWrite(13,1);
}
elseif(300>yPosition<700&&xPosition>700)
{
controller="6";
vw_send((uint8_t*)controller,strlen(controller));
vw_wait_tx();//Waituntilthewholemessageisgone
digitalWrite(13,1);
}
elseif(300>xPosition<700&&yPosition>700)
{
controller="5";
vw_send((uint8_t*)controller,strlen(controller));
vw_wait_tx();//Waituntilthewholemessageisgone
digitalWrite(13,1);
}
elseif(300>xPosition<700&&yPosition<=300)
{
controller="7";
vw_send((uint8_t*)controller,strlen(controller));
vw_wait_tx();//Waituntilthewholemessageisgone
digitalWrite(13,1);
}
elseif(300>xPosition<700&&300>yPosition<700)
{
controller="0";
vw_send((uint8_t*)controller,strlen(controller));
vw_wait_tx();//Waituntilthewholemessageisgone
digitalWrite(13,0);
}}

Cdigo Arduino para el equipo receptor


Este cdigo controla el receptor de manera que cuando recibe el mensaje 4 activa el pin 4, si
recibe5 activa el pin 5,si recibe6 activa el pin 6, ysi recibe7 activa el pin 7.

//IncluimoslabibliotecaVirtualWire
#include<VirtualWire.h>
voidsetup()
{
vw_set_ptt_inverted(true);//RequeridoparaDR3100
vw_set_rx_pin(12);
vw_setup(4000);//Bitsporsegundo
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
vw_rx_start();//Iniciaelreceptor
}
voidloop()

http://www.webrobotica.com/tallerdewebrobotica/prototipos/controlremotoporrfradiofrecuenciausandoarduinogenuinoyunjoystick

5/6

18/4/2016

ControlremotoporRF(RadioFrecuencia)usandoArduino/GenuinoyunJoystick|WebRobtica.com

{
uint8_tbuf[VW_MAX_MESSAGE_LEN];
uint8_tbuflen=VW_MAX_MESSAGE_LEN;
if(vw_get_message(buf,&buflen))
{
//Sirecibe'0'noactivaningnpin
if(buf[0]=='0'){
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
}
//Sirecibe'4'activaelpin4
if(buf[0]=='4'){
digitalWrite(4,1);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,0);
}
//Sirecibe'5'activaelpin5
if(buf[0]=='5'){
digitalWrite(4,0);
digitalWrite(5,1);
digitalWrite(6,0);
digitalWrite(7,0);
}
//Sirecibe'6'activaelpin6
if(buf[0]=='6'){
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,1);
digitalWrite(7,0);
}
//Sirecibe'7'activaelpin7
if(buf[0]=='4'){
digitalWrite(4,0);
digitalWrite(5,0);
digitalWrite(6,0);
digitalWrite(7,1);
}}}

1
Share

Compartir

Tweet

submit

StumbleUpon
0

http://www.webrobotica.com/tallerdewebrobotica/prototipos/controlremotoporrfradiofrecuenciausandoarduinogenuinoyunjoystick

6/6