Elaborato Pasciucco Anna n46000755

Facoltà di Ingegneria
Corso di Studi in Ingegneria Informatica
Elaborato finale in Misure per l’automazione e la produzione industriale
Progetto e implementazione di un
voltmetro a doppia rampa su PIC18F4620
in ambiente Proteus
Anno Accademico 2012/2013
Relatore:
Prof.Rosario Schiano Lo Moriello
Candidato:
Anna Pasciucco
matr. N46000755
Indice
Introduzione
5
Capitolo 1. Descrizione teorica del progetto
6
1.1
1.2
1.2.1
1.2.2
1.2.3
1.3
Introduzione
Elementi utilizzati
Voltmetro doppia rampa
Proteus 7 Professional
MPLAB IDE
Microchip PIC18F4620
6
6
7
9
10
11
Capitolo 2. Realizzazione e implementazione
2.1
2.2
2.3
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
2.3.6
12
Dispositivi
Circuito
Codice
LCD.C
TIMER.C
COMPARATOR.C
USART.C
FUNCTION.C
MAIN.C
12
14
16
17
21
23
24
26
28
Capitolo 3. Simulazione
3.1
32
Scelta dei parametri,casi d’uso,osservazioni
32
Conclusioni
Sviluppi futuri
Bibliografia
39
40
41
III
IV
Inserire il titolo della tesi di laurea come intestazione
Introduzione
La strumentazione digitale rappresenta sempre più la base della nostra vita
quotidiana . Infatti si è sempre più soliti farne uso senza prestarne reale attenzione.
Basti pensare a come, spesso, il semplice display della sveglia sia preferito al
vecchio orologio analogico in termini di precisione e affidabilità . Le principali
differenze tra strumentazione analogica e numerica, dunque , sono dettate in termini
di:
- velocità nella lettura dei risultati;
- affidabilità;
- precisione;
- indipendenza dal posizionamento dello strumento;
- possibilità di interfacciare lo strumento con elaboratori;
Allo stesso modo l’evoluzione tecnologica ha portato a miglioramenti anche nel
campo scientifico ; infatti l’oggetto di tale tesi è rappresentato dalla progettazione e
implementazione di un voltmetro doppia rampa digitale. Dunque , nei passi
successivi si vorrà prestare attenzione alla realizzazione e configurazione di tale
strumento basato su PIC18F4620.
5
Inserire il titolo della tesi di laurea come intestazione
Capitolo 1
Descrizione teorica del progetto
1.1 Introduzione
Il voltmetro doppia rampa ricade nella categoria dei Digital Conversione ( DC ) basato
sulla conversione tensione tempo. Il valore del misurando è caratterizzato, dunque, in
maniera indiretta attraverso il valore della tensione di riferimento e dei tempi di RunUp e
RunDown. Esso è un voltmetro numerico il quale misura tensioni continue. I modelli
digitale di tale strumento vedono un notevole successo poiché riescono a garantire
contemporaneamente costi contenuti e prestazioni elevate.
1.2 Elementi utilizzati
Al fine di realizzare tale progetto si vuole
richiamare la conoscenza teorica del
funzionamento del voltmetro a doppia rampa, utilizzare un ambiente grafico per lo
sviluppo circuitale e di dispositivi con relativa configurazione per l’implementazione del
codice.
A livello pratico, si vorrà porre l’attenzione sugli aspetti implementativi del sistema
6
Inserire il titolo della tesi di laurea come intestazione
piuttosto che su quelli circuitali.
1.2.1 Voltmetro doppia rampa
Il voltmetro doppia rampa nasce come evoluzione del
voltmetro a semplice integrazione. Quest’ultimo è un
convertitore tensione–frequenza il quale principio di
funzionamento dipende fortemente dalla scelta del
valore delle resistenze e dei condensatori. In particolare,
quando l’uscita dell’integratore raggiunge il valore di
soglia, il comparatore genera un segnale che abilita le
1.1: Voltmetro a semplice
generazione di un impulso. L’unico vantaggio di tale Figura
integrazione
tipo di convertitore è rappresentato dal fatto che il
valore
del
misurando
è
dipendente dalla misura della
frequenza, anche se dipende
dall’incertezza dell’oscillatore.
Altra
difficoltà nasce nel
generare un impulso di area
accurata
In questo ambito vede la sua migliore
realizzazione
il
voltmetro
doppia
rampa nel quale viene minimizzato il
grado di incertezza legato alle costanti R
Figura 1.2:Voltmetro doppia rampa
7
Inserire il titolo della tesi di laurea come intestazione
e C poiché non influiscono sulla conversione tensione-tempo; vengono altresì ridotti gli
errori effettuando la conversione su variabili temporali. Gli elementi circuitali salienti
sono rappresentati da:
Commutatore : esso , in base al comando inviato dal circuito di controllo , sceglie se
integrare la tensione incognita o la tensione di riferimento.
Integratore : composta da un amplificatore operazionale con ingresso non invertente
posto a massa e ingresso invertente posto in parallelo con un condensatore.
Comparatore: effettua il confronto tra la tensione di uscita dell’amplificatore e il valore di
soglia a potenziale nullo.
Contatore numerico: esso valuta il tempo impiegato per la carica e la scarica del
condensatore.
In oltre ricordiamo come la tensione incognita sia una tensione continua e positiva, la
scelta operata porta allo studio dell’andamento temporale del segnale sul semiasse
negativo delle ascisse; mentre la tensioni di riferimento, anche essa continua, è scelta con
valore opposto al misurando.
Ora si voglia discutere il comportamento del circuito.
Inizialmente il commutatore sceglie come tensione da integrare quella incognita per un
tempo definito di RunUp, durante il quale inizia ad accumularsi la carica sulle facce del
condensatore. Il tempo di carica può essere variato da terminale al fine di alterare il
risultato della misurazione. All’istante immediatamente successivo allo scadere del tempo
di RunUp, il commutatore viene pilotato affinché venga integrata la tensione di
riferimento: si genera il segnale SOC, start of count. Parimenti, viene valutato il tempo di
RunDown; esso coincide con l’intervallo temporale in cui la tensione di uscita
dell’integratore raggiunge il valore di tensione nullo: si genera il segnale EOC, end of
count. Allo stesso istante, il commutatore viene nuovamente pilotato: la misurazione
riparte selezionando come tensione da integrare quella incognita, poiché essa è effettua
ciclicamente.
8
Inserire il titolo della tesi di laurea come intestazione
1.2.2 Proteus 7 Professional
L’implementazione circuitale del voltmetro doppia
rampa è stata realizzata facendo usa di un ambiente
grafico quale Proteus 7 Professional, prodotto da
Labcenter Electronics . Esso permette di creare
Figura 1.3: Proteus 7 Professional
virtualmente il layout del circuito mediante l’uso di microcontrollori e di poterne testare
subito il corretto funzionamento.
Tale applicazione include la possibilità di usare diversi dispositivi: misuratori,
convertitori, microcontrollori, LCD, display, generatori, keypad e qualsivoglia congegno
per la corretta implementazione del progetto.
Esso , graficamente , dispone :
Finestra di editing, all’interno della quale è possibile svolgere il lavoro interconnettendo i
dispositivi interessati;
Finestra panoramica, dalla quale è possibile avere un quadro completo dello schema;
dando la possibilità all’utente di inquadrare in maniera immediata l’area di lavoro
interessata;
Figura 1.4: Finestra di editing,finestra panoramica e barra dei menù.
Barra dei menù. Essa rappresenta il cuore del sistema: permette di accedere alla diverse
9
Inserire il titolo della tesi di laurea come intestazione
librerie in concordanza con la scelta del dispositivo.
L’applicazione, qual’ora, non si abbia fatto uso di dispositovi che necessitano di
configurazioni attraverso programmi esterni permette di vedere il comportamento del
circuito attraverso l’apposito menù posto in basso a sinistra (Figura1.5).
Figura 1.5:Tasti per gestire la dinamica del progetto
1.2.3 MPLAB IDE
MPLAB IDE è un ambiente di sviluppo
(IDE) particolarmente notevole poiché
permette
di
essere
collegato
direttamente al prototipo su cui è
montato il PIC. Infatti ha una libreria
interna che permette la configurazione
di diverse tipologie di Microchip.
Dunque MPLAB viene a rappresentare
una
sorte
di
collante
tra
la
Figura 1.6: MPLAB IDE
modellazione hardware e software nella
creazione, progettazione e implementazione di sistemi che usano microcontrollori.
L’interfaccia grafica, caratterizzata da una notevole semplicità d’uso, permette di tener
tracci dei file di cui è composto il programma e del rispettivo codice C/C++.
Dunque in tale progetto il ruolo di MPLAB è stato di fungere da compilatore per generare
il file eseguibile da associare al PIC18F4620, poiché Proteus è utilizzato in maniera
integrata all’interno di MPLAB.
10
Inserire il titolo della tesi di laurea come intestazione
1.3 Microchip PIC18F4620
PIC: Programmable Integrated Circuit oppure Programmable Interface Controller oppure
Programmable Intelligent Computer è un marchio registrato di Microchip Tecnology Inc.
Il microcontrollore, a differenza del microprocessore, è un sistema completo poiché
possiede sullo stesso chip il processore, la memoria permanente , volatile , i canali di I/O
ed altre aree specializzate.
Il PIC18F4620 è il microcontrollore su cui si fonda il buon funzionamento del voltmetro.
I PIC18 hanno una architettura di tipo Harvard, assicura la separazione tra memoria dati ed
istruzioni, ed una CPU di tipo RISC, ossia con poche istruzioni “integrate”.
Figura 1.7:PIC18F4620,pin
11
Inserire il titolo della tesi di laurea come intestazione
Capitolo 2
Realizzazione e implementazione
2.1 Dispositivi
Il primo passo per la realizzazione del voltmetro a doppia rampa consiste nella
progettazione circuitale nell’ambiente grafico Proteus 7 Professional prima citato nel
paragrafo 1.2.2.
I dispositivi che sono stati utilizzati sono i seguenti:
Display : LM016L, 16 *2 Lcd alfanumerico. Esso è un
dispositivo
per
la
visualizzazione
di
caratteri
alfanumerici la cui bassa alimentazione ( 2,7 V a 5,5V)
lo rende atto all’installazione su qualsiasi dispositivo
portatile (Figura2.1).
Figura 2.1:Display
Relay: Active, Modello animato. Esso è composto da una sola
uscita e due morsetti di ingresso pilotati esternamente (Figura2.2).
Figura 2.2:Relay
12
Inserire il titolo della tesi di laurea come intestazione
Amplificatore
operazionale:
OPAMP,
amplificatore
operazionale ideale. Anche esso è composto da una sola
uscita e due ingressi , invertente e non invertente , il quale,
genera , in dipendenza dal valore del guadagno , una
uscita amplificata/attenuata. Generalmente ha bisogno di
essere alimentato , ma l’OPAMP del circuito è stato scelto
ideale per garantire prestazioni migliori poiché non Figura 2.3:Amplificatore operazionale
dipendenti da ritardi dovuti alla carica /scarica di quest’ultimo (Figura 2.3).
Oscilloscopio : Il visualizzatore è
realizzato
per
dell’evoluzione
tener
traccia
temporale
del
segnale considerato. Esso permette
di studiare i quattro segnali di
ingresso
in
base
alle
richieste
Figura 2.4:Oscilloscopio
dell’operatore: AC, DC, posizione, Voltaggio, sorgente (Figura 2.4).
Voltmetro DC: Il dispositivo è un misuratore di tensione atto a osservare il
giusto valore di tensione in un determinato punto del circuito.Esso misura,
quindi , la differenza di potenziale tra due punti di un circuito elettrico
(Figura2.5).
Figura 2.5:Voltmetro DC
PIC18F4620:PICMICRO, PIC18Microcontroller: 64K code 3968B data, 1kB EPROM,
Ports A-E, Timers, MSSP, EUSART, 16*10-bit ADC.
13
Inserire il titolo della tesi di laurea come intestazione
Da notare che il vaolre delle porte è settato facendo uso della
primitiva PORTnbits.PORTn ,mentre il verso di percorrenza dei
dati con TRISnbits.TRISn. Il PIC per funzionare ha bisogno di
una alimentazione propria posta sul pin MCLR/VPP.
Il pic, seppur apparentemente un dispositivo statico, mostra
animazioni agli estremi dei singoli pin con led blu/rossi a
seconda del passaggio o meno del segnale (Figura 2.6).
Figura 2.6:PIC18F4620
Resistenza, Led, Condensatore, Generatore, interruttore, connessione input/output:
possono essere considerati come dispositivi da “corredo” dato il loro semplice
funzionamento, tuttavia l’assenza di questi ultimi non garantirebbe il giusto
funzionamento del circuito.
2.2 Circuito
Avendo brevemente trattato le caratteristiche dei dispositivi utilizzati è ora possibile
arrivare alla realizzazione circuitale del progetto (Figura 2.7):
Figura 2.6:Voltmetro doppia rampa
14
Inserire il titolo della tesi di laurea come intestazione
Sulla base teorica del funzionamento del voltmetro a doppia rampa trattata nel paragrafo
1.2.1, osserviamo come in ingresso al selettore siano stati posti due valori di tensione di
segno opposto: sul primo ramo Vx e sul secondo Vrif.
Il commutatore è pilotato dal valore dell’uscita del pin RB0 del PIC: inizialmente è
selezionata Vx poiché il pin è settato a zero.
Successivamente è realizzato un integratore ponendo in parallele l’amplificatore
operazionale ed il condensatore; l’ingresso non invertente dell’OPAMP è posto a massa
mentre l’altro amplifica/attenua il valore di Vx. La sua uscita viene letta sul pin RA3 del
PIC e dal comparatore.
Anche esso ha il morsetto positivo posto a massa. In particolare per meglio osservare il
valore di uscita del comparatore è stato collegato con un LED il quale si accende durante
l’intervallo di integrazione di Vriferimento.
Sia l’ingresso che l’uscita dell’integratore sono stati collegato al voltmetro e
all’oscilloscopio: il primo per leggere il valore corrente di tensione , mentre il secondo per
visualizzare l’andamento temporale del segnale. Si è potuto osservare, sul display
dell’oscilloscopio, che l’uscita dell’ integratore, fin tanto che viene scelto Vx positivo, è
una rampa decrescente con costante -Vx/RC, mentre il suo andamento viene invertito
nell’istante in cui viene integrato Vrif, rampa con pendenza Vrif/RC (Figura 2.8).
Figura 2.7:Oscilloscopio.Rette gialle:tensione da integrare.Rette
blu:tensione integrata
15
Inserire il titolo della tesi di laurea come intestazione
L’altra faccia del PIC, invece, è stato connessa ai dispositivo atti all’interazione con
l’utente: i pin RC0 ÷ RC3 sono stati collegati a VDD, RS, RW ed E dell’LCD per la
configurazione di quest’ultimo; i pin RD0÷RD7 del PIC ai pin D0÷D7 dell’LCD per la
trasmissione e successiva visualizzazione dei carattere alfanumerici; i pin RC6 RC7 del
PIC ai canali di trasmissione e ricezione dell’USART.
Un secondo commutatore è posto in serie all’integratore per resettare quest’ultimo, esso è
pilotato dal valore di PORTB0.
2.3 Codice
Il voltometro a doppia rampa è uno strumento ideato per la misurazione di tensioni basato
sulla valutazione di un intervallo di tempo dipendente dal valore della tensione di ingresso.
Quindi necessità, principalmente, di un blocco commutatore per la scelta delle tensioni da
integrare e una logica di controllo che nei passi successivi verrà illustrata.
Il codice è stato scritto in linguaggio C nel compilatore MPLAB.
Figura 2. 8:MPLAB IDE
In primis è stato creato il progetto: Project ->Project Wizard -> scelta del PIC18F4620.
16
Inserire il titolo della tesi di laurea come intestazione
Il passo successivo è la scelta della Microchip C18 toolsuite, MPASM Assembler,
MBLINK Object Linker, MPLAB C18 C Compiler, MPLAB Librian.
Ed infine è possibile creare il New Project File assegnando il path della cartella in cui
salvarlo.
La mia scelta è stato, in base alle usuali regole di programmazione, nel dividere il progetto
in undici file:
Cinque file header: in cui sono stati definiti i prototipi delle funzioni implementate nel
relativo file.c ed eventuali inizializzazioni.
Sei file.c: con la realizzazione delle funzioni prima citate.
Nei paragrafi successivi sarà visualizzato il codice sotto forma di screenshot. Parte delle
relative spiegazioni pratiche/teoriche sono state inserite come commenti all’interno dello
stesso codice, mentre i concetti salienti verranno, in maniera immediatamente successiva,
trattati su tale elaborato. Per quanto concerne la configurazione dei singoli registri, lo
studio si è concentrato solo sui flag inerenti alla realizzazione del voltmetro onde evitare
di dilungarci in maniera inutile su argomenti non inerenti. Tuttavia, il lettore è libero di
approfondire il proprio studio facendo riferimento ai datasheet dei singoli dispositivi.
17
Inserire il titolo della tesi di laurea come intestazione
2.3.1 LCD.C
Dalla seguente guida sulla configurazione dell’LCD (Figura 2.10),
Figura 2.9:Guida configurazione LCD
Sono state prima definite le seguenti direttive definite in lcd.h:
18
Inserire il titolo della tesi di laurea come intestazione
Ed il relativo codice:
Sono enunciati i settaggi dei pin dell’LCD:

FUNCTION SET: 0 0 0 0 1 DL N F — —
DL:seta la lunghezza dei dati sull’interfaccia . DL=0 : 8bit (DB7÷DB0).
DL=1 :4bit (DB7÷DB4), i dati devono essere inviati/ricevuti
due volte.N:numero di righe del display.N=0 : 2 linee. N=1 : 1 linea.
19
Inserire il titolo della tesi di laurea come intestazione
F: font. F=1 : 5*10 dots. F=0 : 5*8 dots.

DISPLAY on/off: 0 0 0 0 0 0 1 D C B
D: on/off. D=1 :display on . D=0: display off.
C:on/off del cursore. C=1 : cursore attivo. C=0 : cursore disattivo;
B: lampeggio del cursore. B=1 : on . B=0 : off.

CLEAR DISPLAY: 0 0 0 0 0 0 0 0 0 1

ENTRY MODE SET: 0 0 0 0 0 0 0 1 I/D S
I/D: direzione del cursore. I/D=1 : incrementa .I/D=0 : decrementa.
S: =1. Accompagna il movimento del display.
20
Inserire il titolo della tesi di laurea come intestazione
2.3.2 TIMER.C
Il PIC18F4620 permette l’utilizzo di diversi TIMER indipendenti tra di loro. Essi possono
considerare come frequenza di clock un valore interno al PIC prelevato da un oscillatore
locale, oppure da una variabile esterna. In tale progetto è stato scelto come valore del ciclo
di clock: FOSC/4 ,ossia un quarto della frequenza di clock. Utilizzando, per esempio un
quarzo da 4 MHz ,il clock è pari ad un milione di incrementi al secondo del valore
presente in TMR.
Nel
caso
attuale
è
stato
necessario
configurare due timer: TIMER0 e TIMER1.
Tale scelta è nata per non creare interferenza
tra l’LCD, il quale fa uso dei timer per
l’inizializzazione, e la valutazione dei tempi
Figura 2.10:Timer0
di RunUp e RunDown.
TIMER0 : è un contatore il cui contenuto viene incrementato con scadenza regolare e
programmabile in hardware. Esso può funzionare sia come timer tramite software oppure
contatore a 8 o 16 bit.
Il registro interno di Timer0 è T0CON:
I valori del conteggio sono depositati in TMR0H e TMR0L.
Osservando il codice si nota come il punto saliente sia rappresentato dalle seguenti righe :
T0CONbits.TMR0ON = 1;
while(!INTCONbits.TMR0IF);
INTCONbits.TMR0IF = 0;
T0CONbits.TMR0ON = 1;
Col primo comando si accende il timer. Successivamente viene effettuato il controllo sul
21
Inserire il titolo della tesi di laurea come intestazione
valore di TMR0IF. Siccome il valore massimo caricabile in TMR0 è 0xFFFF, nel caso in
cui venga raggiunta tale soglia si
genera un interrupt. Essa viene letta nel registro
INTCON, registro dedicato alle interruzione e letto ad ogni ciclo macchina, nel quale
viene abilitato il pin TMR0IF. L’overflow è stato raggiunto, ma il timer deve continuare il
conteggio, quindi con i due ultimi comandi andiamo a “pulire” il flag afferente
all’interruzione per poi riavviare il conteggio.
TIMER1:
Il funzionamento è duale a TIMER0, ma le interrupt vengono lette nel registro PIR1. Il
flag che è abilitato al raggiungimento dell’overflow è PIR1bits.TMR1IF.
22
Inserire il titolo della tesi di laurea come intestazione
2.3.3 COMPARATOR.C
Il modulo comparatore permette di confrontare due valori di ingresso, e restituire l’uscita
dipendente dal confronto dei possibili ingressi. In tale caso è stato utilizzato su due
ingressi: tensione di uscita dell’integratore e valore di soglia.
Il registro che gestisce il suo comportamento è CMCON:
Il comparatore scelto è quello mostrato in
Figura 2.12:
Figura 2.11:Comparatore
23
Inserire il titolo della tesi di laurea come intestazione
2.3.4 USART.C
Oltre all’LCD per l’interazione con l’utente è possibile fare uso dell’USART, Universal
Synchronous Receive/Transmitter. Esso è un modulo di I/O seriale che utilizza un
oscillatore interno per garantire un funzionamento stabile per applicazioni che parlano al
mondo esterno. Tuttavia è possibile caricare il tasso di dati inviati al secondo nel registro
SPBRG, attraverso la formula:
Baud Rate desiderato=FOSC/[64 (n + 1)]; con n=SPBRG
Nel caso attuale il valore calcolato per SPBRG=25 .
I rigistri di interesse sono: RCSTA e TXSTA
24
Inserire il titolo della tesi di laurea come intestazione
Codice:
E’ possibile notare che nella funzione leggiUsart( ) viene effettuato il controllo sul flag
PIR1bits.RCIF. Il registro PIR1 gestisce, attraverso il pin RCIF, le interrupt generate
dall’USART quando il buffer adibito alla ricezione dei caratteri, RCREG, è pieno.
Quindi, quando raggiunge la sua massima capienza, coincidente con un carattere, abilita
l’interrupt e la funzione ritorna il valore del registro. Tale operazione “di svuotamento” del
registro è necessaria per permettere una nuova lettura, poiché solo in tal caso l’interrupt
rientra.
Invece nella funzione scriviUsart( ) avviene l’esatto opposto: il carattere viene prima
posto nel registro di trasmissione dell’USART: TXREG; l’interrupt viene letta sul pin
25
Inserire il titolo della tesi di laurea come intestazione
PIR1bits.TXIF quando è vuoto.
Inoltre ricordiamo la definizione delle seguenti direttive effettuate nel file usart.h :
2.3.5 FUNCTION.C
Prime di far convergere tutti i file nel main, sono state implementate in function.c le
funzioni di contorno del progetto, ossia quella parte di codice che non viene esplicitamente
dichiarato nel main ma richiamato e implementato altrove per rendere il codice più
leggibile e funzionale.
Da notare è la funzione valoreX( ) , essa è il centro della conversione tensione-tempo del
voltmetro doppia rampa. Infatti il valore di tensione incognito è ottenuto come:
Vx=(Vrif)*(Nd/Nu);
ove Nd ed Nu corrispondono rispettivamente all’intervallo temporale misurato durante la
fase di RunDown e RunUp.
La funzione resetCap( ) è utilizzata per scaricare completamente l’integratore prima della
misurazione da eventuali cariche residue accumulate sulle facce del condensatore.
In fine la funzione float2str( ) per convertire una variabile di tipo float in una stringa. Tale
passaggio è necessario per stampare sull’LCD un valore numerico.
26
Inserire il titolo della tesi di laurea come intestazione
Codice:
27
Inserire il titolo della tesi di laurea come intestazione
2.3.6 MAIN.C
28
Inserire il titolo della tesi di laurea come intestazione
29
Inserire il titolo della tesi di laurea come intestazione
30
Inserire il titolo della tesi di laurea come intestazione
31
Inserire il titolo della tesi di laurea come intestazione
Capitolo 3
Conclusioni
3.1 Scelta dei parametri, casi d’uso,osservazioni
In questo paragrafo, variando le caratteristiche del circuito, vedremo il suo
comportamento. Le proprietà che verranno modificate saranno i valori di resistenza, tempo
di RunUp e andamento del segnale di ingresso. I diversi casi di test possono essere
effettuati passo passo inserendo dei breackpoints nei punti di interesse del codice, e
controllando i valori delle variabili attraverso il comando WATCH.
32
Inserire il titolo della tesi di laurea come intestazione
Prima di iniziare i diversi casi, è mostrato il diagramma di flusso:
Inserire Tempo di RunUp
i
Premi tasto

Carica TimeUp in
TMR1
Integra Vx

Decrementa TimeUP
falso
TimeUp=0
vero


Integra Vrif
SOC
falso
Vout integratore >V
soglia
vero


Incrementa
TimeDown
EOC
Effettua conversione
Mostra misura
33
Inserire il titolo della tesi di laurea come intestazione
Esempio 1:
R1= 5K
Vx= 10V
TimeUp=1 ms
Figura 3.1:Esempio_1
Come si evince dall’immagine la a rampa cresce e decresce in maniera molto lenta
assimilando il suo andamento ad una retta. All’interno del TIMER1 non si genera
overflow.Dall’immagine sottostante è mostrato l’istante in cui inizia la fase di RunDown.
Figura 3.2:Esempio_1
Il risultato della conversione tensione-tempo è mostrato sull’LCD:
34
Inserire il titolo della tesi di laurea come intestazione
Esempio2:
R1= 100K
Vx= 10V
TimeUp=1ms
Figura 3.3:Esempio_2
L’immagine cattura sia la fase di inizio RunDown che l’uscita dell’integratore durante tutta
la misurazione : il tempo per la carica del condensatore è minore; infatti la tensione ,pari a
-0.32V , è minore rispetto al primo esempio. Inoltre l’andamento delle rampe è percepibile
in maniera migliore.
Ma il risultato rimane costante:
Figura 3.4:Esempio_2
Esempio3:
R1= 5K
Vx= 10V
35
Inserire il titolo della tesi di laurea come intestazione
TimeUp=140 ms
Figura 3.5:Esempio_3
L’immagine continua a catturare l’inizio della fase di RunDown.
La tensione accumulata sulle facce del condensatore mostra come essa tende a
diminuire aumentando il tempo di RunUp e diminuendo il valore della resistenza.
Tuttavia inizia a nascere la prima problematica: se pur la pendenza delle rampe inizia ad
essere sempre più visibile poiché legata alla costante di tempo ,viene raggiunta la
saturazione, dunque la misurazione perde di precisione :
Figura 3.6:Esempio_3
36
Inserire il titolo della tesi di laurea come intestazione
Esempio4:
R1= 100K
Vx= 10V
TimeUp=140ms
Figura 3.7:Esempio_4
Questo esempio rappresenta la condizione ideale: la pendenza delle rampe è apprezzabile,
alla fine della fase di RunUp il valore di uscita dell’integratore è -0.94 V , il dispositivo
non raggiunge la saturazione , è ben gestito il conteggio durante la fase di carica del
condensatore se pure il valore precaricato nel TIMER supera la sua massima capienza.
La conferma di tale osservazioni è percepito dalla valutazione della tensione incognita:
Figura 3.8:Esempio_4
37
Inserire il titolo della tesi di laurea come intestazione
Esempio5:
R1= 100K
Lasciando il valore di Vx costante (10 V), ne andiamo a modificare le caratteristiche del
segnale:frequenza ed ampiezza ,attraverso l’introduzione nel circuito di un generatore di
segnale.
Il dispositivo corrispondente è il seguente:
Con la scelta dei parametri sopra elencati, osserviamo come il risultato delle misurazione
sia impreciso poiché il dispositivo raggiunge per un breve intervallo la saturazione :
Figura 3.9:Esempio_5
38
Inserire il titolo della tesi di laurea come intestazione
Conclusioni
L’obiettivo del lavoro di tesi è stato la realizzazione, in simulazione software, di un
voltmetro a doppia rampa, un misuratore di tensione basato sulla conversione tensionetempo. Il dispositivo è stato quindi creato in ambiente Proteus 7 Professional, un CAD per
dispositivi elettronici che consente di simulare il funzionamento di circuiti misti
analogico-digitali. Infatti, per la progettazione di un voltmetro doppia rampa di questo
tipo, occorre sia un front-end analogico, che effettui l’integrazione della tensione da
misurare e della tensione di riferimento, sia di una parte digitali che effettui il confronto
tra le tensioni e la conversione tensione-tempo. Il cuore del voltmetro a doppia rampa è un
PIC18F4620 adibito al comportamento digitale del misuratore.
Il voltmetro è stato poi configurato in MPLAB IDE, programma che utilizza Proteus in
maniera integrata. Il linguaggio di programmazione utilizzato per la configurazione dei
dispositivi è C. All’interno del progetto sono stati inseriti due pulsanti: il primo per
riavviare completamente il processo di misurazione, mentre il secondo per avviare la
misurazione. I risultato ottenuti hanno mostrato come la qualità della misurazione dipende
fortemente dal livello di saturazione del dispositivo e dal tempo di RunUp. Mentre il
valore della resistenza influenza il tempo di misurazione e in maniera indiretta la
misurazione. Tuttavia l’unico elemento che caratterizza costantemente la misurazione in
maniera ripetitiva è il tempo che il commutatore impiega a variare l’ingresso. Dunque si
potrebbe realizzare un commutatore quanto più veloce possibile o variare le caratteristiche
prima elencate per rendere irrilevante il ritardo legato al commutatore.
39
Inserire il titolo della tesi di laurea come intestazione
Sviluppo futuri
Il voltmetro realizzato è solo una implementazione virtuale. In futuro è possibile trasferire
il codice su dispositivi reali e testarne la validità.
40
Inserire il titolo della tesi di laurea come intestazione
41
Bibliografia
·
MPLAB® IDE User’s Guide
MICROCHIP@, http://www.microchip.com
· MPLAB® C18 Compiler User’s Guide
MICROCHIP@, http://www.microchip.com
·
PIC18F2525/2620/4525/4620 Data Sheet
MICROCHIP@, http://www.microchip.com
·
HITACHI HD44780U Dot Matrix Liquid Crystal Display Controller/Driver Data Sheet
http://hitachi.com
42
Ringraziamenti
L’esperienza maturata nella realizzazione di tale progetto mi ha permesso di mettere in
pratica le conoscenze acquisite durante il corso di Misure per l’automazione e la
produzione industriale. Non a caso la scelta come materia della mia tesi è stata orientata
verso tale materia. In particolare ho potuto vedere e sperimentare dal punto di vista pratico
il funzionamento del voltmetro a doppia rampa. Il progetto inizialmente mi è sembrato di
facile elaborazione, tuttavia, col procedere del lavoro, si sono potute vedere le peculiarità :
l’utilizzo di timer a dimensione fissa, gestione della memoria limitata del PIC18F4620,
interazione con l’utente, realizzazione di un comparatore o interno al PIC o tramite
l’utilizzo del prototipo circuitale. Tuttavia posso affermare di essere stata affascinata da
tale progetto soprattutto quando il dispositivo ha iniziato a funzionare nel modo corretto.
43