Newsgroup: it.hobby.elettronica.digitale
Titolo: Trasmissione dati via radio

Sto provando a trasmettere dei dati seriali a 300 baud tra 2 PIC16F84 via
radio. Sto usando un trasmettitore a 300 MHz come quello usato nei
telecomandi per apricancelli e un ricevitore ibrido Aurel a 300 Mhz.
Il sistema funziona, ma e' sensibile ai disturbi. Soprattutto quando il
trasmettitore non trasmette, il ricevitore capta comunque disturbi vari
sotto forma di brevi impulsi casuali che alcune volte vengono letti dal PIC
che mi da dei valori ovviamente errati
Come potrei filtrare il tutto? Ho provato qualcosa via software ma non
riesco ad ottenere piu' di tanto
Grazie
Ciao
Giuseppe

fai in modo che per aprire la comunicazione tra i pic uno debba inviare un
codice particolare e che l'altro lo attenda resettandosi ogni volta che
sente qualcosa di diverso

 ha scritto nel messaggio
news:cZUb7.321$1c2....@news.infostrada.it...


 ha scritto nel messaggio
news:cZUb7.321$1c2....@news.infostrada.it...

Ho tempo fà realizzato esattamente la stessa cosa utilizzando al posto dei
PIC degli ST6.
Anche i moduli sono quelli della AUREL sia a 300 che a 422 Mhz.
Tanto per cominciare controlla che sui moduli della Aurel và messa una
resistenza che regola lil rapporto segnale rumore (non mi ricordo niente di
più preciso...) poi l'uscita del modulo rx non poi collegarlo direttamente
al pin del mcu, ma dovresti collegarlo ad una resistenza di limitazione
corrente (1k và bene) la quale alimenta la base di un transistor npn di
segnale (un BC337 va bene) il quale con l'emettitore alla massa và collegato
al pin del mcu dal collettore (ricordati però di inserire fra il collettore
e il positivo una resistenza di pull-up 10k va bene) attenzione così facendo
lo stato alto del modulo corrisponde alla chiusura a massa del pin, quindi
lo intercetti quando il pin và basso.
Un'altro accorgimento consiste nel realizzare un protocollo di trasmissione
opportuneo, almeno devi inviare prima del dato vero e proprio un codice di
start o sincronizzazione.
Fra le innumerovoli prove da mè effettuate i migliori risultati si ottengono
inviando "170" che per la sua struttura a livelli di bit, è difficilmente
riproducibile casualmente, ed in più rispetta le stesse condizioni della
codifica manchester.
Subito dopo invia il byte e ancora dopo un bel codice crc. Il codice crc è
semplicissimo da costruire e da riconoscere, basta semplicemente fare la
somma algebrica dei primi 5 bit di ogni carattere inviato (in questo caso
solo 2 di cui uno fisso "170" codice di start + il dato a 8 bit da tè
inviato) e mandare il carattere corrispondente.
Sul rx leggi sempre in loop i dati in arrivo dal modulo, e compari il tutto
con 170, quando avrai vera questa condizione leggi tranquillamente i
rimanenti 2 caratteri (dato + crc ), a questo punto ricalcola sulla base dei
dati ricevuti il crc e lo confronti con quello che hai appena ricevuto, se i
due coincidono... bingo ha la assoluta certezza che quello che ha letto l'rx
è la giusta trasmissione dati (le possibbilità che interferenze e altro
riescano a ricomporre esattamente il codice di start + altri due byte che
algebricamente coincidono sono veramente pochissime se non nulle).

 ha scritto nel messaggio
news:c0ec7.75$JY1....@news.infostrada.it...


 ha scritto nel messaggio
news:c0ec7.75$JY1....@news.infostrada.it...


 ha scritto nel messaggio
news:Tafc7.563$JY1....@news.infostrada.it...
