facoltà di ingegneria · facoltà di ingegneria corso di studi in ingegneria informatica elaborato...

43
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

Upload: dangtruc

Post on 01-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

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

III

Indice

Introduzione 5

Capitolo 1. Descrizione teorica del progetto 6

1.1 Introduzione 6

1.2 Elementi utilizzati 6

1.2.1 Voltmetro doppia rampa 7

1.2.2 Proteus 7 Professional 9

1.2.3 MPLAB IDE 10

1.3 Microchip PIC18F4620 11

Capitolo 2. Realizzazione e implementazione 12

2.1 Dispositivi 12

2.2 Circuito 14

2.3 Codice 16

2.3.1 LCD.C 17

2.3.2 TIMER.C 21

2.3.3 COMPARATOR.C 23

2.3.4 USART.C 24

2.3.5 FUNCTION.C 26

2.3.6 MAIN.C 28

Capitolo 3. Simulazione 32

3.1 Scelta dei parametri,casi d’uso,osservazioni 32

Conclusioni 39

Sviluppi futuri 40

Bibliografia 41

IV

Inserire il titolo della tesi di laurea come intestazione

5

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.

Inserire il titolo della tesi di laurea come intestazione

6

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

Inserire il titolo della tesi di laurea come intestazione

7

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

generazione di un impulso. L’unico vantaggio di tale

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.1: Voltmetro a semplice

integrazione

Figura 1.2:Voltmetro doppia rampa

Inserire il titolo della tesi di laurea come intestazione

8

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.

Inserire il titolo della tesi di laurea come intestazione

9

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

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;

Barra dei menù. Essa rappresenta il cuore del sistema: permette di accedere alla diverse

Figura 1.3: Proteus 7 Professional

Figura 1.4: Finestra di editing,finestra panoramica e barra dei menù.

Inserire il titolo della tesi di laurea come intestazione

10

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

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.

Figura 1.6: MPLAB IDE

Inserire il titolo della tesi di laurea come intestazione

11

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

Inserire il titolo della tesi di laurea come intestazione

12

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).

Relay: Active, Modello animato. Esso è composto da una sola

uscita e due morsetti di ingresso pilotati esternamente (Figura2.2).

Figura 2.1:Display

Figura 2.2:Relay

Inserire il titolo della tesi di laurea come intestazione

13

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

dipendenti da ritardi dovuti alla carica /scarica di quest’ultimo (Figura 2.3).

Oscilloscopio : Il visualizzatore è

realizzato per tener traccia

dell’evoluzione temporale del

segnale considerato. Esso permette

di studiare i quattro segnali di

ingresso in base alle richieste

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).

PIC18F4620:PICMICRO, PIC18Microcontroller: 64K code 3968B data, 1kB EPROM,

Ports A-E, Timers, MSSP, EUSART, 16*10-bit ADC.

Figura 2.3:Amplificatore operazionale

Figura 2.4:Oscilloscopio

Figura 2.5:Voltmetro DC

Inserire il titolo della tesi di laurea come intestazione

14

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).

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:PIC18F4620

Figura 2.6:Voltmetro doppia rampa

Inserire il titolo della tesi di laurea come intestazione

15

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

Inserire il titolo della tesi di laurea come intestazione

16

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.

In primis è stato creato il progetto: Project ->Project Wizard -> scelta del PIC18F4620.

Figura 2. 8:MPLAB IDE

Inserire il titolo della tesi di laurea come intestazione

17

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.

Inserire il titolo della tesi di laurea come intestazione

18

2.3.1 LCD.C

Dalla seguente guida sulla configurazione dell’LCD (Figura 2.10),

Sono state prima definite le seguenti direttive definite in lcd.h:

Figura 2.9:Guida configurazione LCD

Inserire il titolo della tesi di laurea come intestazione

19

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.

Inserire il titolo della tesi di laurea come intestazione

20

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.

Inserire il titolo della tesi di laurea come intestazione

21

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

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

Figura 2.10:Timer0

Inserire il titolo della tesi di laurea come intestazione

22

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.

Inserire il titolo della tesi di laurea come intestazione

23

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

Inserire il titolo della tesi di laurea come intestazione

24

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

Inserire il titolo della tesi di laurea come intestazione

25

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

Inserire il titolo della tesi di laurea come intestazione

26

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.

Inserire il titolo della tesi di laurea come intestazione

27

Codice:

Inserire il titolo della tesi di laurea come intestazione

28

2.3.6 MAIN.C

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

32

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.

Inserire il titolo della tesi di laurea come intestazione

33

Prima di iniziare i diversi casi, è mostrato il diagramma di flusso:

Inserire Tempo di RunUp

i

Carica TimeUp in

TMR1

Integra Vx

Integra Vrif

SOC

Vout integratore >V

soglia

EOC

Effettua conversione

Mostra misura

Incrementa

TimeDown

TimeUp=0

Premi tasto

Decrementa TimeUP

falso

vero

falso

vero

Inserire il titolo della tesi di laurea come intestazione

34

Esempio 1:

R1= 5K

Vx= 10V

TimeUp=1 ms

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.

Il risultato della conversione tensione-tempo è mostrato sull’LCD:

Figura 3.1:Esempio_1

Figura 3.2:Esempio_1

Inserire il titolo della tesi di laurea come intestazione

35

Esempio2:

R1= 100K

Vx= 10V

TimeUp=1ms

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:

Esempio3:

R1= 5K

Vx= 10V

Figura 3.3:Esempio_2

Figura 3.4:Esempio_2

Inserire il titolo della tesi di laurea come intestazione

36

TimeUp=140 ms

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.5:Esempio_3

Figura 3.6:Esempio_3

Inserire il titolo della tesi di laurea come intestazione

37

Esempio4:

R1= 100K

Vx= 10V

TimeUp=140ms

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.7:Esempio_4

Figura 3.8:Esempio_4

Inserire il titolo della tesi di laurea come intestazione

38

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

Inserire il titolo della tesi di laurea come intestazione

39

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 tensione-

tempo. 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.

Inserire il titolo della tesi di laurea come intestazione

40

Sviluppo futuri

Il voltmetro realizzato è solo una implementazione virtuale. In futuro è possibile trasferire

il codice su dispositivi reali e testarne la validità.

Inserire il titolo della tesi di laurea come intestazione

41

42

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

43

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.