Sonar su RS485

Ciao a tutti, provo nella sezione software, spero di essere più fortunato....

ho acquistato anch'io un sonar rs485pwr ed il trasduttore SN75176BP - Differential Bus Transceiver. Ora mi sto accingendo a predisporre i collegamenti secondo quanto indicato nel data-sheet. Questo primo problema è superato.

Il secondo problema arriva con la programmazione di arduino. Non ho esperienza di programmazione con RS485 e stò cercando di capire come "gestire" il protocollo di comunicazione.

Vi chiedo dove è possibile cercare documentazione che mi possa guidare nello sviluppo della programmazione.

Grazie

Mi spedisci il link dove hai comprato il sensore? Grazie Ciao Uwe

Non esiste un protocollo di comunicazione RS485, lo standard definisce solo il layer fisico, cioè la parte hardware, dal punto di vista di Arduino i dati viaggiano tramite UART, cioè la normale seriale. Unico accorgimento che devi adottare con il SN75176, e altri IC similari, è che richiede un segnale aggiuntivo per il controllo della direzione dato che la RS485 è half duplex (parla un solo device per volta), basta che colleghi i pin 2 e 3 del 75176 in parallelo e poi ad un pin, a tua scelta, di Arduino che devi tenere LOW per ricevere e HIGH quando vuoi trasmettere. Il protocollo software lo stabilisce il device, nel tuo caso il sonar SRF485PWR, devi fare riferimento al suo data sheet per i dettagli del protocollo di comunicazione.

uwefed: Mi spedisci il link dove hai comprato il sensore? Grazie Ciao Uwe

Presumibilmente ha preso questo

Questo è il data-sheet del sonar. Penso non ci siano problemi ad inserire link di rivenditori.

http://www.robot-italy.com/it/rs485-sonar-with-weatherproof-transducer-temp-compensat.html

A me interessa ricevere solo i dati misurati dal sonar e registrarli su una schedina SD.

astrobeed: Unico accorgimento che devi adottare con il SN75176, e altri IC similari, è che richiede un segnale aggiuntivo per il controllo della direzione dato che la RS485 è half duplex (parla un solo device per volta), basta che colleghi i pin 2 e 3 del 75176 in parallelo e poi ad un pin, a tua scelta, di Arduino che devi tenere LOW per ricevere e HIGH quando vuoi trasmettere.

Posso chiederti perchè indichi nello specifico i PIN 2 e 3?? C'è un motivo particolare? Nel mio caso dovendo solo ricevere posso by-passere il problema del terzo PIN?

Grazie

pioneer10: Posso chiederti perchè indichi nello specifico i PIN 2 e 3?? C'è un motivo particolare? Nel mio caso dovendo solo ricevere posso by-passere il problema del terzo PIN?

Se devi solo ricevere collega i pin 2 e 3 a GND, in questo caso non ti serve un ulteriore pin di Arduino e basta che colleghi solo Rx di Arduino al Tx del 75176.

Quindi, ricapitolando, riceverò il segnale sul RX di arduino secondo quanto ripotato nella datasheet del sonar. Mi dovrò creare una stringa nel software per "acquisire" i valori del sonar e poi gestire i dati, sempre a livello software, per poterli poi elaborare e salvare nella SD?

Scusatemi, ma sono ai miei primi esperimenti con arduino e purtroppo mi sono imbattuto su questo RS485. Grazie

Non vorrei creare confusione, ma anch'io sto cercando di risolvere dei problemi di comunicazione Arduino-dispositivo tramite Modbus485 ed alcune cose che per il momento mi sono chiare sono:

  • se usi il protocollo standard modbus devi inviare un pacchetto contenente: indirizzo dello slave, funzione, indirizzo start, n°registri da leggere, CRC
  • se non interroghi il dispositivo "slave" lui non invia dati

http://www.simplymodbus.ca/FAQ.htm

per cui devi per forza usare il terzo pin.

Fin qui la teoria. :P Io stò cercando di utilizzare delle librerie già esistenti per effettuare la supervisione ma ancora non ho raggiunto il risultato, quindi più di tanto non posso esserti d'aiuto. :blush:

PS: se dovessi aver scritto delle inesattezze, ogni correzione sarà ben accetta!