Ciao a tutti, mi sono imbattuto in un problema riguardante i moduli tx rx a 433mhz... se volessi usare più di un tx rx con diversi arduino come dovrei codificare il codice di ogniuno affinché quando invio un segnale analogico lo riceva soltanto il ricevitore che dico io??? Cioè forse non mi sono spiegato...ho 3 arduino in una casa ogniuno con tx ed rx a 433mhz, invio una stringa di segnali (" 12,198.32,987,12.77 " )con un arduino e un'altra stringa di segnali con un altro arduino in modo tale che comunicano tra di loro... con un altro arduino con un ricevitore ricevo tutte e 2 le stringhe e va in tilt!!!!
Guarda qui
è un articolo in cui si parla anche della libreria VirtualWire, magari già sai tutto e non serve per il tuo caso, non lo so perchè non l'ho mai usata, ma è tutto ciò che conosco sull'argomento, scusami!
sbtndr:
Ciao a tutti,
Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:
- qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections
- qui le pinout delle varie schede by xxxPighi: Pinout
- qui una serie di link generali utili: Link Utili
Dipende molto dal tipo di architettura che vuoi implementare. Ad esempio un master che trasmette agli altri due slave che possono solo ricevere oppure tutti e tre possono parlare tra loro.
Nel primo caso devi implementare un protocollo di trasmissione piu' semplice che contenga il destinatario del messaggio. Ad esempio definito1 il trasmettitore e 2 e 3 i ricevitori, il messaggio deve avere un preambolo di start messaggio con un carattere che non sia usato nella stringa che vuoi trasmettere, poi inserisci il destinatario, poi la stringa che devi trasmettere, poi un controllo CRC e poi un fine messaggio. I ricevitori devono sincronizzarsi sul carattere start messaggio e se non arriva questo eliminano la ricezione e attendono quella successiva. Se viene ricevuto il carattere di start messaggio alloa ogni ricevitore controlla se e' lui il destinatario. Se cosi' e' allora continua a ricevere tutto il messaggio e alla fine esegue il calcolo del CRC per controllare che non ci siano dati corrotti. Questo e' un dialogo monodirezionale che impedisce al master di sapere se cio' che ha inviato e' stato ricevuto correttamente o no. Puoi implementare un colloquio bidirezionale dove ogni slave, ricevuto il messaggio invia un carattere di acknoledge al master per comunicargli la ricezione avvenuta con successo oppure un carattere di notacknoledge per dirgli che il messaggio e' arrivato corrotto e deve rispedirlo. Un ultimo consiglio. Se puoi utilizza una trasmissione FSK e non OOK in quanto la prima e' piu' immune ai disturbi.
Questo in sintesi. Spero di esserti stato utile.
Grazie mille per la risposta, ho capito in linea generale come fare però applicarlo in pratica mi viene un po difficile perché non ho molta confidenza con la virtualwire. Mi servirebbe qualche esempio di programmazione