Carrito controlado por Arduino a través de radiofrecuencia
Objetivo:
Mediante la implementación de Arduino, controlar los movimientos de
un carrito mediante las señales FM generadas por un emisor a través de un
control remoto.
Desarrollo:
1)
Circuito emisor: Este circuito funcionara como el control remoto, el cual permitirá
controlar los movimientos que tendrá el carrito. Los movimientos del carrito
consistirán en los siguientes:
1)
Circuito Receptor: Controlara el movimiento de la llantas
traseras, el cual se llevara a cabo por medio de 2 motores.
Código:
Emisor:
#include
<VirtualWire.h>
int pinAd = 8;
int pinAt = 9;
int pinDe = 10;
int pinIz = 11;
int pinPw = 12;
int pinTX = 4;
void setup(){
pinMode(pinAd,INPUT);
pinMode(pinAt,INPUT);
pinMode(pinDe,INPUT);
pinMode(pinIz,INPUT);
pinMode(pinPw,INPUT);
vw_set_tx_pin(pinTX);
vw_setup(2000);
Serial.begin(9600);
}
void loop(){
delay(500);
int estadopinAd = digitalRead(pinAd);
int estadopinAt = digitalRead(pinAt);
int estadopinDe = digitalRead(pinDe);
int estadopinIz = digitalRead(pinIz);
int estadopinPw = digitalRead(pinPw);
char *mensaje = "VACIO";
if (estadopinAd == HIGH)
{
mensaje = "A";
}
if (estadopinAt == HIGH)
{
mensaje = "R";
}
if (estadopinDe == HIGH)
{
mensaje = "D";
}
if (estadopinIz == HIGH)
{
mensaje = "I";
}
if (estadopinPw == HIGH)
{
mensaje = "P";
}
Serial.print("Enviado ");
Serial.println( mensaje );
vw_send( (uint8_t *) mensaje ,
strlen(mensaje) );
}
Receptor:
#include <VirtualWire.h>
//Motor A
const int pinMA1 = 5;
const int pinMA2 = 6;
//Motor B
const int pinMB1 = 10;
const int pinMB2 = 11;
const int pinRX =
4;//Pin de recepcion de datos
void setup(){
//MA
pinMode(pinMA1,OUTPUT);
pinMode(pinMA2,OUTPUT);
//MB
pinMode(pinMB1,OUTPUT);
pinMode(pinMB2,OUTPUT);
Serial.begin(9600);
vw_set_rx_pin(pinRX);
vw_setup(2000);
vw_rx_start();
}
void loop(){
uint8_t
mensaje[VW_MAX_MESSAGE_LEN];
uint8_t longitud =
VW_MAX_MESSAGE_LEN;
if (vw_get_message( mensaje ,
&longitud ) ){
Serial.print("Recibido ");
Serial.println( mensaje[0] );
if( mensaje[0] == 'A' ){
digitalWrite( pinMA1 , HIGH );//Motor1
digitalWrite( pinMA2 , LOW );
digitalWrite( pinMB1 , HIGH );//Motor2
digitalWrite( pinMB2 , LOW );
}
else if( mensaje[0] == 'R' ){
digitalWrite( pinMA1 , LOW
);//Motor1
digitalWrite( pinMA2 , HIGH
);
digitalWrite( pinMB1 , LOW
);//Motor2
digitalWrite( pinMB2 , HIGH
);
}
else if( mensaje[0] == 'D' ){
digitalWrite( pinMA1 , HIGH
);//Motor1
digitalWrite( pinMA2 , LOW
);
digitalWrite( pinMB1 , LOW
);//Motor2
digitalWrite( pinMB2 , HIGH
);
}
else if( mensaje[0] == 'I' ){
digitalWrite( pinMA1 , LOW );//Motor1
digitalWrite( pinMA2 , HIGH
);
digitalWrite( pinMB1 , HIGH );//Motor2
digitalWrite( pinMB2 ,
LOW);
}
else if( mensaje[0] == 'P' ){
digitalWrite( pinMA1 , LOW
);//Motor1
digitalWrite( pinMA2 , LOW );
digitalWrite( pinMB1 , LOW
);//Motor2
digitalWrite( pinMB2 , LOW);
}
}
}
Evidencias Fotográficas:
Control Remoto:
No hay comentarios:
Publicar un comentario