Ciao a tutti.
Sto usando L'ide0022 di arduino e la libreria NewSoftSerial per la comunicazione seriale tra due arduino.
Stavo provando a scambioare dati tra i due, e ci riesco, ma ho un problema a mettere insieme i dati ricevuti.
Il codice che ho scritto è questo:
PER TXMi stampa continuamente interi da inviare all'altro arduino che ascolta in ricezione
#include <NewSoftSerial.h>
NewSoftSerial mySerial(2, 3);
void setup()
{
Serial.begin(115200);
Serial.println("Inizio a trasmettere");
mySerial.begin(115200);
}
void loop() {
for (int i=0; i<100; i++) {
delay (1000);
Serial.println(i);
mySerial.print(i);
}
{
if (Serial.available()) {
mySerial.print((char)Serial.read());
}
}
}
PER RX#include <NewSoftSerial.h>
NewSoftSerial mySerial(2, 3);
byte rx; // variabile per contenere il carattere ricevuto
void setup()
{
Serial.begin(115200);
Serial.println("Ricevo");
mySerial.begin(115200);
mySerial.flush();
}
void loop()
{
if (mySerial.available() >0) // Controllo se il buffer di ricezione contiene qualcosa
{
rx = mySerial.read(); // leggo il carattere ricevuto e lo memorizzo in rx
Serial.println(rx);
}
}
Quando conta da 0 a 9 non ci sono problemi, quando deve mettere insieme 2 cifre (10,11,12 ... ecc) le separa trattandole un valore alla volta.
così:
Ricevo:
0
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
Come posso fare a fare in modo che stampi qualsiasi valore come lo riceve, e non il byte separato?
Insomma come posso fare a sincronizzarlo in modo che capisca la parola che deve stampare?