FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc
comunicazione seriale tra 2 arduino
Autore
Messaggio
opzioni
daniele1979
postato il: 07.11.2022, alle ore 19:34
comunicazione seriale tra 2 arduino
buona sera a tutti volevo fare comunicare 2 arduini con la seriale tramite il suo modulo rs485.
in una direzione sono riuscito a farlo comunicare.
per avere anche la comunicazione ne senso inverso , oltre alla scruct da mettere non so come fare ho avuto qualche idea ma non funzionanti in quanto andavano a altreare il dato che prima veniva letto correttamente.
Se vuoi fare una comunicazione seriale tra 2 moduli (PIC) devi prima decidere se è un Master-Slave o Bidirezionale.
Nel primo caso, uno interroga l'altro e si fa mandare i dati (si può fare in polling).
Nel secondo caso, quando entrambi possono interrogare l'altro, devi usare la gestione della seriale ad interrupt e creare un buffer.
Conoscendo il protocollo (Start e End della stringa), puoi verificare in polling quando una stringa è stata ricevuta e poi rispondere. Questo per entrambi i moduli.
Scusate, passavo di qua\'...
L'unica rivoluzione possibile
è quella di migliorare se stessi.
diegobincoletto
postato il: 11.11.2022, alle ore 12:32
Dimenticavo, devi anche decidere se i dati vengono trasmessi i binario o ASCII, questo è rilevante nella gestione del protocollo.
Scusate, passavo di qua\'...
L'unica rivoluzione possibile
è quella di migliorare se stessi.
daniele1979
postato il: 11.11.2022, alle ore 16:45
grazie della risposta,allora ho trovaro qualcosa in rete e ho cercato di adattarlo al mio uso
funziona mezzo e mezzo , ogni tanto di impalla piu voltentieri quello con l lcd
il file supporto. h va su entrambi
tx
rx
diegobincoletto
postato il: 13.11.2022, alle ore 09:19
Ti stai solo complicando la vita, con scarsi risultati.
L'unico modo per avere una comunicazione sicura è fare la ricezione ad interrupt.
La trasmissione la puoi fare con un timer o usando una funzione 'pronta' del compilatore.
Scusate, passavo di qua\'...
L'unica rivoluzione possibile
è quella di migliorare se stessi.
daniele1979
postato il: 13.11.2022, alle ore 14:38
ciao ggrazie della tua risposta,mai sentito il funzionaento come dici te ,
anche perche ' non sono un pozzo di scienza
dimenticavo la comunicazione e bidirezionale
mi potresti dare qualche esempio?
ho cercato ma ho solo trovato argomenti per lo sleep collegato agli interrupt
diegobincoletto
postato il: 22.11.2022, alle ore 16:45
Tutti i microcontrollori hanno varie periferiche, tra cui almeno una chiamata UART, USART, ecc. che serve per la comunicazione seriale.
Nel caso della ricezione, questa periferica è in grado di capire quando è arrivato un carattere e può mandare un 'segnale' (interrupt) al processore se questa funzione è abilitata.
Pertanto devi fare questo nel codice :
1) configurare la periferica di comunicazione (settare i relativi registri)
2) abilitare l'interrupt relativo alla ricezione di un carattere
3) scrivere una funzione di gestione degli interrupt che provveda a creare un buffer di caratteri ricevuti
4) nel codice principale (Main) devi gestire il buffer e stabilire quando una stringa completa è stata ricevuta (protocollo)
Scusate, passavo di qua\'...
L'unica rivoluzione possibile
è quella di migliorare se stessi.
diegobincoletto
postato il: 22.11.2022, alle ore 16:55
daniele1979: non sono un pozzo di scienza
Quì non si tratta di essere scienziati!
Basta solo metterci un po' d'impegno e studiare i fondamenti delle tecniche che si vuole applicare.
Purtroppo oggi, grazie anche all'ArduCoso, la gente pensa che sia tutto semplice e pronto, e che non serva studiare e capire quello che si fa!
Questa è una grande distorsione che porta un grave danno in generale alla società , si perde il know-how e la capacità di risolvere i problemi.
Se non si trova una soluzione entro le 'librerie pronte' la gente è spaesata e senza gli strumenti per analizzare e risolvere i problemi.
Tanto meno è disposta a dedicare del tempo per imparare.
Scusate, passavo di qua\'...
L'unica rivoluzione possibile
è quella di migliorare se stessi.
Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito