I have this modules i want do when i pushed button from transmitter, led on from receiver but i have some problem here.
İ want pushed button led on, not pushed led off.
Tranmitter
#include <VirtualWire.h>
char *controller;
void setup() {
pinMode(2,INPUT);
pinMode(3,INPUT);
pinMode(4,INPUT);
pinMode(5,INPUT);
vw_set_ptt_inverted(true); //
vw_set_tx_pin(12);
vw_setup(4000);// speed of data transfer Kbps
}
void loop(){
if(digitalRead(2)== 0){
controller="2" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
}
if(digitalRead(3)== 0){
controller="3" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
}
if(digitalRead(4)== 0){
controller="4" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
}
if(digitalRead(5)== 0){
controller="5" ;
vw_send((uint8_t *)controller, strlen(controller));
vw_wait_tx(); // Wait until the whole message is gone
}
}
receiver
#include <VirtualWire.h>
uint8_t dely=0;
void setup()
{
vw_set_ptt_inverted(true); // Required for DR3100
vw_set_rx_pin(12);
vw_setup(4000); // Bits per sec
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
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
{
if(buf[0]=='2'){ // button 2 ise
digitalWrite(2,1); // LED2 HIGH
delay(dely);
}
else
{
digitalWrite(2,0);
}
if(buf[0]=='3'){ // button 3 ise
digitalWrite(3,1); // led 3 HIGH
delay(dely);
}
else
{
digitalWrite(3,0);
}
if(buf[0]=='4'){ // button 4 ise
digitalWrite(4,1); // LED 4 HIGH
delay(dely);
}
else
{
digitalWrite(4,0);
}
if(buf[0]=='5'){ // BUTTON 5 ise
digitalWrite(5,1); // LED 5 HIGH
delay(dely);
}
else
{
digitalWrite(5,0);
}
}
}