Alla fine ho risolto cosi.
MODULO TRASMITTENTE, che riceve sulla seriale ext un flusso di caratteri e li invia immediatamente via XBEE
#include <SoftwareSerial.h>
SoftwareSerial ext(3, 2);
void setup(){
Serial.begin(19200);
ext.begin(4800);
delay(10);
}
void loop(){
if(ext.available()>0) {
//readFromSerial();
Serial.print((char)ext.read());
//Se ricevo caratteri da modulo che trasmette 7-E-1 devo fare
//Serial.print((char)ext.read()&0x7F);
Serial.flush();
}
}
MODULO RICEVENTE. Attende i caratteri e poi li stampa sulla seriale che poi saranno modificati da un programma su PC.
#include <SoftwareSerial.h>
SoftwareSerial xbee(10, 9);
void setup(){
Serial.begin(9600);
xbee.begin(19200);
delay(10);
}
void loop() {
if(xbee.available()) {
char lettura=(char)xbee.read();
Serial.print(lettura);
}
}
Sembrano due programmi che sono una stupidata. Ma cercare di far andare i moduli a velocità adeguate non è stato semplice.
Se c'è bisogno spiego anche come ho impostato i due moduli Zigbee che poi faranno parte di una rete mesh.