Multimetro Digital Con Pic 16F877A

lunes, 30 de mayo de 2011

Multimetro Digital Con Pic 16F877A


Implementación de un Instrumento Digital.

Resumen: La importancia de los instrumentos eléctricos de medición es incalculable, ya que mediante el uso de ellos se miden e indican magnitudes eléctricas, como corriente, carga, potencial y energía, o las características eléctricas de los circuitos, como la resistencia, la capacidad, la capacitancia y la inductancia. Además que permiten localizar las causas de una operación defectuosa en aparatos eléctricos en los cuales, como es bien sabidos, no es posible apreciar su funcionamiento en una forma visual, como en el caso de un aparato mecánico. Las mediciones eléctricas se realizan con aparatos especialmente diseñados según la naturaleza de la corriente; es decir, si es alterna, continua o pulsante. Los instrumentos se clasifican por los parámetros de voltaje, tensión e intensidad.



1.- Introducción: Es clara la importancia que tienen los equipos multifuncionales para los laboratorios, por  lo que es evidente la necesidad de sus usuarios de sacarles el máximo provecho para fortalecer su competencia ofreciendo calibración de calidad y alta confiabilidad.

El personal de ingeniería continuamente enfrenta una variedad de exigencias cada vez más complejas, es por esto que se han desarrollado técnicas efectivas para la medición de datos de forma rápida y confiable, que ponen todo en manos de la instrumentación.
Para esta práctica se usará el PIC16F877. El resultado se mostrará en un LCD de 16x2. Para el caso del PIC, es necesario asignar ciertos valores a un par de registros.

2.- Planteamiento:
Ante el avance de las tecnologías en la educación se planea incorporar el uso del PC en prácticas de laboratorio en asignaturas como mediciones y redes eléctricas, para lo cual, se requiere entre otras cosas, construir un instrumento digital que permita la medición de: Voltaje, Corriente, Frecuencia, Período, Ciclo útil Rango, Capacitancia.

La selección de la medición a realizar se hará a través de “menús” utilizando una pantalla LCD de caracteres y pulsadores, simulando un teclado de entrada.

La visualización de la variable medida también se hará utilizando la pantalla LCD.

Es necesario que todos los valores se presenten en la pantalla con al menos un digito decimal en notación punto flotante. El equipo una vez programado, deberá trabajar independiente del PC, adicionalmente.

3.- Los convertidores A/D: Es un dispositivo electrónico capaz de convertir una entrada analógica de voltaje en un valor binario, la señal analógica, que varía de forma continua en el tiempo, se conecta a la entrada del dispositivo y se somete a un muestreo a una velocidad fija, obteniéndose así una señal digital a la salida del mismo.

Para realizar sus funciones en convertidor ADC tiene que efectuar los siguientes procesos:
  1. Muestreo de la señal analógica.
  2. Cuantización de la propia señal.
  3. Codificación del resultado de cuantización.
El muestreo se realiza tomando diferentes muestras de tensiones o voltajes en diferentes puntos de la onda. La cuantización es el siguiente paso, para esta parte del proceso los valores continuos de la onda se convierten en series de valores numéricos decimales discretos correspondientes a niveles de voltaje que contiene la señal analógica. Y por ultimo la codificación, los valores de las tomas de voltaje se representan numéricamente por medio de códigos y estándares previamente establecidos.

4.- Software Utilizado: Hemos programado el PIC 16F876 usando el PROTON IDE, que es el componente central del sistema ya que permite trabajar cómodamente en BASIC, facilitando mucho el proceso de programación.


Es un paquete de software para el diseño de circuitos electrónicos que incluye captura (composición) de los esquemas, simulación analógica y digitales combinadas y diseño de circuitos impresos. Está disponible en dos versiones con funcionalidad limitada: "Proteus VSM" y "Proteus PCB Design"

El paquete está compuesto por dos programas: ISIS, para la captura y simulación de circuitos; y ARES, para el diseño de PCB's. En los ordenadores que tienen activada la funcionalidad VSM sólo se puede ejecutar el programa ISIS. En ellos se realizo el diseño del multímetro digital. También permite simular y depurar el funcionamiento de todo el sistema ejecutando el software paso a paso, insertando puntos de ruptura, viendo el contenido de registros y posiciones de memoria, etc y comprobando si la respuesta del hardware es la correcta.

5.- Hardware Utilizado: Como el objetivo especifica el hardware esta basado en el PIC 16F877. Sobre este microcontrolador se carga el software, En él se resume toda la lógica del mismo.
Sus funciones principales son:
- Realizar la comunicación con el tablero.
- Realizar la comunicación con la pantalla.
- Controlar la información que se despliega en el mismo.

En la figura adjunta se muestra el diagrama de pines del microcontrolador. Los pines que simulan las entradas y salidas son 12 pines. Las entradas están configuradas entre los pines 2 y 7, y las salidas entre los pines 11 y 16.

6.- La Familia del PIC16F877
El microcontrolador PIC16F877 de Microchip pertenece a una gran familia de microcontroladores de 8 bits (bus de datos) que tienen las siguientes características generales que los distinguen de otras familias:
- Arquitectura Harvard
- Tecnología RISC
- Tecnología CMOS
Estas características se conjugan para lograr un dispositivo altamente eficiente en el uso de la memoria de datos y programa y por lo tanto en la velocidad de ejecución.
Microchip ha dividido sus microcontroladores en tres grandes subfamilias de acuerdo al número de bits de su bus de instrucciones:

7.- Características generales del PIC16F877
La siguiente es una lista de las características del PIC16F877:
CPU:
- Tecnología RISC
- Sólo 35 instrucciones que aprender
- Todas las instrucciones se ejecutan en un ciclo de reloj, excepto los saltos que requieren dos
- Frecuencia de operación de 0 a 20 MHz (200 nseg de ciclo de instrucción)
- Opciones de selección del oscilador
Memoria:
- Hasta 8k x 14 bits de memoria Flash de programa
- Hasta 368 bytes de memoria de datos (RAM)
- Hasta 256 bytes de memoria de datos EEPROM
Lectura/escritura de la CPU a la memoria flash de programa
- Protección programable de código
- Stack de hardware de 8 niveles
Reset e interrupciones:
- Hasta 14 fuentes de interrupción
- Reset de encendido (POR)
- Timer de encendido (PWRT)
- Timer de arranque del oscilador (OST)
- Sistema de vigilancia Watchdog timer.
Otros:
- Modo SLEEP de bajo consumo de energía
- Programación y depuración serie “In-Circuit” (ICSP) a través de dos patitas
- Rango de voltaje de operación de 2.0 a 5.5 volts
- Alta disipación de corriente de la fuente: 25mA
- Rangos de temperatura: Comercial, Industrial y Extendido
- Bajo consumo de potencia:
o Menos de 0.6mA a 3V, 4 Mhz
o 20 μA a 3V, 32 Khz
o menos de 1μA corriente de standby (modo SLEEP).

8.- La Memoria de Programa
Los PIC de rango medio poseen un registro Contador del Programa (PC) de 13 bits, capaz de direccionar un espacio de 8K x 14, como todas las instrucciones son de 14 bits, esto significa un bloque de 8k instrucciones. El bloque total de 8K x 14 de memoria de programa está subdividido en 4 páginas de 2K x 14.

9.- Características Principales del Sistema de desarrollo pic16f877
·         Permite Leer y escribir directamente en los PUERTOS o la RAM sin necesidad de enviar ningún programa adicional.
·         Permite enviar programas al sistema, probarlos, detenerlos, e incluso monitorizar los puertos y la RAM mientras está en funcionamiento.
·         Dispone de lectura automática de datos con una frecuencia configurable por el usuario.
10.- Panel de control: En este panel de control, se trata de un menú donde, se pueden diferenciar cuatro mediciones, que son voltaje, frecuencia, ciclo útil y capacitancia, que cuya formación iremos describiendo a continuación.
El voltímetro: Instrumento digital diseñado para medir y presentar en forma digital una variable tensión de la corriente eléctrica. Este diseño de multímetro se encuentra en un rango de (10 Vdc a +10 Vdc). Salirse de éste rango de operación puede ser motivo de deterioro del mismo.
Cuando la tecnología nos permite saber, cual es la tensión, con bastante precisión, no se debe seguir con dispositivos que solo indican que ‘‘hay’’ tensión pero no exactamente El voltímetro es tal vez el instrumento que más aplicaciones tiene. Fuera de la función específica de medir un voltaje, existen muchos parámetros que se miden indirectamente con voltímetros.
Para la creación del mismo se necesitara un conversor ADC, que facilita su interconexión con un microprocesador,

Frecuencia: Como sabemos la frecuencia es la tasa de recurrencia de un evento cíclico o periódico. En una forma de onda análoga o digital, podemos invertir el periodo de la señal para obtener la frecuencia. A menor sea el periodo, mayor será la frecuencia y viceversa. Para obtener la frecuencia de una señal digital, es muy sencillo, el periodo es directamente el tiempo entre flancos de subida, o entre flancos de bajada.

Capacitancia: La capacitancia siempre es una cantidad positiva y puesto que la diferencia de potencial aumenta a medida que la carga almacenada se incrementa. En consecuencia la capacitancia de un dispositivo es una medida de su capacidad para almacenar carga y energía potencial eléctrica.

En la actualidad, en los equipos de medición de capacitancia solamente requiere de conectar el dispositivo bajo medición entre sus terminales y apretar un botón para que la lectura aparezca en un indicador, aunque también existen equipos de tipo analógico que requieren además manipular algunas perillas y visualizar una pequeña aguja dentro de una escala graduada para llevar a balance un circuito puente y realizar la lectura en base a multiplicadores y escalas limitadas en resolución.






Device 16F877

XTAL 20
Input PORTD

ALL_DIGITAL=true

Declare ADIN_RES 10
Declare ADIN_TAD FRC
Declare ADIN_STIME 50

Input PORTD

TRISA=000011
ADCON1=%11000000

CCP2_PIN = PORTC.1

'Declaracion pines pantalla LCD
Declare LCD_DTPIN PORTB.4    ' Pin de Datos  LCD conectado al PORTB.4
Declare LCD_ENPIN PORTB.3    ' Pin de Enable LCD conectado al PORTB.3
Declare LCD_RSPIN PORTB.1    ' Pin de RS     LCD conectado al PORTB.1

TRISB.2 = %0                  ' Declara a PORTB.2 como Salida Digital
PORTB.2 = %0 

Output PORTC.2
Output PORTC.3
Output PORTC.1

'Programacion para la LCD

Print $FE,$40,$1F,$10,$10,$10,$10,$10,$10,$10    'esquina izquierda
Print $FE,$50,$1F,$01,$01,$01,$01,$01,$01,$01   'esquina derecha
Print $FE,$48,$10,$10,$10,$10,$10,$10,$1F,$00    'esquina izquierda abajo
Print $FE,$58,$01,$01,$01,$01,$01,$01,$1F,$00    'esquina derecha abajo
Print $FE,$60,$00,$04,$06,$07,$06,$04,$00,$00  'flecha fila 1
Print $FE,$68,$00,$00,$00,$1F,$0E,$04,$00,$00   'flecha hacia abajo
Print $FE,$70,$00,$00,$04,$0E,$0E,$1F,$00,$00    'flecha hacia arriba

'declaraciones

Dim voltage As Float
Dim voltage1 As Float
Dim resultado As Float
Dim resultado1 As Float
Dim resultado2 As Float
Dim resis As Float
Dim resistencia As Float
Dim capacitancia As Float
Dim frecuencia As Float
Dim periodo As Float
Dim ciclo As Float
Dim x As Float
Dim y As Float
Dim f As Float
Dim cicloutil As Float

inicio:

Print At 1,16,2
Print At 2,16,3
Print At 2,1,1
Print At 1,1,0
Print At 1,1, "Alumno Fulano"
Print At 2,1, "Alumno Fulano"
DelayMS 2500
Cls
Print At 1,16,2
Print At 2,16,3
Print At 2,1,1
Print At 1,1,0
Print At 1,7, "Micro"
Print At 2,3, "Procesadores"
DelayMS 2500
Cls
Print At 1,16,2
Print At 2,16,3
Print At 2,1,1
Print At 1,1,0
Print At 1,4, "MULTIMETRO"
Print At 2,6, "DIGITAL"
DelayMS 2500
Cls
uno:
Print  $FE, 1
Print At 1,1, "1"
Print At 1,2,4
Print At 1,3, " VOLTIMETRO   "
Print At 2,1, "2"
Print At 2,2,4
Print At 2,3, " FRECUENCIA     "
Print At 2,16,5

uno1:
pause 500
If PORTD.1=%1 Then
GoTo dos
EndIf
If PORTD.2=%1 Then
uno11:
voltage=ADIn 0
resultado1=(voltage*10)/1023
voltage1=ADIn 1
resultado2=(voltage1*10)/1023
resultado=resultado1 - resultado2
Print  $FE, 1
Print At 1,5,  SDEC2 resultado," VDC    "
Print At 2,1, "  Escala 10VDC  "
pause 1000
If PORTD.4=%1 Then
GoTo control
EndIf
GoTo uno11
EndIf

'frecuencia

If PORTD.3=%1 Then
uno111:
f = Counter PORTD.5 ,1000
DelayMS 1200
frecuencia=f/1000
Print  $FE, 1
Print At 1,1, "Esc: 1-30 Khz"
Print At 2,1,"F = ", DEC3 frecuencia," Khz"
DelayMS 500
If PORTD.4=%1 Then
GoTo control
EndIf
GoTo uno111
EndIf
GoTo uno1


dos:
pause 500
Print  $FE, 1
Print At 1,1, "1"
Print At 1,2,4
Print At 1,4, "CICLO UTIL"
Print At 2,1, "2"
Print At 2,2,4
Print At 2,4, "CAPACITANCIA"
Print At 1,16,6
dos1:
If PORTD.0=%1 Then
GoTo uno
EndIf

'Ciclo util

If PORTD.2=%1 Then
dos11:
HPWM 2,x,y
f=Counter PORTD.5,1000
frecuencia=1/f
periodo=1/frecuencia
DelayMS 300
ciclo= PulsIn PORTD.5,1
cicloutil=ciclo/periodo
cicloutil=20000*cicloutil
Print  $FE, 1
Print At 1,1, "Ciclo Util"
Print At 2,1, Dec cicloutil,"%"
DelayMS 500

If PORTD.4=%1 Then
GoTo control
EndIf
GoTo dos11
EndIf

'capacitancia

If PORTD.3=%1 Then
dos111:
High PORTC.3
DelayMS 300
resis= RCIn PORTC.3 , High
capacitancia=resis/950
Print  $FE, 1
Print At 1,1, "Esc: 0-100 uF"
Print At 2,1,"C = ",DEC2 capacitancia," uF"
DelayMS 500
If PORTD.4=%1 Then
GoTo control
EndIf

GoTo dos111
EndIf
GoTo dos1

control:
GoTo uno



13.- Conclusión: El multímetro digital es un instrumento electrónico de medición que generalmente calcula voltaje, resistencia y corriente, aunque dependiendo del modelo de multímetro puede medir otras magnitudes como capacitancia y temperatura. Gracias al multímetro podemos comprobar el correcto funcionamiento de los componentes y circuitos electrónicos.

En general, los instrumentos de medición ofrecen la precisión necesaria para la ejecución de incontables actividades tanto profesionales como cotidianas que requieren atención.


 Nota: Revisar este material es publicado con la finalidad de que sirva como ayuda.


15 comentarios :

  1. Fua no sabes como me ayudaste, precisamente tengo que hacer un proyecto de llenado de tanques pero la situacion es que el proceso de vaciado de los tanques tiene que ser mostrado en tiempo real en la pantalla lcd, así que esto me cayo como anillo al dedo, te felicito por tu blog. Exitos en lo que te propongas.

    ResponderEliminar
  2. muy buen blog, te felicito el niño de oro :D

    ResponderEliminar
  3. Hola, oye que extension debe de tener el archivo que contiene el programa?, gracias

    ResponderEliminar
  4. no veo los valores de los componentes

    ResponderEliminar
  5. Instrumentos digitales proporcionan la oportunidad de fabricar para producir las cosas de acuerdo a la precisión exacta. Esto ha aumentado la utilidad de los instrumentos digitales, así como productos tecnológicos en el campo de la construcción.

    ResponderEliminar
  6. como hago para medir un capacitor; donde pongo las puntas?...

    ResponderEliminar
  7. BUEN PROGRAMA..... ESTA EN PROTON IDE

    ResponderEliminar
  8. no entioendo donde poner las puntas y
    cuales son las caracteristicas osea tiene voltímetro pero hazta cuanto capacímetro hazta cuanto ohmetro etc muchas gracias

    ResponderEliminar
  9. ya lo simule y solo me muestra las letras en la pantalla pero para medir otros instrumentos que hago?

    ResponderEliminar

Gracias por su comentario