1 CAPITOLO V Progetto di un contatore Geiger Muller 1 Introduzione Nel presente capitolo verrà presentato un possibile progetto di un contatore Geiger- Muller. Nei paragrafi due e tre sarà analizzato lo schema semplificato e quello completo del contatore geiger; successivamente nel paragrafo quattro sarà presentato il diagramma di flusso del software del microcontrollore. Nei paragrafi cinque e sei verrà trattata la codifica in linguaggio C del software e, in seguito, il software di acquisizione su PC e la simulazione circuitale attraverso programma dedicato (Proteus). 2 Schema circuitale semplificato Lo schema circuitale semplificato del contatore è mostrato in figura 2.1 Lo schema è costituito dai seguenti blocchi: Blocco convertitore DC-DC. Il convertitore DC-DC è utilizzato per alimentare il tubo geiger il quale ( come specificato dai dati tecnici) richiede una tensione ai suoi capi di circa 400V. Tubo Geiger Il tubo geiger utilizzato è SBM-20 di fabbricazione russa il quale richiede una tensione di lavoro di 400V e presenta un tempo morto di 190 sec.
20
Embed
Progetto di un contatore Geiger Mullercontatoregeigermuller.altervista.org/capitoli/cap5.pdf · ... (INT) del PIC passa da livello alto a livello ... Il software del PIC è stato
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
CAPITOLO V
Progetto di un contatore Geiger Muller
1 Introduzione
Nel presente capitolo verrà presentato un possibile progetto di un contatore Geiger-
Muller. Nei paragrafi due e tre sarà analizzato lo schema semplificato e quello completo
del contatore geiger; successivamente nel paragrafo quattro sarà presentato il diagramma
di flusso del software del microcontrollore. Nei paragrafi cinque e sei verrà trattata la
codifica in linguaggio C del software e, in seguito, il software di acquisizione su PC e la
simulazione circuitale attraverso programma dedicato (Proteus).
2 Schema circuitale semplificato
Lo schema circuitale semplificato del contatore è mostrato in figura 2.1
Lo schema è costituito dai seguenti blocchi:
Blocco convertitore DC-DC.
Il convertitore DC-DC è utilizzato per alimentare il tubo geiger il quale ( come specificato
dai dati tecnici) richiede una tensione ai suoi capi di circa 400V.
Tubo Geiger
Il tubo geiger utilizzato è SBM-20 di fabbricazione russa il quale richiede una tensione di
lavoro di 400V e presenta un tempo morto di 190 sec.
2
Blocco generatore di impulsi
Questo blocco è costituito dal condensatore C dal transistor e dalle resistenze R1,R2 ed
Rc. In condizioni normali il tubo geiger si comporta come un interruttore aperto e quindi sul
collettore del transistor ( il quale sarà ovviamente interdetto) sarà presente una tensione
di 5V. Il passaggio di una particella nel tubo, provocherà una scarica tale da potere
considerare il tubo per un breve intervallo di tempo come un cortocircuito.
In queste condizioni, il circuito di ingresso del transistor è equivalente a quello di figura 2.2
Il circuito equivalente di Thevenin del bipolo costituito dal solo condensatore è mostrato
in figura 2.3
Fig.2.3
Dove Ri è la resistenza di ingresso del transistor.
Il condensatore C subirà un processo di carica con costante di tempo pari a = C Rg //
(R1+R2//Ri) C (R1+R2//Ri)
La tensione di fine carica E sarà all’incirca data da:
E = 𝑉 𝑅1+𝑅2//𝑅𝑖
𝑅𝑔+𝑅1+𝑅2//𝑅𝑖
In questa condizioni il circuito di ingresso del transistor sarà equivalente al seguente:
3
Fig.2.4
Dimensionando opportunamente i componenti , si può fare in modo che dopo il processo
di carica del condensatore il transistor sia saturo.
Tale evento determinerà sul collettore del transistor un fronte di discesa che provocherà
l’interruzione del microcontrollore.
Al termine del processo di scarica nel tubo il comportamento di quest’ultimo sarà
assimilabile ad un interruttore aperto. Da questo istante di tempo in poi il condensatore
subirà un processo di scarica con costante di tempo pari a circa (R1 + R2//Ri) C
riportando il sistema nelle condizioni iniziali: condensatore scarico e transistor interdetto.
Dimensionamento dei componenti.
Si sceglie il transitor 2N2222.
Scelta una corrente di collettore IC = 1,5 mA si ricava la resistenza di collettore RC dalla
legge di Kircchoff alla maglia di uscita ( assumendo VCEsat = 0,1V) :
RC = 𝑉𝑐𝑐−𝑉𝐶𝐸𝑠𝑎𝑡
𝐼𝐶 = 3266,666
Si assume un valore di Rc = 3,3K.
Dai datasheet del transistor si ricava HFEmin = 30 per cui si sceglie IB tale che
IB > 𝐼𝐶
𝐻𝐹𝐸𝑚𝑖𝑛 = 5* 10-5
Si sceglie IB = 7 * 10-5 A
Si impone che la corrente IR2 sulla resistenza R2 sia trascurabile rispetto ad IB. Poniamo
quindi IR2 = 10 IB = 70 * 10-5 A.
In queste condizioni le due resistenze R1 ed R2 sono praticamente in serie e si ha:
IR1 = IR2 = 70 * 10-5 A
4
Ponendo VBsat = 0,68V si trova:
R2 = = 0,68
7 0∗ 10−5 = 9714 10K
ed
Ri = VBEsat
IB =
0,68
7 ∗ 10−5 = 100K
dove Ri è la resistenza di ingresso del transistor .
Dalle relazioni precedenti si ricava
Ri//R2 = 9100 10K
Dalla relazione precedente si evince, come d'altronde doveva essere per la scelta fatta su
IR2 , che Ri è trascurabile rispetto ad R2.
Per ricavare infine R1 imponiamo che la tensione E sia uguale a 2,6 V. Ossia
E = 𝑉 𝑅1+𝑅2//𝑅𝑖
𝑅𝑔+𝑅1+𝑅2//𝑅𝑖
𝑉
𝑅𝑔 (𝑅1 + 𝑅2//𝑅𝑖)
𝑉
𝑅𝑔 (𝑅1 + 𝑅2) = 2,6
Sostituendo i valori si ha:
400
4,7∗106 (R1 + 10* 103) = 2,6
Risolvendo rispetto ad R1 si trova R1 22K.
Scegliendo per il condensatore C il valore C = 220pF si trova che la costante di tempo di
carica del condensatore ( figura 2.3) è data da:
Rg// (R1 + R2//Ri) C (R1 + R2//Ri) C =
= 32 * 103 * 220 *10-12 = 7sec.
La costante di tempo di scarica ( vedi figura 2.4) è sempre uguale a 6,6 sec .
Si osservi che i tempi di carica e scarica del condensatore C sono molto inferiori al tempo
morto di 190sec. del tubo Geiger.
Blocco microcontrollore
5
Questo blocco conterà gli impulsi corrispondenti al passaggio delle particelle visualizzando
il conteggio su un display lcd ed inviando i dati al PC tramite porta seriale per ulteriori
elaborazioni.
3 Schema circuitale completo
Lo schema circuitale completo è mostrato in figura 3.1
6
Fig. 3.1 Schema circuitale completo del contatore geiger.
Il circuito del contatore Geiger realizzato è molto semplice ed essenzialmente è basato
sull’utilizzo di un microcontrollore Microchip del tipo 16F877 (IC1) adeguatamente
programmato: esso provvederà alla generazione del segnale ad onda rettangolare per il
funzionamento del convertitore DC-DC di tipo boost steep-up, necessario per portare la
tensione di 5V continui di alimentazione (nella progettazione si è immaginato che il
contatore potesse eventualmente funzionare anche in modo portabile per misure esterne)
ai 400V necessari al funzionamento del tubo Geiger- Muller, oltre che al conteggio delle
particelle ed invio dei valori attraverso porta seriale ad un PC nonché alla visualizzazione
dei dati su un display LCD di tipo 2X16.
La tensione di alimentazione di 5V continui proveniente da un alimentatore stabilizzato o
da un idoneo pacchetto di batterie viene applicato al morsetto contraddistinto nello
schema dalla scritta ”Power”: sulla linea di alimentazione è presente un fusibile di
protezione ed una adeguata rete di filtro costituita da vari condensatori da 100nF e da
100uF. Il PIC16F877 verrà resettato, ad ogni applicazione della tensione di alimentazione,
dalla rete costituita da R1, D1, C6 che provvederà a rendere basso il livello logico
presente sul piedino 1 (MCLR) per un breve intervallo di tempo riportandosi poi
stabilmente a livello logico 1 per il funzionamento del circuito.
Il clock del PIC16F877 viene ottenuto utilizzando il cristallo di quarzo QF1 da 8MHz in
abbinamento coi due condensatori C5 e C7 da 15 pF ciascuno; il microcontrollore
funzionerà quindi ad 8 MHz.
Il circuito può essere connesso ad un PC per potere effettuare la elaborazione dei dati
raccolti: questo avverrà attraverso la porta seriale del computer per cui sul circuito è
presente un convertitore del tipo MAXIM 232 (IC2) per potere adeguare i livelli logici del
microcontrollore (TX, RX) allo standard RS232; di questo blocco circuitale fanno parte
oltre ad IC2 i condensatori C12, C13, C14, C15 ed R14. La connessione al PC dovrà
essere fatta attraverso un cavo di tipo NULL Modem al morsetto JP1.
Sono inoltre presenti, ma al momento inutilizzati, due pulsanti ad uso generale ed un
buzzer (cicalino) in attesa della definizione di ulteriori funzionalità.
Sul piedino 17 (CCP1) sarà presente un segnale ad onda rettangolare con ton = 550uS,
toff = 110uS, T = 660 uS e quindi f = 1,5KHz ottenuto sfruttando il modulo PWM del
microcontrollore; tale segnale costituirà il segnale di switching del convertitore boost
costituito dal mosfet Q2 (IRFBE30), L1, D3, C16 che, unitamente alla rete limitatrice
costituita dagli zener D4, D5, D6, D7 ognuno da 100V ed alla resistenza R6, determinerà
ai capi di C16 una tensione pari a circa 400V; il transistor Q1 con la resistenza R5 servono
per indicare al microcontrollore il raggiungimento o meno della tensione richiesta ( i diodi
zener andranno in conduzione al raggiungimento dei 400 V portando alla saturazione Q1 e
fornendo quindi un livello logico 0 al piedino 7 (RA5) del microcontrollore) al fine di un
eventuale controllo energetico. Tale caratteristica , essendo nel nostro caso utilizzato un
alimentatore, non è ancora implementata nel software del PIC16F877 ed è stato
7
modificato il circuito stampato connettendo direttamente a massa la resistenza R6 invece
che alla base del transistor Q1 .
I 400V vendono applicati alla rete costituita da R8, tubo SBM20 (o equivalente), R9, R10,
Q3, R1, C17: quando il tubo non è colpito da particelle avrà resistenza molto elevata
quindi il transistor risulterà interdetto facendo in modo che il piedino 33 del PIC risulti a
livello alto; quando invece viene colpito da particelle avrà resistenza molto bassa per cui
il transistor Q3 andrà in saturazione portando il pin 33 (INT) del PIC a livello logico basso.
Il pin 33 (INT) viene utilizzato come pin di interrupt esterno attivo sul fronte di discesa e
ogni volta che particelle colpiscono il tubo verrà provocato un interrupt; quindi la routine di
interrupt verrà utilizzata per contare le particelle che colpiscono il tubo provocando ogni
volta una interruzione ed un incremento della variabile di conteggio nel software. Il led
verrà utilizzato per indicare quando il pin 33 (INT) del PIC passa da livello alto a livello
basso con una accensione di breve durata in modo da ottenere un lampeggio dipendente
dalle particelle che colpiscono il tubo.
Il circuito è completato da un display lcd 2x16 (DIS1) con i componenti R3 ed R2; tale
display viene utilizzato nel modo a 4 bit comandato dal PIC attraverso i piedini della porta
b (ad esclusione del piedino RB0 dedicato all’interrupt esterno).
8
4 Diagramma di flusso e software PIC
Il diagramma di flusso del programma del microcontrollore è mostrato in figura 4.1 per il
programma principale, mentre le routine di interruzione sono mostrate nella figura 4.2.
9
10
Il software del PIC è stato realizzato con il compilatore CCS C Compiler : tale compilatore
presenta il vantaggio, rispetto ad altri, di potere programmare il microcontrollore
praticamente ignorando i registri interni la cui struttura risulta essere spesso molto
complicata. Un “wizard” iniziale, attraverso cui definire il funzionamento dei moduli interni
al PIC, agevolerà enormemente il rapido sviluppo delle applicazioni.
La scrittura del programma avverrà utilizzando la sintassi del C ANSI in cui, naturalmente,
le funzioni predefinite fornite con le librerie potranno avere specificità differenti rispetto a
quelle utilizzate negli ambiti consueti.
Di seguito si riporta il listato del programma attualmente inserito:
#include <16F877.h> #device ADC=10 #FUSES PUT //Power Up Timer #FUSES NOBROWNOUT //No brownout reset #FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O #FUSES NOCPD //No EE protection #FUSES NOWRT //Program memory not write protected