modulo433 MHz ricezione dati dati

ciao a tutti dovrei far comunicare 2 arduini con moduli da 433 mhz il primo arduino invia valori analogici di un joystik e nell'altro dovrei ricevere 2 dati per far muovere 2 servi motore Sto impazzendo vi posto i codici TX e RX

codice TX

/*
PIN DESCRIPTION ARDUINO PIN
1 GND GND
2 VCC (3.5-12V) VCC
3 TX DATA D2
*/

#include <VirtualWire.h>
const int TX_DIO_Pin = 2;
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output
void setup() {
pinMode(13, OUTPUT);
initialize_transmitter();
}

/* Main program */
void loop() {

int counter=100;
int counter1=101;
int xpin=analogRead(X_pin);
int ypin=analogRead(Y_pin);
transmit_integer(counter);
delay(100);
transmit_integer(xpin);
delay(100);
transmit_integer(counter1);
delay(100);
transmit_integer(ypin);
delay(100);

}

/* DO NO EDIT BELOW */

void initialize_transmitter() {
/* Initialises the DIO pin used to send data to the Tx module /
vw_set_tx_pin(TX_DIO_Pin);
/
Set the transmit logic level (LOW = transmit for this version of module)*/
vw_set_ptt_inverted(true);

/* Transmit at 2000 bits per second */
vw_setup(2000); // Bits per sec
}

void transmit_integer(unsigned int Data) {
/* The transmit buffer that will hold the data to be
transmitted. /
byte TxBuffer[2];
/
...and store it as high and low bytes in the transmit
buffer */
TxBuffer[0] = Data >> 8;
TxBuffer[1] = Data;

/* Send the data (2 bytes) */
vw_send((byte )TxBuffer, 2);
/
Wait until the data has been sent */
vw_wait_tx();
}

Codice RX

#include <VirtualWire.h>

const int RX_DIO_Pin = 2;
int received;
int received1;
int received2;
void setup() {
pinMode(13,OUTPUT);
Serial.begin(9600);
initialize_receiver();
}

/* Main program */
void loop() {
received = receive_integer();
if(received==100||received != -1)
{

if (received!=100){
received1 = received;
}

if (received!=101){
received2 = received1;
}

Serial.println(received1);

}

}

/* DO NOT EDIT BELOW */

void initialize_receiver() {
/* Initialises the DIO pin used to receive data from the Rx module /
vw_set_rx_pin(RX_DIO_Pin);
/
Receive at 2000 bits per second /
vw_setup(2000);
/
Enable the receiver */
vw_rx_start();
}

int receive_integer() {
/* Set the receive buffer size to 2 bytes */
uint8_t Buffer_Size = 2;

/* Holds the recived data */
unsigned int Data;

/* The receive buffer */
uint8_t RxBuffer[Buffer_Size];

/* Has a message been received? */
if (vw_get_message(RxBuffer, &Buffer_Size)) // Non-blocking
{

/* Store the received high and low byte data */
Data = RxBuffer[0] << 8 | RxBuffer[1];

return Data;
}
return -1;
}

Prima di tutto, nella sezione in lingua Inglese si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione ...

... poi, essendo questo il tuo primo post, nel rispetto del regolamento, ti chiedo di presentarti QUI (spiegando bene quali conoscenze hai di elettronica e di programmazione) e di leggere con attenzione il su citato REGOLAMENTO ...

... infine, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (in basso a destra del post, bottone More -> Modify) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone fatto così: </>, tutto a sinistra).

Guglielmo

P.S.: Il tuo post è stato spostato nell'opportuna sezione del forum "Italiano"