Usiamo il sensore di direzione del vento
dell’anemometro DeAgostini - Il Meteo
clicca per ingrandire
Introduzione
Le banderuole che indicano la direzione del vento mi hanno sempre affascinato. L’uomo
si è sbizzarrito nel crearne in tutte le forme: simboli propiziatori oppure religiosi
quali galli ed agnelli, oche e cavalli, arcangeli e sangiorgi che uccidono draghi, demoni
e streghe. Recentemente si vedono sui tetti orsetti panda, caravelle, motociclette ed altro
ancora. Con la tecnologia è arrivata l’elettronica e non è stato più necessario guardare
in alto per cercare una banderuola: ora da dove soffia il vento lo si legge su un comodo
display.
Descrivo come utilizzare il sensore di direzione del vento usato nell’anemometro
DeAgostini “Meteo - costruisci la tua stazione meteorologica” e come costruire un
prototipo di circuito che visualizzi la direzione del vento su un display.
Premessa
Un paio di anni fa, a settembre del 2008, uscì il primo numero dell’opera “Meteo costruisci la tua stazione meteorologica” edito dalla DeAgostini, con allegate le palette
rotanti e il timone di direzione del vento dell’anemometro.
clicca per ingrandire
Il prezzo era di soli 3 euro e l’ho acquistato sperando in un breve arrivo degli altri
componenti. L’anemometro era composto da un sensore (uscite 1 e 61), da un modulo
interfaccia e trasmettitore a 433 MHz, da un modulo ricevitore e display da inserire in
una base madre e da minuterie quali tubi, viti, anelli e simili. (uscite 45, 46, 47, 49).
A me interessava il solo sensore dell’anemometro, ho dunque atteso “un sole e sei lune”
e a marzo di quest’anno ho ordinato il nr.61; l’edicolante me l’ha consegnato a luglio
con l’altra metà del sensore.
Cosa c’è dentro il sensore?
Il sensore ha una flangia per il tubo di sostegno da 16mm; dal lato superiore esce il perno
per il timone che misura la direzione del vento e dal lato inferiore esce il perno per le
palette che misurano la velocità del vento. Sette fili colorati (terminati su un
microconnettore che ho rimosso) escono dal sensore e c’è un piccolo magnete su un
braccio delle palette per la misura della velocità del vento. Se posso io evito di aprire
oggetti chiusi ad incastro ma con un po’ di intuito e molta fortuna spesso si riesce a
capire cosa c’è dentro. Seguiamo un percorso deduttivo.
clicca per ingrandire
Se fuori c’è un magnete, dentro c’è un’ampolla reed o un sensore hall. Armato di tester
ICE 680G predisposto per ohmmetro con fondo scala 100 ohm (così dai puntali escono
600 uA e non si rovina quasi nessun componente), ho testato le combinazioni dei fili e
trovato un contatto reed.
clicca per ingrandire
Continuando a cercare invertendo i puntali ho trovato un diodo. Ho messo una
resistenza da 1K in serie ad una pila da 4.5 Volt ed ho misurato una tensione sul diodo di
1,2 Volt: è un led. E siamo a tre fili su sette: quello in comune è con buona probabilità
la massa.
Se c’è un led, ci sono fotodiodi o fototransistor o fotoresistenze. Ho scommesso sui
primi ed ho collegato il tester, configurato a microamperometro con fondo scala 50 uA,
fra il “filo comune” ed uno dei quattro fili restanti; ho acceso il led ed ho ruotato il
timone di direzione del vento. In una posizione ho misurato 40 uA che scendevano a 25
uA spostando il timone di +/- 45 gradi e poi a zero spostandolo di +/- 90 gradi. Stessi
risultati per gli altri tre fili: bingo, ci sono quattro fotodiodi.
Riporto le connessioni trovate rispettando l’ordine del cavetto multifilare colorato: I
nomi delle direzioni li ho assegnati ipotizzando per comodità che la flangia rappresenti il
Nord e verificando quale fotodiodo eroga corrente quando il timone di direzione del
vento punta verso le varie direzioni "rispetto alla flangia".
Ovviamente il sensore è un goniometro (che misura una direzione relativa) e non una
bussola (che misura una direzione assoluta) quindi le direzioni assegnate ai quattro
fotodiodi sono del tutto arbitrarie. Nulla cambierebbe se le ruotassimo “tutte” di un
qualunque angolo, basta solo non alterare la loro sequenza, sarà poi il programma di
elaborazione che provvederà alla taratura, allineando il valore letto ad una direzione
nota.
Due sensori in un contenitore
Il sensore in basso misura la velocità del vento:
Ad ogni giro delle palette il magnete chiude il contatto dell’ampolla reed per circa un
quarto di giro. Misurando la frequenza degli impulsi, o il loro periodo, si risale alla
velocità del vento. E’ stato già fatto, quindi non aggiungerei nulla alla conoscenza
comune. Invito a leggere l’articolo di
Ciuppy http://www.grix.it/viewer.php?page=6189 : un NE555 pilotato da un
fotoaccoppiatore rigenera gli impulsi che sono poi elaborati da un PIC: la medesima
interfaccia può essere pilotata dal contatto reed del nostro sensore. L’articolo citato
descrive chiaramente anche la relazione fra velocità del vento, dimensione dei bracci
delle palette e frequenza degli impulsi. Nel nostro caso, avendo un solo impulso per giro,
la frequenza varia da circa 1 a 8 Hz per velocità del vento fra 10 e 50 Km/h: la
risoluzione è bassa, quindi è meglio misurare il periodo in msec. In alternativa si può
allungare il tempo di lettura.
Il sensore in alto misura la direzione del vento
In meteorologia si usa il verso “negativo” della direzione del vento che genera una
spinta sulla "coda" del timone: la "punta" si posiziona verso la direzione da cui il vento
spira.
All'interno quasi sicuramente il led è fisso, così non ci sono contatti striscianti sempre
critici, ed una maschera con aperture calibrate è solidale con l’asse del timone: in
funzione della sua posizione ricevono la luce dal led solo uno o due dei quattro fotodiodi
disposti a 90 gradi. I fotodiodi generano correnti proporzionali all’illuminazione
ricevuta ed elaborandole si risale alla posizione angolare del timone.
Il sensore dell’indicatore di direzione del vento
Ho misurato la corrente generata dai fotodiodi in funzione della illuminazione variando
con un potenziometro la corrente di alimentazione del led. Conoscere tale relazione
serve per dimensionare il circuito di misura.
La curva “fotovoltaico” mostra i valori letti sul fotodiodo “in cortocircuito” cioè
collegandolo direttamente al microamperometro, la curva “fotoconduttivo” mostra
i valori letti in uscita dal diodo polarizzato inversamente con 4,5 Volt; i valori
esposti sono quelli relativi alla posizione del timone che produce la massima corrente.
Per i dettagli sulle due modalità di funzionamento dei fotodiodi leggete l'appendice 1.
Nel sensore in mio possesso tre fotodiodi hanno caratteristiche simili ed il quarto (filo
rosso) ha una corrente di uscita inferiore del 15% rispetto agli altri tre: non so se ciò sia
dovuto alle tolleranze dei componenti oppure al degrado del fotodiodo per le mie
vessazioni durante le prove oppure se sia una precisa volontà dal costruttore per
semplificare il calcolo della direzione.
Per conoscere l’andamento della corrente generata dai fotodiodi in funzione della
posizione angolare del timone di direzione ho collegato l’asse del timone ad un
minitrapano Proxxon sottoalimentato a 3 Volt per ridurne la velocità al minimo e non
distruggere il sensore che non è stato certo progettato per ruotare velocemente. A circa 5
giri al secondo si produce un segnale periodico visualizzabile su un oscilloscopio con la
base dei tempi impostata a 20 msec/div, una rotazione più lenta crea problemi alla
persistenza dell’immagine completa sullo schermo.
Per visualizzare il segnale ho convertito la corrente in tensione ed ho usato la
configurazione fotoconduttiva polarizzando inversamente i fotodiodi. Il filo comune
collega i catodi del led e dei fotodiodi quindi per alimentare il led serve una ulteriore
tensione positiva; il led è alimentato a 6 Volt e assorbe circa 4 mA.
Il diodo è polarizzato inversamente con 6 Volt e quando è illuminato genera una
corrente che produce una caduta di tensione sulla resistenza: Vout= Ifd x R:
la Ifd è di circa 70 uA e se R=39K abbiamo Vout ~ 2,8 Volt
Colleghiamo l’oscilloscopio alla resistenza: il megaohm di resistenza di ingresso
dell’oscilloscopio è un carico accettabile.
La prima foto è presa dall’oscilloscopio, la seconda è una elaborazione grafica con la
sovrapposizione di una griglia orizzontale di 10 divisioni “per periodo” per ricavare gli
angoli di illuminazione: abbiamo 36 gradi per divisione.
x.
Ipotizziamo che il fotodiodo in esame sia quello del Nord.
Ci sono quattro livelli di uscita, la differenza fra i due valori intermedi a +/- 54 gradi di
rotazione rispetto al “massimo” dovrebbe essere dovuta alla geometria della maschera,
così come l’ondulazione sul livello massimo. Potrebbe anche essere una precisa volontà
dal costruttore per semplificare il calcolo della direzione.
Consideriamo “molto simili ~ quasi uguali” i due valori intermedi e chiamiamoli “
livello medio”: partendo dal valore massimo e ruotando in senso orario si ha:
0 - 36 gradi (N)
livello massimo (illuminazione diretta)
36 - 72 gradi (NNE- NE-ENE) livello medio (illuminazione laterale)
72 - 180 gradi (oltre ENE)
livello minimo (buio)
Lo stesso risultato si ha simmetricamente in senso antiorario.
Gli altri tre fotodiodi (Est, Sud ed Ovest) hanno le uscite sfasate rispettivamente di 90,
180 e 270 gradi rispetto a quella del fotodiodo Nord.
Come risalire alla direzione del vento
Allineando i quattro segnali di uscita in un unico diagramma si ottengono 20 settori
circolari di 18 gradi ciascuno: mettiamo in relazione i livelli di ciascuna uscita con la
direzione del timone. Con l'ipotesi di considerare "quasi uguali i due livelli
intermedi" abbiamo approssimato il segnale vero con un segnale a tre soli livelli:
consideriamo pari a zero il livello minimo e chiamiamo:
Na, Nb
Ea, Eb
Sa, Sb
Wa, Wb
i livelli max e medio del fotodiodo Nord
i livelli max e medio del fotodiodo Est
i livelli max e medio del fotodiodo Sud
i livelli max e medio del fotodiodo Ovest
Per le direzioni Nord, Est, Sud ed Ovest abbiamo l’uscita di un solo fotodiodo al livello
massimo, per le altre 12 direzioni intermedie le uscite di due fotodiodi sono presenti in
varie combinazioni di livelli massimi e medi.
clicca per ingrandire
il riferimento “zero” per i gradi è quello di massima corrente per il fotodiodo Nord.
La cattiva notizia è che i settori Nord, Est, Sud ed Ovest hanno una ampiezza di 36 gradi
mentre per le altre 12 direzioni l’ampiezza è di 18 gradi. Il nostro sensore non è lineare
perché i settori circolari non sono tutti di 22,5 gradi: occorre accontentarsi.
La buona notizia è la presenza di una mappatura univoca della direzione del vento in
funzione delle uscite dei fotodiodi. Leggendo i valori di corrente (eventualmente
convertiti in tensione) in uscita dai fotodiodi e applicando la mappa sopra riportata si
risale univocamente ad uno dei sedici settori di direzione. Si può lavorare in analogico
con quattro uscite a tre livelli oppure passare in digitale con otto uscite a due livelli.
Veramente comodo e semplice da gestire.
Per finire consideriamo che la rosa dei venti universalmente conosciuta mostra solo otto
venti e quindi le loro direzioni hanno una risoluzione di 45 gradi. La risoluzione del
sensore è di 18/36 gradi: i valori forniti sono più che adeguati per individuare quale degli
otto venti stia soffiando.
clicca per ingrandire
Il circuito di test
Giunti a questo punto ci si potrebbe anche fermare avendo raggiunto lo scopo previsto
che era quello di capire quali segnali mettesse a disposizione il nostro sensore.
Un vecchio adagio dice: "se non lo provi non saprai mai se funziona davvero" e
quindi ho allestito un circuito di test. Ho scartato un circuito a componenti discreti
perché occorre trasformare i segnali con tre livelli di tensione in binario (servono 4
comparatori a finestra con due operazionali ciascuno), poi occorre realizzare sedici porte
“and” a più ingressi con vari "not" ausiliari per accendere 16 led. Se vogliamo il dato su
un display numerico servono un encoder 16/4 e un paio di decoder a 7 segmenti.
Questo è uno dei classici casi in cui un PIC è davvero la soluzione ottimale.
Il circuito di interfaccia
Per realizzare velocemente il circuito di test ho usato un Basic Stamp 2 della Parallax.
Avevo in casa la board DeA del Robot DeAgostini che monta un PIC 16C57C
programmato da Parallax con l’interprete PBASIC ed una EEPROM 24LC16B da 2KB
per memorizzare i programmi. Fornisce 16 pin per I/O, una RAM con 24 variabili word
(splittabili in byte, nibble e bit) e un display-debug su PC via RS232 integrata: il tutto
consuma circa 30 mA a 6Volt. Anche se il BS2 è ormai obsoleto continuo ad usarlo
spesso per i circuiti di prova grazie alle istruzioni di alto livello disponibili nell’ambiente
di sviluppo gratuito del PBASIC 2.5. Usando altre versioni del Basic Stamp (1, 2e ,2sx,
2p, 2pe, 2px, ecc) occorre modificare le costanti delle temporizzazioni usate nei
programmi: sul manuale Parallax c’è davvero tutto. La board Dea ha un pulsante, una
bread board con 17+17 contatti, un connettore da 10+10 pin con tutti i pin di I/O e molti
connettori per i motori ed i sensori: il suo scopo era governare il mitico robot DeA
"panettone".
Il BS2 DeA richiede una alimentazione da 6 Volt a massimo 7,5 Volt, monta un
regolatore LM2940 che fornisce i 5 Volt necessari ed ha uno zener da 8.2 Volt in
parallelo alla alimentazione: se si inverte l'alimentazione o se si superano gli 8.5 Volt il
fusibile salta. Se non c'è il fusibile salta lo zener, un po' brutale ma efficace: era previsto
che il robot fosse assemblato da numerosi appassionati ma non tutti espertissimi di
elettronica!
Il mio circuito di test è alimentato a 12 Volt: ho aggiunto un 7805 "volante" con due
diodi per avere circa 6,3 Volt in uscita verso il BS2 (in alto a sinistra nella foto). Per
alimentare il led del sensore ho sfruttato la caduta di tensione sul 7805, visto che
il catodo del led è collegato anche ai catodi dei fotodiodi connessi ai +6.3 Volt per la
polarizzazione inversa. Con una resistenza da 1K il led assorbe circa 5 mA e genera una
corrente massima nei fotodiodi di circa 100uA: giusto quel che si serve. Nella foto il filo
rosso "volante" è quello che alimenta il led.
clicca per ingrandire
Se si usa la board DeA va ricordato che il pulsante S1 connesso a massa e la relativa
resistenza da 1K connessa al Vdd +5V sono già integrati sulla scheda.
La misura della direzione del vento
Occorre misurare le correnti generate dai quattro fotodiodi. Il BS2 gestisce la
conversione A/D con l’istruzione RCTIME che misura il tempo di carica o di scarica di
un condensatore alimentato dalla tensione o dalla corrente da misurare. In Appendice 2
ci sono tutti i dettagli su come funziona la conversione A/D del BS2.
Usiamo 4 pin del BS2 per misurare sequenzialmente le correnti dei fotodiodi e
memorizziamo il reciproco dei valori letti in quattro variabili: il tempo di carica dei
condensatori è inversamente proporzionale alla corrente di carica.
Con dei test “a finestra” ricaviamo i tre livelli di uscita. Le soglie di
misura vanno regolate in base ai valori usati. Per C=0.22uF, I(led)=5 mA, I(fd)max=100
uA il tempo di carica è di circa 2.8 msec, il risultato di RCTIME è di circa <1500>, il
reciproco 65535/RES è di circa <45>. Le soglie sono poste al 10% ed all’80% del
valore massimo.
VMIN CON 5
VMAX CON 35
' soglia inferiore : stabilisce il livello MINIMO
' soglia superiore : stabilisce il livello MASSIMO
Con ulteriori test di tipo “and” arriviamo ad un valore della variabile DIREZ che
“mappa” i 16 settori circolari. Il risultato, convertito in diciture alfabetiche, è inviato ad
un display LCD a due righe in modalità 4 bit.
Il BS2 esegue 4 letture sequenziali: con tre fotodiodi al buio avremo tre misure lunghe
130 msec, aggiungendo la misura del quarto fotodiodo illuminato si arriva a mezzo
secondo, un tempo adeguato per considerarle “contemporanee” vista la lentezza del
cambio di direzione del vento.
L’allineamento del timone
Come detto all'inizio il sensore è un goniomentro e non una bussola: occorre definire
quale sia il Nord.
La modalità usata dalla stazione meteo DeA prevede che ogni volta che il sensore viene
riposizionato, occorre spegnere il modulo sensore-trasmettitore, allineare il timone di
direzione con la punta verso Nord, riaccendere il modulo ed effettuarne la ricerca dalla
stazione base: questo perchè il programma di gestione assume come Nord la posizione
del timone all'accensione. Questa è una limitazione imposta del programma di gestione e
non dal sensore: è possibile effettuare l'allineamento usando una qualunque
direzione senza la necessità di spegnerlo.
Per allineare il timone del vento alla direzione reale dobbiamo “ruotare” la mappa
interna. Poiché la variabile DIREZ assume valori fra 0 e 15 in funzione della posizione
del timone del vento, per ruotare la mappa basta sommare la variabile ROTAZIONE,
con valori fra 0 e 15, e poi calcolare il resto della divisione per 16 (funzione modulo N).
Pigiando il pulsante S1 e collegato al pin 2, si incrementa il valore di ROTAZIONE (il
valore iniziale è 0) ruotando così la mappa di una direzione alla volta. Il valore corrente
della variabile ROTAZIONE è poi memorizzato nella EEPROM e quindi non si perde
allo spegnimento;tale valore è anche mostrato sul display in basso a destra in formato
esadecimale (0-F).
Per allineare il sensore si posiziona il timone del vento verso una “direzione nota” e si
pigia il pulsante S1 finché sul display non appare la stessa direzione. La procedura va
ripetuta ogni volta che si sposta il sensore.
Per individuare con buona precisione una “direzione nota” occorre una bussola da
rilevamento, di quelle con lo specchio, e il quadrante rotante e possibilmente la
sospensione dell'ago magnetico in olio.
Si ruota il quadrante allineando la direzione cercata alla tacca di puntamento, si porta la
bussola all'altezza degli occhi e ci si gira su se stessi finché l’ago magnetico, visto
riflesso sullo specchio, si allinea al Nord del quadrante; adesso guardando attraverso il
foro presente alla base dello specchio si cerca un oggetto o un particolare distante
almeno un centinaio di metri. Quel punto individua la direzione cercata: è più facile da
fare che da spiegare!
La bussola presente sul timone di direzione si puo' usare solo come ripiego: l'ago
magnetico, oltre a muoversi ad ogni minima vibrazione, è influenzato dal magnete posto
sul braccio della paletta che lo fa spostare di quasi 20 gradi.
Se siete pigri allora direzionate la flangia a Nord usando la bussola integrata sul timone,
verificate che l'ultimo carattere del display sia <0> e non pigiate mai il pulsante S1.
L'assemblaggio
Per sostenere il sensore ho utilizzato un paio di spezzoni di tubi in pvc da 16 mm per
impianti elettrici con giunti e curve: il tutto è fissato su una base ricavata da un tubo pvc
da 50 mm per scarichi idraulici. Il cavo multifili entra perfettamente all'interno dei tubi
e il connettore strip line da 4+4 pin consente un agevole smontaggio del sensore in caso
di necessità.
clicca per ingrandire
Il prototipo: a sinistra la board DeA, al centro il display lcd, a destra il sensore sul
supporto:
clicca per ingrandire
Sulla prima riga del display : la direzione del vento. Sulla seconda riga: il mio nick e,
all'ultima posizione, lo stato della variabile ROTAZIONE in esadecimale, il valore
corrente è <B> = 11.
Il prototipo finalmente esposto al vento, il posizionamento non è a norma WMO, ma
funziona!
clicca per ingrandire
Il listato in Pbasic 2.5 Parallax.
Il codice è un file testo con estensione ".bs2" : va importato nell'Editor Basic Stamp
fornito gratuitamente da Parallax: l'ultima versione è la 2.5. Si dà il comando Run e il
codice viene precompilato e scaricato nella EEPROM della board BS2 attraverso la
connessione seriale del PC. Il codice gira su qualunque Board BS2, ricordate
che nella versione DeA il pulsante S1 (e la relativa resistenza) è già presente ed è
connesso al pin 2.
http://adamatj.altervista.org/_altervista_ht/art04/sensore_vento_dea.bs2
Prima ci sono le direttive di compilazione, poi la dichiarazione delle variabili, delle
costanti e dei pin, poi ancora la fase di inizializzazione ed infine il programma che
richiama ciclicamente 4 routine. L'ultima routine "disegna" serve solo per la messa a
punto e visualizza sullo schermo del PC alcune variabili e in modo grafico le correnti
dei fotodiodi.
(Direttive)
(Dichiarazioni)
(Inizializzazione)
DO
GOSUB misura
GOSUB mappa
GOSUB ruota
GOSUB scrivi
'GOSUB disegna
grafico su PC
LOOP
'
'
'
'
'
legge i 4 fotodiodi
ricava la mappatura in DIREZ
cambia la rotazione della mappa
scrive su display lcd
serve solo per i test: fa il debug
(Subroutine)
Il codice precompilato occupa circa 1,5 dei 2 Kb disponibili: se si elimina la routine
"disegna" si risparmia mezzo Kb. Le routine di gestione del display lcd le ho prese dalla
documentazione Parallax, le altre le ho scritte io. Il listato completo e commentato è nel
link: siate comprensivi, è davvero pessimo ma lo scopo era quello di verificare la
fattibilità della misura di direzione.
Sviluppi futuri
Il prototipo serve solo come studio di fattibilità per verificare che le ipotesi sul
funzionamento del sensore siano corrette. Per un circuito definitivo è certamente
opportuno usare un PIC di recente generazione che consenta una gestione ottimale delle
potenzialità del sensore elaborandone sia i segnali di direzione che quelli di velocità del
vento.
Per le norme WMO un anemometro /indicatore del vento deve essere montato su un
palo ad almeno 3 metri sopra eventuali ostacoli e con 10 metri di spazio libero intorno:
occorre quindi “trasportare” il segnale per almeno 50 metri per farlo arrivare al display
di stazione. Su queste distanze i collegamenti radio non sono affidabili sulle bande
condivise da migliaia di telecomandi e sensori remoti inoltre si pone anche la necessità
di cambiare periodicamente la pila in cima al palo. In pratica occorre:
- telealimentare il sensore
- generare uno o due segnali analogici a 4-20 mA o uno digitale a 20 mA (i segnali in
tensione non superano i 5 metri)
- inviare i segnali lungo un comune cavo da esterno con 3/4 conduttori.
- leggere il segnale in corrente
- elaborare il segnale
- ecc ecc
C’è davvero da divertirsi ….
La lista dei componenti del circuito di test
1 sensore anemometro DeAgostini Meteo, uscite 1 e 61
4 condensatori da 0.22uF 60 V
1 resistenza 1K 1/4 W
2 diodi 1N4001
2 consensatori elettrolitici 100 uF 25V
2 condensatori 100 nF 60 V
1 regolatore LM7805
1 resistenza 1K 1/4 W (non serve se si usa la board BS2 DeA)
1 pulsante (non serve se non si usa la board BS2 DeA)
1 connettore per alimentazione maschio da 5.5 mm
1 connettore per alimentazione femmina da 5.5 mm
1 connettore strip line 4+4 pin maschio/femmina
1 board Basic Stamp 2
1 display lcd 2 righe 16 caratteri
Il costo dei componenti
il sensore Dea 3+10 euro
la board BS2
OEM 40 euro (in kit) - chip Parallax 49$
il display lcd 10 euro
i componenti vari 7 euro
La reperibilità del sensore
Il sensore è reperibile presso la DeAgostini richiedendo, anche in edicola, i numeri
arretrati nr. 1 e 61 (Codice Opera = 5447): ci vuole molta pazienza per la spedizione.
Cercando in rete ho letto che il sensore DeAgostini, e probabilmente tutta la stazione
meteo, è lo stesso della stazione meteo venduta tempo fa dalla Lidl, nota catena di
supermercati, nonché della stazione meteo Ventus W155: guardando le foto la
somiglianza è davvero evidente.
Un po’ di documentazione
Un anemometro digitale http://www.grix.it/viewer.php?page=6189
Deagostini - Meteo
http://www.meteo.it/DeAgostini/Default.aspx
Deagostini il sensore 1
http://images.meteo.it/Pdf/10361.pdf
Deagostini Il sensore 61 http://images.meteo.it/Pdf/11273.pdf
National: fotodiodi
http://www.national.com/onlineseminar/2004/photodiode/PhotodiodeAmplifers.pdf
Celle fotovoltaiche
http://www.padova.infm.it/torzo/fotocella.pdf
Fotodiodi
http://www.ifac.cnr.it/~brenci/materiale_didattico/12-fotodiodi.pdf
Basic Stamp 2
http://www.parallax.com/tabid/295/Default.aspx
Basic Stamp 2
http://www.parallax.com/dl/docs/article/IlBASICStamp2.pdf
Basic Stamp Editor
http://www.parallax.com/tabid/441/Default.aspx
Basic Stamp Doc
http://www.parallax.com/tabid/440/Default.aspx
Le routine LCD
http://www.parallax.com/dl/docs/prod/audiovis/lcd2x16par.pdf
Appendice 1: brevi note sui fotodiodi
Un fotodiodo è un diodo con particolari drogaggi della giunzione: va sempre usato con
la giunzione interdetta e genera una corrente in uscita quando è illuminato. La massima
tensione di polarizzazione inversa varia in funzione del modello usato così come la
sensibilità alle varie lunghezze d'onda della luce incidente.
Il circuito equivalente corrisponde ad un diodo con in parallelo un condensatore di
svariati picofarad (la capacità della giunzione interdetta), una resistenza di molte decine
di megaohm (la corrente di buio) e un generatore di corrente (la corrente generata). La
simbologia che ho usato è quella della documentazione National.
Questa è la caratteristica I-V di un fotodiodo: nel primo quadrante è un “diodo vulgaris”
anche se non proprio progettato per funzionare in tale zona.
(Nel grafico la corrente “negativa” è intesa IN USCITA dal fotodiodo che la genera)
Nel terzo e quarto quadrante la caratteristica varia in funzione dell’illuminazione ma
soprattutto il diodo “eroga corrente”, per chi desidera sapere “perché e come” lo faccia ci
sono dei link di approfondimento.
Ci sono due modi diversi di impiego: i cinque circuiti presentati, anche se disegnati in
modo semplificato, non sono teorici, li ho usati tutti in varie occasioni.
Modalità fotoconduttiva, terzo quadrante:
il diodo è polarizzato inversamente e genera una corrente proporzionale alla
illuminazione ricevuta. Per utilizzare tale segnale occorre un amplificatore operazionale:
-
Il diodo è polarizzato inversamente perché l’ingresso invertente dell’operazionale è a
massa virtuale. I due circuiti sono simili ma quello di destra necessita di
alimentazione duale. Se l’illuminazione produce una corrente di 5 uA allora in uscita
abbiamo una tensione di 0,5 Volt di segno opposto a quello della corrente in ingresso.
In molti casi è possibile usare una configurazione più semplice con una sola resistenza.
Con questo circuito occorre avere accortezza nel dimensionare il carico applicato sulla
resistenza di caduta.
Modalità fotovoltaica, quarto quadrante:
il diodo è polarizzato a zero volt (zero bias) ed eroga corrente verso l’esterno
proporzionalmente all’illuminazione ricevuta. E' la modalità di funzionamento dei
pannelli solari.
Per convertire la corrente generata in una tensione occorre usare un operazionale:
gli ingressi invertenti sono a massa virtuale e quindi il diodo è in stato “zero bias”.
Nella figura a sinistra il diodo ha l’anodo a massa perché deve fornire una
corrente negativa:
in uscita abbiamo Vout = - (-i) x R = i x R
L’operazionale può essere alimentato a tensione singola (LM324- LM358).
Nella figura a destra il diodo ha il catodo a massa e fornisce una corrente positiva:
in uscita abbiamo Vout= - i x R
L’operazionale deve essere alimentato a tensione duale (TL082/84).
Se l’illuminazione produce una corrente di 15 uA con una resistenza da 100K troveremo
in uscita una tensione di 1,5 Volt “con segno opposto”
Che differenza c’è fra le due modalità?
In modalità fotoconduttiva il diodo è più veloce nella risposta alle variazioni di
illuminazione e ha una risposta più lineare ma genera rumore dovuto alla corrente di
buio.
In modalità fotovoltaica il diodo ha una risposta più lenta ma non genera rumore essendo
assente la corrente di buio.
Come consiglia la National si usa la prima modalità se la velocità è più importante della
precisione, la seconda se vale il contrario.
Va ricordato che il diodo è polarizzato inversamente e si comporta come un
condensatore di bassa capacità (come un diodo varicap), quindi spesso il circuito in cui è
inserito diventa un oscillatore e quando si cerca di compensarlo diventa anche un
integratore mandando allegramente a passeggio la tensione di uscita. Nella
documentazione c’è una gustosa serie di slides della National in merito. La National
stessa mette i progettisti in guardia su tali componenti: li definisce “tricky” (complicati)
ed avverte che necessitano di un sacco di lavoro per un corretto impiego. Se lo dicono
loro che debbono venderli!
Appendice 2: la conversione A/D del BS2
Il BS2 fornisce l’istruzione “RCTIME pin, stato, risultato” che consente di misurare il
tempo di carica o quello di scarica di un condensatore con una risoluzione di 2 usec ed
un limite di 131 msec.
Nella modalità "scarica" (RCTIME pin,1,risultato) si misura il tempo in cui la tensione
ai capi del condensatore già carico scende da 5 Volt a circa 1,3 Volt: t= RC x ln (5.0
/1.3). Questa è la modalità consigliata da Parallax perchè offre una maggiore risoluzione
della misura essendo piu' ampia l'escursione della tensione sul condensatore.
misura con 15
misura
risultato VAR Word
risultato
HIGH misura
PAUSE 1
RCTIME misura,1,risultato
fino a circa 1,3 Volt
DEBUG ? DEC risultato
‘ dichiarazione pin15 per la
‘ dichiarazione variabile
‘ carica del condensatore
‘ per 1 ms
‘ misura del tempo di scarica
‘ display sul PC
Nella modalità "carica" (RCTIME pin,0,risultato) si misura il tempo in cui la tensione
ai capi del condensatore scarico sale da 0 Volt a circa 1,3 Vol: t= RC x ln [ ( 5.0 / (5.01.3) ].
Usiamo tale modalità perchè possiamo caricare il condensatore fino a 1,3 Volt con la
corrente generata dal fotodiodo. La carica è quindi a "corrente costante" e non a
"tensione costante".
E' possibile omettere le resistenze di protezione da 220 ohm perchè non usiamo la
tensione Vdd +5Volt per caricare o scaricare il condensatore.
- si scarica il condensatore mettendo il pin in OUT a livello <0> per 1 msec.
- l’istruzione RCTIME mette il pin in IN e fa partire un contatore.
- la corrente generata dal fotodiodo carica il condensatore a corrente costante
- quando il condensatore raggiunge il valore di soglia (1,3 Volt) il contatore si ferma.
- il valore del contatore è disponibile su una variabile “word”, nel range <0-65535>.
misura con 15
misura
risultato VAR Word
risultato
LOW misura
PAUSE 1
RCTIME misura,0,risultato
fino a circa 1,3 Volt
DEBUG ? DEC risultato
‘ dichiarazione pin15 per la
‘ dichiarazione variabile
‘ scarica del condensatore
‘ per 1 ms
‘ misura del tempo di carica
‘ display sul PC
Il condensatore C= 0.22 uF è caricato "a corrente costante" quindi la tensione cresce in
modo lineare e la misura termina quando la tensione arriva a circa 1,3 Volt: se la
corrente i è di 100 uA
t x i
Vc = ------C
Vc x C 1,3 x 0.22 x 10^-6
t = --------- = ------------------------- ~ 2.8 msec
i
100 x 10^-6
Il risultato è scritto in una variabile word a passi di 2 usec: il valore è ~ 1430.
A fotodiodo non illuminato la corrente generata dai fotodiodi causata dai riflessi interni
è di qualche microampere e il condensatore non riuscirà a raggiungere il livello di soglia:
il valore di uscita memorizzato nella variabile sarà pari a <0>.
La sequenza dei valori ottenuti è dunque:
<1>
<2>
…
<65535>
<0>
primo valore (soglia raggiunta in t <= 2usec)
secondo valore (soglia raggiunta in t = 4 usec)
penultimo valore (soglia raggiunta in t=131.07 msec)
ultimo valore (soglia non raggiunta)
e lo <0> viene dopo il <65535>, bisogna ricordarsene nello scrivere il codice :
IF risultato=0 THEN risultato=65535
sequenza
' pone <0> alla fine della
Poichè il risultato è “inversamente proporzionale “ alla corrente di carica, per avere un
andamento “direttamente proporzionale” occorre calcolarne “il reciproco rispetto al
valore massimo”. Ho verificato la linearità della conversione del BS2 con
un condensatore da 0,1 uF ed un fotodiodo BPW34, progressivamente illuminato da una
lampada da tavolo, confrontando la lettura del BS2 con quella di un microamperometro
in serie al BPW34.
Corrente del
BPW34 (uA)
valore letto
dal BS2
60
50
40
30
20
11
1060
1300
1630
2300
3240
6240
valore reciproco
int(65535/valore)
61
50
40
28
20
10
ne esce una discreta iperbole e calcolando il reciproco dei valori letti (65535/x)
otteniamo una buona retta anche se la divisione fra interi del BS2 taglia la parte
decimale del quoziente.
clicca per ingrandire
Conclusione
Il mio scopo era quello di capire come usare il sensore e se fosse possibile interfacciarlo
in modo semplice. Ho voluto condividere la mia esperienza affinché possa essere utile a
chi sarà interessato a usare, certo molto meglio di quanto abbia fatto io, questo
economico sensore.