Scheda rs485 e altro

Ciao a tutti,
per un progetto che stavo iniziando avevo la necessità di sapere se esiste una scheda per arduino che possa avere più porte rs485. Questo mi serve perchè a volte mi capita di dovermi interfacciare con catene rs485 che però non possono essere collegate insieme e da qui la necessità di poter gestire più linee indipendenti. Secondo voi esiste qualcosa? Oppure in alternativa qualche scheda singola con porta 485 che però possa essere collegata all'arduino senza utilizzare i soliti cavetti per prototiti. L'ideale sarebbe utilizzare qualche connettore.

Un'ultima domanda, l'arduino ethernet potrebbe essere utilizzato anche con un'altro shield ethernet per gestire la comunicazioni con più reti?

Grazie a tutti e scusate se mi sono dilungato troppo.

Ciao

Non sono un esperto, ma credo che Arduino per comunicare con una scheda/board/chip RS485 usi la seriale fisica.
Ma Arduino Uno ne ha solo 1. Forse si può usare l'emulazione usando la libreria SoftwareSerial.
Bisognerebbe per prima cosa verificare se Arduino può gestire un collegamento RS485 anche NON usando la seriale fisica.
Arduino mega ha 4 seriali fisiche.

Shield in giro su internet mi sembra ci siano solo per 1 linea rs485.

ianselmi:
Un'ultima domanda, l'arduino ethernet potrebbe essere utilizzato anche con un'altro shield ethernet per gestire la comunicazioni con più reti?

Teoricamente si. Creando 2 istanze diverse della classe Ethernet.
Devi però modificare una delle 2 o più schede per cambiare il pin SS che deve essere diverso per ogni scheda. Ogni istanza di classe deve avere un riferiemnto al pin SS univoco (forse devi modificare la libreria).

Per quanto riguarda l'RS485 puoi prendere una proto shield vuota e installarci sopra i vari componenti per avere più canali.

Grazie mille per le risposte.
@PaoloP: ma dovrei proprio modificare l'hardware per cambiare il pin SS oppure ci sarà la possibilità di farlo via SW. Per quanto riguarda la proto shield, è proprio quello che non volevo fare perchè, a parte il dover ricostruire tutte le volete il circuito quando mi serve, mi sembra che i collegamenti siano un po' instabili e visto che il tutto deve poi essere messo in una scatola e installato da persone non proprio "gentili" volevo ridurre al minimo eventuali disconnessioni e problemi.

@nid69ita: Infatti volevo appunto cercare un scheda che mi lasciasse la seriale fisica per debug e con SoftwareSerial definire altre seriali su cui comunicare.

EDIT: Ovviamente dopo aver pubblicato il posto ho trovato la risposta a una delle due domande: http://forum.arduino.cc/index.php/topic,14585.0.html

Lo standard RS485 è stato ideato per superare i problemi di distanza e di disturbi che affliggono il classico RS232.

Secondo me non conviene utilizzare la SofwareSerial per collegare più interfacce RS485. Meglio pensare alla MEGA oppure ad un sistema multiplex per condividere la stessa UART.

Potresti usare dei 4016 (quadruplo switch) ad esempio.

Scusa l'ignoranza, ma 4016 a cosa si riferisce?

Perché non questo (http://www.ti.com/lit/ds/symlink/sn65lbc175a.pdf)? C'è anche in DIP package.

EDIT --> http://www.ebay.it/itm/SN75LBC175N-Circuito-integrato-ricevitore-di-linea-10Mbps-Q-ricev-4-5VDC-/290956292696?pt=Componenti_elettronici_attivi&hash=item43be58b258

EDIT2: =( E' solo ricevitore.

Grazie Paolo,
perchè non essendo ferratissimo in elettronica cercavo qualcosa di già pronto e non da progettare/fare. Il progetto è proprio agli inizi e non so ancora come andrà a finire e se prenderà piede, se poi un giorno ci sarà talmente tanta richiesta allora fare una scheda personalizzata potrebbe avere il suò perchè.

Il componente da me indicato non è indicato al tuo caso. (gioco di parole)
Purtroppo è solo ricevitore, quindi non puoi trasmettere.
Bisogna cercare un transrecevier multicanale.

EDIT:
Altrimenti si prendono x moduli come questo (http://www.robot-italy.com/it/sn75176bd-differential-bus-transceiver.html) e li saldi su una protoboard uno a fianco all'altro. Occupano più spazio ma avresti tutti i canali che vuoi.

e il componente CD4016 indicato da @cybers? Mi sembra una idea, ma come lo si collegherebbe?

E' uno switch.
Con quello e i modulini indicati da me puoi controllare 4 linee diverse con una sola seriale di Arduino.
Devi pero fare il polling costante di tutte e 4 le linee il più velocemente possibile.
Problema che hai anche con le SerialSoftware perché non sono collegate a interrupt.

La SoftwareSerial funziona sul bus RS485, puoi gestire più canali seriali insieme ma essa ha un limite: può gestire 1 solo canale in ricezione per volta.

Ciò significa che su un Atmega328 puoi usare solo 2 seriali in ricezioni, 1 hardware ed una software. Tutte le altre seriali software sarebbero "sorde" e no nriceverebbero i dati.

@leo72: accidenti dettaglio non da poco!!!

Quindi alla fine o mi costruisco qualcosa io oppure di cose già fatte mi sa che non c'è nulla, corretto?

In alternativa soluzioni in cui c'è un'altra scheda che posso pilotare con arduino e che comunica in seriale o in quelche altro modo, ne conoscete?

Sei stato un po' avaro di informazioni: lo RS485 lo usi in full duplex oppure il half duplex?

Nel primo caso hai bisogno per forza di più UART poiché hai bisogno per ogni canale di un buffer di ricezione.

Nel secondo caso usi Arduino come Master e gli altri dispositivi come Slave (connessione punto-multipunto) ed i questo caso la cosa è fattibile.

Magari qualche in più non avrebbe guastato :sweat_smile:

Il progetto che vorrei fare è il controllo di inverter per il fotovoltaico. Normalmente questi dispositivi da controllare sono tutti slave sulla stessa catena rs485 e l'arduino sarebbe il master. Capita a volte che alcuni inverter hanno protocolli (o anche velocità) di comunicazione diversi così gli slave non possono state sulla stessa catena e quindi per monitorarli tutti sarebbero necessarie due o più porte rs485 e l'arduino, che è sempre il master, ad intervalli regolari li interroga e ne recupera le informazioni.

Spero di aver espresso correttamente quello che ho in mente...

EDIT: La mia idea era di utilizzare un arduino ethernet così non dovevo utilizzare un'altro shield

Se ci sono anche più velocità, non puoi che optare per una MEGA

Dopo una notte di dubbi credo che utilizzerò netduino plus 2 con lo shield rs485 di arduino.
Netduio mi darebbe la possibilità di utilizzare la ethernet e la memoria sd senza altri shield e potrò sviluppare in c#.
In futuro spero che usciranno schede con più porte rs485 nello stesso shield e capirò come proseguire.

Grazie a tutti per il supporto