4 Arduino Master Slave in RS485

Hai deciso quali saranno i comandi da trasmettere? Partiamo da lì.
Hai fatto un elenco? Pubblicalo e guardiamolo.

Caro Leo72 io in mente ho deciso quello che almeno per il momento devono essere i comandi da trasmettere e provo a pubblicare un'elenco...speriamo che possa essere comprensibile e possa essere lo spunto per iniziare finalmente a stilare uno sketch di prova molto ma molto basilare:

Arduino Mega MASTER ID 0x00
Arduino1 SLAVE ID 0x01
Arduino1 SLAVE ID 0x02
Arduino1 SLAVE ID 0x03

Ogni arduino SLAVE gestisce :
-4 Ingressi Digitali pin 2,3,4,5
-4 Uscite Digitali pin 6,7,8,9,10,11
-4 Ingressi Analogici pin A0,A1,A2,A3

Arduino Mega MASTER gestisce:
-4 Ingressi Digitali pin 2,3,4,5
-12 Uscite Digitali pin 6,7,8,9,10,11,12,13,14,15,16,17
L'arduino Master interroga in tempo reale lo stato degli ingressi digitali,analogici e delle uscite di ogni SLAVE
Il legame che ci dovrà essere tra i 4 dispositivi almeno per adesso potrebbe essere semplicemente questo:

Step 1
ARDUINO1 Slave Ingresso Pin2 Riposo LOW ----- Uscita Pin6 LOW ----- Master Mega Uscita pin6 LOW
ARDUINO1 Slave Ingresso Pin3 Riposo LOW ----- Uscita Pin7 LOW ----- Master Mega Uscita pin7 LOW
ARDUINO1 Slave Ingresso Pin4 Riposo LOW ----- Uscita Pin8 LOW ----- Master Mega Uscita pin8 LOW
ARDUINO1 Slave Ingresso Pin5 Riposo LOW ----- Uscita Pin9 LOW ----- Master Mega Uscita pin9 LOW
ARDUINO1 Slave Ingresso A0 ---- misura temperatura ---- trasmette il Byte all'Arduino Mega MASTER

Cambio di stato:

Step 2
ARDUINO1 Slave Ingresso Pin2 Attivo HIGH ----- Uscita Pin6 HIGH ----- Master Mega Uscita pin6 HIGH
ARDUINO1 Slave Ingresso Pin3 Attivo HIGH ----- Uscita Pin7 HIGH ----- Master Mega Uscita pin7 HIGH
ARDUINO1 Slave Ingresso Pin4 Attivo HIGH ----- Uscita Pin8 HIGH ----- Master Mega Uscita pin8 HIGH
ARDUINO1 Slave Ingresso Pin5 Attivo HIGH ----- Uscita Pin9 HIGH ----- Master Mega Uscita pin9 HIGH
ARDUINO1 Slave Ingresso A0 ---- misura temperatura ---- trasmette il Byte all'Arduino Mega MASTER

Step 3
ARDUINO1 Slave Ingresso Pin2 Riposo LOW ----- Uscita Pin6 LOW ----- Master Mega Uscita pin6 LOW
ARDUINO1 Slave Ingresso Pin3 Riposo LOW ----- Uscita Pin7 LOW ----- Master Mega Uscita pin7 LOW
ARDUINO1 Slave Ingresso Pin4 Riposo LOW ----- Uscita Pin8 LOW ----- Master Mega Uscita pin8 LOW
ARDUINO1 Slave Ingresso Pin5 Riposo LOW ----- Uscita Pin9 LOW ----- Master Mega Uscita pin9 LOW
ARDUINO1 Slave Ingresso A0 ---- misura temperatura ---- trasmette il Byte all'Arduino Mega MASTER

Idem per Arduino Slave 2,3, con l'unica differenza che sul Master Mega le uscite da pilotare sono per corrispondenza Slave2-pin10,11,12,13 e Slave3-pin14,15,16,17

Ora l'elenco dei comandi dovrebbe questo:

Cmd 1 = master interroga Pin Ingresso ? Slave ?
Cmd 2 = master interroga Pin Uscita ? Slave ?
Cmd 3 = master interroga Pin analogico ? Slave ?
Cmd 4 = master comanda stato LOW Pin Ingresso ? Slave ?
Cmd 5 = master comanda stato HIGH Pin Ingresso ? Slave ?
Cmd 6 = master .... e qui mi blocco perchè non saprei più andare avanti e comunque sia spero che quello che ho scritto sia comprensibile...

Chiaramente lo scopo di tale progetto è prettamente per uso domestico dove l'Arduino MEGA farebbe da Nodo Master centrale di casa e gli Arduini1 dislocati nelle varie stanze per monitorare pulsanti e attivare luci e rilevamento temperatura ambientale...poi a progetto avviato lo scopo sarebbe quello di installare su Arduino Mega una shield Ethernet per far visualizzare da client browser lo stato delle temperature di ogni ambente e lo stato delle luci on-off...

Dai che forse partiamo...