i built a Robot which however works fine by utilizing the Virtual wire Library for wireless controlling and had the following code on Transmitter :
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
vw_set_tx_pin(9);
// Initialise the IO and IS
vw_setup(2000); // Bits per sec
}void loop()
{
if (Serial.read() == 's') {
const char *msg = "s";
digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
Serial.println("s is there");
}if (Serial.read() == 'f') {
const char *msg = "f";
digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
Serial.println("f is there");
}if (Serial.read() == 'r') {
const char *msg = "r";
digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
Serial.println("r is there");
}if (Serial.read() == 'b') {
const char *msg = "b";
digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
Serial.println("b is there");
}if (Serial.read() == 'l') {
const char *msg = "l";
digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
Serial.println("l is there");
}
}
and the Receiver code is :
#include <VirtualWire.h>
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
pinMode(10,OUTPUT);
pinMode(13,OUTPUT);//logical pin's for 1st motor
pinMode(12,OUTPUT);//logical pin for 1st motor
pinMode(8,OUTPUT); //logical pin for 2nd motor
pinMode(2,OUTPUT);//logical pin for 2nd motor
pinMode(9,OUTPUT);
digitalWrite(9,HIGH); //enable pin motor 1
digitalWrite(10,HIGH); // enable pin motor 2
vw_setup(2000); // Bits per sec
vw_set_rx_pin(11); // explicitly defining the signal pin for ATmega
vw_rx_start(); // Start the receiver PLL running
}void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf*);*
- }*
- switch (buf[0]) { //catching the first array instance received*
- case 'r': //Received r from the Transmitter for moving right*
- digitalWrite(13,HIGH);*
- digitalWrite(12,LOW);*
- digitalWrite(8,LOW);*
- digitalWrite(2,HIGH);*
- break;*
- case 's': //Received s from the Transmitter for moving straight*
- digitalWrite(13,HIGH);*
- digitalWrite(12,LOW);*
- digitalWrite(8,HIGH);*
- digitalWrite(2,LOW);*
- break;*
- case 'b': //Received b from the Transmitter for moving back*
- digitalWrite(13,LOW);*
- digitalWrite(12,HIGH);*
- digitalWrite(8,LOW);*
- digitalWrite(2,HIGH);*
- break;*
- case 'f': //Received f from the Transmitter for stopping*
- digitalWrite(13,LOW);*
- digitalWrite(12,LOW);*
- digitalWrite(8,LOW);*
- digitalWrite(2,LOW);*
- break;*
- case 'l': //Received l from the Transmitter for moving left*
- digitalWrite(13,LOW);*
- digitalWrite(12,HIGH);*
- digitalWrite(8,HIGH);*
- digitalWrite(2,LOW);*
- break;*
- }*
_ Serial.println("");_- }*
}
[/quote]
i send the commands by using the serial monitor of arduino and then transmitter sends the commands to receiver.