Hello I am trying to only use only one transmitter and receiver each 433 mhtz to make a remote control car. I am using 4 regular dc motors to drive this car. I am also trying to have 4 controls,forward,left,right,backwards. For some reason the receiving end isn't doing anything even though the Serial monitor gets all 4 different messages I have already tried a BUNCH of stuff from the internet. Here's the transmitter code:
#include <RH_ASK.h>
#include <SPI.h>
RH_ASK rf_driver;
void setup()
{
rf_driver.init();
}
void loop()
{
if(digitalRead(29) == 0){
const char *msg = "a";
rf_driver.send((uint8_t *)msg, strlen(msg));
rf_driver.waitPacketSent();
}
if(digitalRead(42) == 0){
const char *msg = "b";
rf_driver.send((uint8_t *)msg, strlen(msg));
rf_driver.waitPacketSent();
}
if(digitalRead(4) == 0){
const char *msg = "c";
rf_driver.send((uint8_t *)msg, strlen(msg));
rf_driver.waitPacketSent();
}
if(digitalRead(37) == 0){
const char *msg = "d";
rf_driver.send((uint8_t *)msg, strlen(msg));
rf_driver.waitPacketSent();
}
}
And here's the receiver code:
#include <RH_ASK.h>
// Include dependant SPI Library
#include <SPI.h>
// Create Amplitude Shift Keying Object
RH_ASK rf_driver;
void setup()
{
// Initialize ASK Object
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);
pinMode(52,OUTPUT);
pinMode(53,OUTPUT);
rf_driver.init();
// Setup Serial Monitor
Serial.begin(9600);
}
void loop()
{
// Set buffer to size of expected message
uint8_t buf[24];
uint8_t buflen = sizeof(buf);
// Check if received packet is correct size
if (rf_driver.recv(buf, &buflen))
{
Serial.println((char*)buf);
if((char*)buf == "a"){
digitalWrite(12,HIGH);
}
if((char*)buf == "b"){
digitalWrite(13,HIGH);
}
if((char*)buf == "c"){
digitalWrite(52,HIGH);
}
if((char*)buf == "d"){
digitalWrite(53,HIGH);
}
}
For some reason nothing is lighting up, can someone tell me why???