Trasmissione seriale tra due Arduino UNO

Salve a tutti, ho un problema di trasmissione seriale tra due Arduino: Ho collegato i due Arduino tramite pin
TX, RX , ho creato due programmi uno sul Master, che ha lo scopo di ricevere un valore analogico da un sensore di distanza. Questo valore lo trasformo da INT a CHAR e lo scrive sulla seriale.
Il programma SLAVE ha lo scopo di ricevere sulla seriale il valore di distanza e lo visualizza sul monitor seriale. Fino qui tutto funziona correttamente.
Il problema nasce quando inserisco nel programma SLAVE le istruzioni per scrivere il su detto valore seriale su un display LCD con I2C on board: appena riceve il primo valore dal MASTER, viene scritto sul monitor, viene scritto sul LCD, ma subito dopo la seriale si blocca. Non riesco a capire dove sbaglio. Basta che elimino le istruzioni di scrittura del LCD, la seriale non si blocca e continua a trasferire il valore di distanza dal MASTER verso lo SLAVE. Vi inoltro il programma dello SALVE.

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0X27,16,2);

char string_dist[20];

void setup() {

Serial.begin(115200);

lcd.init();
lcd.backlight();
lcd.print("Distanza");

}


void loop() {

while (Serial.available()==false)
{
Serial.readBytes(string_dist,20);

Serial.write(string_dist);
lcd.setCursor(0,1);
lcd.print(string_dist);

Serial.println(string_dist);
}
delay(100);

}

Buonasera, :slight_smile:
essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ...

... poi, in conformità al suddetto regolamento, punto 7, devi editare il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come da regolamento, nessuno ti potrà rispondere, quindi ti consiglio di fare il tutto al più presto. :wink:

alcuni problemi
uno evidente: stai usando la stessa seriale sia per collegare i due arduino che per collegare lo slave al PC
uno meno evidente, fai male la lettura della seriale dall'altro arduino
uno ancora latente: a quella velocità non andra(i) mai, dopo aver messo a posto i primi due

Ti ringrazio per la risposta, mi potresti indicare qual'è il giusto modo per leggere la seriale dell'Arduino MASTER?
Inoltre se mi puoi indicare dove posso andare a studiare le comunicazioni seriali tra Arduino.
Grazie