IND205_P

3
Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones Congreso 2010, Página 1 Voltímetro digital con PIC16F819 Diego J. Scinardo Ratto Fac. Ingeniería - UNMdP Argentina Correo-e: [email protected] Abstract. Si bien el título hace pensar en algo “básico” para estos tiempos, el fin de este artículo radica en mostrar la simplicidad de su construcción, ya que con una mínima cantidad de componentes adicionales, se obtiene un dispositivo versátil y preciso a la vez, y que con pocas modificaciones se lo puede convertir en otro instrumento de medición para cualquier tipo de variable. Además, se muestra la capacidad de un microcontrolador PIC de gama media para prestaciones de este tipo. 1 Introducción Muchas veces uno piensa que cuando se topa con proyectos que requieren manejo de entradas para registro de variables de medición y presentación de datos de diversas formas, necesariamente se tiene que utilizar microcontroladores de gama alta, ya que lo primero que se viene a la mente es la capacidad de memoria o la cantidad de pines disponibles, pero no necesariamente esto es siempre así. En el presente artículo, se dará a conocer una forma simple y versátil de diseño de un voltímetro con display de 7 segmentos, y con un simple PIC de 18 pines y unos pocos componentes adicionales, esto es realmente posible. 2 Esquema del voltímetro Tal como se hizo mención en el apartado anterior, el diseño básicamente está constituido por un microcontrolador PIC16F819, tres displays de 7 segmentos y demás componentes adicionales, tal como se observa en la Fig. 1. El consumo de corriente es mínimo, lo cual permite su utilización con pilas o baterías. Fig. 1 2.1 Descripción del microcontrolador El “corazón” de este dispositivo es el microcontrolador de 8 bits PIC16F819 de Microchip, con las siguientes características: 2048 bytes de memoria flash (ROM) 256 bytes de memoria RAM Convertidor A/D de 8 bits con 5 canales disponibles. 2 temporizadores de 8 bits y uno de 16 bits. El código o “firmware” que se ejecuta en el microcontrolador fue desarrollado en Lenguaje C utilizando el software “CCS PIC C Compiler”. Para cargarlo, se utilizó un programador de PIC compatible con el programador JDM y el programa “WinPIC800”.

description

voltimetro

Transcript of IND205_P

  • Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

    Congreso 2010, Pgina 1

    Voltmetro digital con PIC16F819

    Diego J. Scinardo Ratto Fac. Ingeniera - UNMdP

    Argentina

    Correo-e: [email protected]

    Abstract. Si bien el ttulo hace pensar en algo bsico para estos tiempos, el fin de este artculo radica en mostrar la simplicidad de su construccin, ya que con una mnima cantidad de componentes adicionales, se obtiene un dispositivo verstil y preciso a la vez, y que con pocas modificaciones se lo puede convertir en otro instrumento de medicin para cualquier tipo de variable. Adems, se muestra la capacidad de un microcontrolador PIC de gama media para prestaciones de este tipo.

    1 Introduccin Muchas veces uno piensa que cuando se topa con proyectos que requieren manejo de entradas para registro de variables de medicin y presentacin de datos de diversas formas, necesariamente se tiene que utilizar microcontroladores de gama alta, ya que lo primero que se viene a la mente es la capacidad de memoria o la cantidad de pines disponibles, pero no necesariamente esto es siempre as. En el presente artculo, se dar a conocer una forma simple y verstil de diseo de un voltmetro con display de 7 segmentos, y con un simple PIC de 18 pines y unos pocos componentes adicionales, esto es realmente posible.

    2 Esquema del voltmetro Tal como se hizo mencin en el apartado anterior, el diseo bsicamente est constituido por un microcontrolador PIC16F819, tres displays de 7 segmentos y dems componentes adicionales, tal como se observa en la Fig. 1. El consumo de corriente es mnimo, lo cual permite su utilizacin con pilas o bateras.

    Fig. 1

    2.1 Descripcin del microcontrolador El corazn de este dispositivo es el microcontrolador de 8 bits PIC16F819 de Microchip, con las siguientes caractersticas:

    2048 bytes de memoria flash (ROM)

    256 bytes de memoria RAM

    Convertidor A/D de 8 bits con 5 canales disponibles.

    2 temporizadores de 8 bits y uno de 16 bits.

    El cdigo o firmware que se ejecuta en el microcontrolador fue desarrollado en Lenguaje C utilizando el software CCS PIC C Compiler. Para cargarlo, se utiliz un programador de PIC compatible con el programador JDM y el programa WinPIC800.

  • Congreso 2010, Pgina 2

    3 Principio de funcionamiento Bsicamente, lo que se hace es tomar una muestra de la tensin presente en la entrada del convertidor A/D del PIC y mostrar su valor en los tres displays de 7 segmentos. Con esta configuracin, es posible mostrar valores de tensin de tres dgitos, y dependiendo de cmo se lo programe tanto por hardware como por software, es posible mostrar valores de tensin de 0 a 9,99 volts o de 0 a 99,9 volts o de 0 a 999 volts.

    Hecha la aclaracin, se proceder a explicar la configuracin de ambas partes.

    3.1 Configuracin del hardware asociado

    Para adecuar la entrada del conversor analgico-digital con la tensin a medir, basta con colocar un simple divisor de tensin, tal como se lo muestra en la Fig. 1. El mismo permite establecer el fondo de escala del voltmetro en relacin a la mxima tensin de entrada soportada por el microcontrolador, en este caso 5V.

    En la Tabla 1 puede observarse los diferentes valores de las resistencias R9 y R10 para los tres casos previstos:

    Fondo de escala Valor R9 Valor R10 9,99V 1K 1K 99,9V 10K 560 999V 100K 470

    Tabla 1

    Como medio de proteccin, se agreg en paralelo con la salida del divisor resistivo un diodo zener de 5,1V a fin de limitar la tensin mxima ante posibles aumentos de la misma debido a excesos en la entrada de dicha red divisora.

    3.2 Configuracin del programa En cuanto a la configuracin que debe incluirse en el cdigo a programar dentro de la memoria del PIC, se debe configurar la lectura del conversor A/D en base a la tensin mxima que estar presente en la entrada, adems de la presentacin del valor ledo en los displays de 7 segmentos.

    Una forma posible entre tantas de hacer esto, puede ser la siguiente:

    1. Se determina la tensin mxima a presentar en los displays teniendo en cuenta la resolucin del conversor analgico-digital (en este caso, al ser de 8 bits, se tienen 256 valores diferentes disponibles, por lo que la mxima tensin leda ser cuando el conversor arroje el valor ledo como 255. Con una simple regla de tres, se obtiene la

    expresin que convierte el valor obtenido del conversor a la tensin presente en la entrada del mismo.

    2. Una vez realizada la conversin a tensin, se procede a desarmar el valor obtenido a fin de poder presentarlo en cada uno de los tres displays presentes en el dispositivo. Se lo puede realizar dividiendo al valor de tensin por un coeficiente equivalente a colocar slo la parte entera de dicho nmero. Por ejemplo, si el voltmetro tiene como fondo de escala a 9,99V, si tuviese ese valor presente en la entrada se puede hacer que la tensin que entrega el A/D sea 999V, y sabiendo que el primer digito de la tensin a ser mostrada en el display de izquierda a derecha corresponde al nmero 9 (parte entera), basta con dividir al valor del conversor convertido a tensin por el valor 100 para que slo me quede con la parte entera. Para el segundo dgito, se hace la resta entre la tensin del conversor y el primer dgito multiplicado por 10 para poder abarcar dos dgitos y as obtener el valor que va en el segundo dgito, y para el tercer dgito, se hace tambin una resta, pero ahora el sustraendo es la suma de el primer dgito multiplicado por 100 ms el segundo dgito multiplicado por 10. Para una visin ms clara de lo dicho, las lneas de cdigo presentes en la Fig. 2 hacen esto posible:

    Fig. 2

    Para visualizar cada nmero obtenido en cada uno de los displays correspondientes, basta con identificar cada nmero con un valor hexadecimal equivalente en el display, guardando cada nmero posible (0 a 9) en un vector del que se toman los nmeros para ser presentados en cada uno de los displays. Asociado a la presentacin, el punto decimal, si corresponde, debe encenderse o bien en el primer dgito de la izquierda (9,99V) o en el central (99,9V), dependiendo de cada caso. Y la actualizacin del display debe hacerse con una frecuencia de por lo menos 30Hz a fin de evitar parpadeos. Para ello, pueden utilizarse los temporizadores incorporados en el microcontrolador para realizar esa tarea.

    Como dato adicional, el tiempo de acceso al dato presente en el buffer del conversor A/D debe ser tal que se permita una lectura estable del valor obtenido, de lo contrario se tomarn valores errneos. Un tiempo de espera prudente para el acceso podra ser de aproximadamente 100 seg.

  • Segundo Congreso Virtual, Microcontroladores y sus Aplicaciones

    Congreso 2010, Pgina 3

    4 Pruebas realizadas Una vez armado el circuito y programado el microcontrolador, se procedi a realizar una prueba de funcionamiento del dispositivo. Utilizando una fuente de alimentacin regulable, se fue analizando la variacin de tensin y las lecturas que arrojaba el voltmetro bajo prueba, pudindose observar que en ningn momento hubo un error superior al 3%.

    Adems, se utiliz el oscilador interno provisto en el PIC, el cual mantuvo un funcionamiento general ptimo de todo el circuito, con lo que se suprime la necesidad de utilizar redes RC o cristales para generar la seal de reloj requerida por el microcontrolador.

    5 Conclusin En base a lo explicado en el presente artculo, se puede decir que se est ante un diseo verstil y simple que brinda la posibilidad de ser modificado para otros requerimientos especficos. El mismo puede tomarse como referencia para desarrollar otros instrumentos de medicin ms sofisticados, ya que una vez que se entiende el modo de funcionamiento se lo pude extrapolar a niveles de complejidad superiores.

    Tambin es posible reemplazar partes por otras, como utilizar un display LCD en lugar de los de 7 segmentos, y as poder brindar mayor informacin en pantalla. Lo mismo puede hacerse con las mediciones, ya que este microcontrolador posee 5 canales para conversin A/D, por lo que se permite la realizacin simultnea de ms de una medicin.

    Referencias [1] Kernighan, Brian. El lenguaje de programacin C. Segunda edicin. Prentice Hall. 1991.

    [2] Microchip Semiconductor. PIC16F819 Datasheet. www.microchip.com.

    [3] Di Jasio, Lucio; Wilmshurst, Tim; Ibrahim, Dogan; Morton, John; Bates, Martin P; Smith, Jack; Smith D.W; Hellebuyck, Chuck. PIC Microcontrollers: Know It All. Newnes. 2008.

    Copyright 2010. nombre del autor: El autor delega a la Organizacin del Segundo Congreso Virtual de Microcontroladores la licencia para reproducir este documento para los fines del Congreso ya sea que este artculo se publique en el sitio web del congreso, en un CD o en un documento impreso de las ponencias del Segundo Congreso Virtual de Microcontroladores.