Comunicazione seriale RS485 tra Arduino

Salve a tutti ragazzi,

ho parecchi dubbi sulla comunicazione seriale RS485. Arrivando subito al punto, prendiamo in esempio questo progetto:

fin qua tutto ok... ma vediamo di modificarlo e di aggiungere un secondo potenziometro sul trasmettitore che comanda un secondo Servo del ricevitore.

Quel che non capisco è (a livello di codice) come discriminare le due azioni, ovvero:

  • se muovo il potenziometro 1 si muove il servo 1
  • se muovo il potenziometro 2 si muove il servo 2

Immagino che per la maggior parte di voi questa sia una cosa più che banale...

Grazie a tutti!

Considera che non ho mai usato la RS485, ma guardando il codice del link mi pare di capire che devi "inventarti" tu le aggiunte al protocollo di comunicazione per distinguere a quale servo è destinato il comando.
Per farla semplice potresti usare la S per servo1 e la T per servo2 (o qualunque altra lettera tranne I e F)

RS485 identifica solo lo standard "elettrico" dei segnali usati dall'interfaccia. Non ha nulla a che vedere con il software, considera la comunicazione esattamente come faresti con una seriale "normale". In altre parole devi creare un protocollo come dice fratt oppure usarne uno già fatto. Ad esempio Modbus RTU nasce proprio su connessione RS485.

Ci ho pensato e credo di aver capito.
Grazie a tutti per i chiarimenti

Il RS485 a differenza del RS232 é un BUS e non un collegamento punto a punto.
Inoltre la RS232 é bidirezionale (Full Duplex) mentre il RS485 usa gli stessi collegamenti per le due direzioni (Half Duplex) Per quello un protocollo di trasmissione deve garantire che solo un dispositivo collegato al RS485 trasmetta nello stesso momento e che sia identificabile a quale Dispositivo possa trasmettere e quale é il destinatario di dati o comandi.

Nel caso che la RS485 venga usato solo con 2 Dispositivi e uno é sempte il trasmettitore e l'altro é il ricevitore (flusso di informazioni solo in una direzione) la RS485 puó essere usato nello stesso modo come useresti la seiale TTL tra i 2 Arduino (TX a RX e le Masse collegate).

Se vuoi pilotare 2 Servo e non uno spedici 2 serie di dati; presumo 10 Bit del potenziometro (2 Byte per il primo e 2 Byte per il secondo servo) oppure 1 Byte facendo il calcolo potenzometro a agolo giá prima della trasmissione dal dato (valori tra 0 e 180).

Ciao Uwe