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.
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.
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.
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.
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.
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
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.