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