ControlremotoporRF(RadioFrecuencia)usandoArduino/GenuinoyunJoystick|WebRobtica.com
Web-Robtica.com
Robtica Educatva, Electrnica Divertida, Inteligencia Artificial, Programacin, Ingenieria
ArduinoRFArduinoPCBArduinointLCDArduino
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
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
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
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.
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);
}}
//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