Hello friends, i have stuck on a piece of code and i would like you’re help please.
I want to use the VirtualWire and IRRemote library together to send from Tx module the raw code so the Rx Modele to use the command Irsend.sendraw(…);
I try the bellow code but no success =(
Tx Module:
#include <VirtualWire.h>
struct TxData {
int addTx;
unsigned int code[150];
};
TxData txData;
void setup(){
vw_setup(2000); // Bits per sec
vw_set_tx_pin(12);
Serial.begin(9600);
pinMode(led,OUTPUT);
}
void loop(){
// for test only the bellow.
txData.addTx = 1;
txData.code[0] = 250;
txData.code[1] = 2050;
txData.code[2] = 3050;
txData.code[3] = 9050;
vw_send((uint8_t *)&txData, sizeof(txData));
vw_wait_tx();
delay(2000);
}
For the Rx module
#include <VirtualWire.h>
#include <IRremote.h>
struct TxData {
int addTx;
unsigned int code[150];
};
TxData txData;
void setup()
{
vw_setup(2000);
vw_set_rx_pin(11);
vw_rx_start();
Serial.begin(9600);
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)){
digitalWrite(led,HIGH);
vw_rx_stop();
delay(100);
for (int i = 0; i < buflen; i++){
if (i > 0) txData.code[i - 1] = (unsigned int)buf[i];
}
txData.addTx =buf[0];
Serial.print("Address found ");
Serial.println(txData.addTx);
Serial.print("Code is ");
for (int i = 0; i < buflen - 1; i++){
Serial.println(txData.code[i]);
}
vw_rx_start(); // Start Receive again
digitalWrite(led,LOW);
}