Buongiorno a tutti, sono di nuovo qui a disturbare...
Sto lavorando ad una piccola rete rs485, in cui ci sono due arduino UNO e un arduino MEGA.
Quando invio dati via serial da arduino MEGA ad arduino UNO è tutto OK...
Ma quando invio i dati da UNO a MEGA, il mega non riceve... non entra nemmeno nel void serialEvent.
Ho provato anche a collegare direttamente le porte seriali di MEGA e UNO (escludendo intanto il terzo).
Ho provato anche con le altre seriali, addirittura con quella collegata all'USB, ma io invio i dti dal PC, arduinoMEGA non li riceve (con il monitor seriale).
Il programma dell'arduino UNO che invia i dati è questo (funzionante perchè vedo i dati anche con il monitor seriale collegato a arduino UNO):
buongiorno, ho fatto alcune prove e tutto funziona correttamente. C'è però una piccola imprecisione nella comunicazione, cioè l'arduino uno invia i dati corretti, ma il mega li riceve sommati a 208. cioè se arduino uno invia 41, il mega riceve 208... perchè? invece se ad arduino uno gli attacco il cavo usb, il computer visualizza i dati giusti.
Hai collegato i GND delle due schede tra di loro?
Se non l'ho hai fatto è come misurare la vera altezza di due persone che però portano scarpe diverse.
PaoloP:
Hai collegato i GND delle due schede tra di loro?
Se non l'ho hai fatto è come misurare la vera altezza di due persone che però portano scarpe diverse.
Si si sono collegate ... Hanno la stessa alimentazione.
Per adesso ho "risolto" sottraendo il 208 che stranamente viene sommato ai dati in arrivo:
INdati = Serial1.read()-208;
e per adesso funziona, ma se possibile vorrei capire perché fa così.