You are on page 1of 39

APLICACIONES AVANZADAS

MICROCONTROLADORES.

MARZO 2015.

NDICE
Manejo de microcontroladores PIC:
Introduccin
Estructura de programacin configuracin y
manejo de puertos de entrada y salida de datos.
Configuracin y manejo del LCD.
Configuracin y manejo del ADC.

Programacin de controladores discretos


Escalamiento de datos
Programacin de un PID discreto
Ejemplos de aplicacin.

INTRODUCCIN
En la mayora de las aplicaciones industriales es comn el uso
de Controladores Lgicos Programables (PLC) para la
implementacin de sistemas de control. Sin embargo en la
actualidad existe la posibilidad de minimizar el costo de
implementacin de estos sistemas reemplazando el PLC por otro
controlador que sea ms barato por ejemplo un Circuito
Integrado Programable (PIC).
Los sistemas basados en PIC pueden ser mucho ms barato
para algunas aplicaciones industriales ya que solo necesitan de
una etapa conversora de potencia para poder manejar altos
niveles de corriente.

ESTRUCTURA GENERAL DE UN

PROGRAMA EN CCS

DIRECTIVAS DEL PREPROCESADOR


#Include:
Permite incluir libreras del compilador con funciones o especificaciones
sobre el funcionamiento del microcontrolador.
#Use delay:
Permite definir la velocidad (frecuencia) del oscilador que ocupar el
microcontrolador.
#Fuses:
Permite definir la configuracin de los bits internos del microcontrolador
(estos varan dependiendo del microcontrolador a ocupar).

ESTRUCTURA RUTINA PRINCIPAL DEL


PROGRAMA

DIRECTIVAS Y COMANDOS BSICOS


#byte:
Permite definir o redefinir un registro o variable usada dentro de la memoria
del microcontrolador, como un entero de 8 bits.
set_tris_x:
Permite configurar el puerto X de entrada o salida, colocando 0 para los bits
que quedarn como salida y 1 para los bits que quedarn como entrada.
delay:
Permite realizar un retardo en nano segundos, micro segundos o
milisegundos, segn se especifique, es un comando bsico del compilador.

EJERCICIO 1: COMPILACIN Y SIMULACIN DE


UN PROGRAMA EN CCS
Ejemplo y compilacin de un programa bsico en CCS.
Simulacin del programa en Proteus.
Caractersticas del Simulador.
Desafo: Realizar un programa que haga parpadear solo el bit 0
de los puerto a y b del Microcontrolador 16f877a.

SENTENCIAS DE CONTROL
(IF O SI CONDICIONAL):

SENTENCIAS DE CONTROL
(IF O SI CONDICIONAL):
Ejemplo de Aplicacin:
Activacin de un actuador al recibir una seal de voltaje positiva.

USO DE LIBRERAS PRECOMPILADAS


Se incluyen antes de comenzar la rutina principal. Los comandos propios de
las libreras solo se llaman con el nombre de la funcin correspondiente y los
argumentos si corresponde (el uso de estos comandos se describe
generalmente dentro de la propia librera)
Ej. Uso del LCD, usando librera propia del compilador

#include <16f84a.h>
#use delay(clock=4M)
#include <lcd.c>
void main(){ }

VISUALIZACIN DE DATOS POR EL LCD


Ejemplos de comandos para uso del LCD:
1.- String de datos simples:
Ej: lcd_putc(Curso de uC);
2.- Visualizacin de valores de variables:
Ej: printf(lcd_putc,contador=%d, cont);
3.- Uso de modificador para borrar pantalla:
Ej: lcd_putc(\f);

EJERCICIO 2: VISUALIZACIN DE DATOS POR EL


LCD
Previo: Lea la librera utilizada para manejo del LCD lcd.c que se encuentra
dentro del directorio del programa CCS en la carpeta Drivers.
1.- Investigue la funcin del comando lcd_init, lcd_gotoxy y el modificador
\b del comando lcd_putc.
2.- Dentro del mismo archivo (lcd.c) investigue la conexin del LCD con el
microcontroladores y realice esta conexin en Proteus (LM016L).

3.- Elabore un programa en CCS para visualizar la palabra Hola en el


centro de la segunda lnea del LCD.

UTILIZACIN DEL DEPURADOR DE PROTEUS


Para poder entrar en el modo de depuracin en primer lugar
es necesario cargar el archivo de extensin COF.
Luego es necesario pinchar el botn para ejecucin paso a
paso.

O mediante la pcin Debug->Start/Restart Debuging.

UTILIZACIN DEL DEPURADOR DE PROTEUS


Luego de comenzar la depuracin se habilitarn las
siguientes opciones en el men Debug:

UTILIZACIN DEL DEPURADOR DE PROTEUS


Para poder realizar la depuracin y ejecucin paso a paso de
nuestro programa en CCS podemos seleccionar las opciones
PIC CPU Source Code, PIC CPU Registers y PIC CPU
Variables.

UTILIZACIN DEL DEPURADOR DE PROTEUS


Dentro de las ventanas que se desplegarn se encuentra la
del programa que estamos simulando:

UTILIZACIN DEL DEPURADOR DE PROTEUS


Al pinchar con el botn
derecho dentro de la
ventana de cdigo se
despliega la ventana de
edicin, la cual nos permite
realizar variados procesos
dentro de la depuracin.

UTILIZACIN DEL DEPURADOR DE PROTEUS


Para poder comenzar con la simulacin paso a paso es
posible seleccionar alguna de las opciones que se
encuentran en la parte superior derecha del cuadro de
programa:

UTILIZACIN DEL DEPURADOR DE PROTEUS


Despus de comenzar con la depuracin las ventanas de
registros del uC y variables cambiarn dependiendo de la
programacin realizada:

EJERCICIO 3: Simulacin paso a paso de un


programa y visualizacin de variables
1.- Elabore un programa que permita desplegar el valor de una
variable llamada cont en la segunda lnea del LCD. Esta
variable debe cambiar su valor cada 1 [seg].
2.- Simule el programa paso a paso y visualice el valor de la
variable para cada ciclo del programa.
3.- Desafo: Elabore un programa que permita deslizar su
nombre en la primera y segunda lnea del LCD de forma
contnua.

USO DEL CONVERSOR ANLOGO/DIGITAL


Para utilizar el conversor ADC del microcontrolador es
necesario realizar los siguientes pasos para su configuracin:
1.- Especificar que el conversor a utilizar tiene 10 bits de
resolucin.
Ej: #device adc = 10
ADC

//Se especifica la cantidad de bits del

2.- Configurar los canales del uC a utilizar como ADC.


Ej: setup_adc_ports(AN0_AN1_AN3); //Se utilizan los
canales AN0, AN1 y AN3 como ADCs.

USO DEL CONVERSOR ANLOGO/DIGITAL


3.- Configurar el tiempo de muestro para la conversin.

Ej: setup_adc(ADC_CLOCK_INTERNAL); //Indica que el


muestreo de datos se realizar segn la velocidad interna
del uC.
4.- Especificar el canal desde el cual se leer el dato.
Ej: set_adc_channel(0); //Especifica que la siguiente lectura
del ADC se realizar desde el canal 0.

USO DEL CONVERSOR ANLOGO/DIGITAL


5.- Realizar la lectura del ADC y guardar el resultado en una
variable.
Ej: valor0= read_adc(); //La lectura del ADC del canal 0 se
guarda en la variable valor0 la cual debe ser numrica.

USO DEL CONVERSOR ANLOGO/DIGITAL


Escalamiento:
El escalamiento es uno de los procesos ms importantes del
proceso para control de un sistema, permite obtener un
valor segn la variable fsica que se est midiendo.
Ej: Escalar el valor entregar el ADC para que entregue una
seal de voltaje entre 0 y 5 volts.
Salida=5/1024*valor_adc;

Para el ejemplo anterior la salida ya que comienza desde


cero puede ser calculada como el valor mximo del valor de
la variable fsica divida entre 2^N con N=bits del ADC.

USO DEL CONVERSOR ANLOGO/DIGITAL


Escalamiento:
Cuando el escalamiento no comienza desde cero es
necesario conocer el comportamiento de la curva de
respuesta, por ejemplo si el comportamiento de la seal es
lineal entonces para realizar el escalamiento es necesario
aplicar la ecuacin de la lnea recta.
Ej: Realizar el escalamiento para una seal de temperatura
entre -10 C y +30 C.

USO DEL CONVERSOR ANLOGO/DIGITAL


Datos: Temperatura mnima -10 C
Temperatura mxima +30 C.

Entonces para realizar el escalamiento es necesario


establecer la ecuacin de la lnea recta, para lo cual es
necesario establecer 2 puntos para calcular la ecuacin:
Punto 1: (x0,y0) -> (T min, valor_adc_min) -> (0,-10C)
Punto 2: (x1,y1) -> (T max, valor_adc_max) -> (1024,+30C)

Pendiente: m=(y1-y0)/(x0-x1)=40/1024=0.0391

USO DEL CONVERSOR ANLOGO/DIGITAL


Luego se necesita obtener la ecuacin:
T=m*valor_adc+offset

Por lo cual para calcular el offset, reemplazamos el valor de


temperatura y valor del ADC en cualquiera de los dos puntos
extremos, por ejemplo para el punto mnimo:
-10C = 0.0391*0 + offset
Por lo tanto el offset de nuestro ejemplo es de -10 C, y la
ecuacin final que se debe programar en el uC es:
T= 0.0391*valor_adc - 10

EJERCICIO 4: Simulacin paso a paso y


visualizacin de lectura del ADC
1.- Elabore un programa que permita desplegar por el LCD el
valor de la un sensor de temperatura LM35.
2.- Simule el programa paso a paso y visualice por el LCD el
valor de la variable del ADC para cada ciclo del programa.
3.- Desafo: Elabore un programa que permita visualizar por el
LCD el valor de dos conversores ADCs.

MICROCONTROLADORES.
MARZO 2015

CONTROLADOR PID
Es importante, sealar que ms de la mitad de los controladores industriales
utilizan esquemas de control PID o PID modificado.
Los controles PID analgicos, son hidrulico, neumtico, electrnico, elctrico o sus
combinaciones. Actualmente, varios de estos se transforman en formas digitales
mediante el uso de microprocesadores.
Un controlador PID responde a la siguiente ecuacin:

donde et es el error de la seal y u t es la entrada de control del proceso.


k p es la ganancia proporcional, Ti es la constante de tiempo integral y Td es
la constante de tiempo derivativa.

Docente: Patricio Galarce A.

Existen distintas posibilidades de la realizacin prctica de un controlador PID, una


de las ms habituales es la realizacin en paralelo:

Docente: Patricio Galarce A.

ALGORITMO DE PROGRAMACIN EN
MICROCONTROLADOR
El muestreo (T) debe ser mayor que el tiempo de establecimiento del sistema en
lazo abierto. En el modelo Ziegler-Nichols se toma un valor T 0 / 4

Docente: Patricio Galarce A.

SOFTWARE ISIS PROTEUS


El software ISIS Proteus se utiliza para la implementacin y simulacin del
controlador PID, el cual presenta un modelo esquemtico de un sistema de
calefaccin denominado OVEN, al cual se le pueden variar sus caractersticas
funcionales tales como:

Temperature Ambient (C)= 25


Thermal Resistence to Ambient (C/W)= 0.7
Oven Time Constant (sec)= 10
Heater Time Constant (sec)= 1
Temperature coefficient (V/C)= 1
Heating Power (W)= 120
El modelo esquemtico OVEN contiene un terminal sensor T que entrega un
voltaje proporcional a la temperatura del sistema.

Docente: Patricio Galarce A.

ISIS PROTEUS INTERACTIVE ANALYSIS


Para obtener la respuesta del sistema en lazo abierto ante una entrada escaln, se utiliz
el sistema de anlisis interactivo de ISIS Proteus Interactive Analysis (Graph Mode Tool), el
cual interacta con el sistema OVEN mediante el uso de un Voltage Probe1 OV1(T), con
una entrada escaln de 0V a 2V para lo cual se utiliza el interruptor SW1.

Docente: Patricio Galarce A.

OBTENCIN DE GANANCIAS PARA EL


CONTROLADOR PID
Luego de obtener la respuesta en lazo abierto es posible obtener
los parmetros para aplicar el primer mtodo de Ziegler-Nichols:

Docente: Patricio Galarce A.

OBTENCIN DE GANANCIAS PARA EL


CONTROLADOR PID
Y posteriormente se obtienen las ganancias del controlador:
Ganancia proporcional

Ganancia Integral

Ganancia Derivativa

Docente: Patricio Galarce A.

IMPLEMENTACIN DE CONTROLADOR
DIGITAL PID EN MICROCONTROLADOR
Se requiere de un conversor Anlogo/Digital para ingresar el voltaje
entregado por el sensor T del modelo OVEN. Dado que dicho
terminal entrega 1V/C, se utiliza un divisor de voltaje para adecuar
la seal del sensor a niveles permitidos por el conversor A/D; en
este caso se utiliza un divisor de voltaje con factor 100, es decir, que
para una temperatura de 100C (100V) el conversor recibir 1V.
El control se realiza mediante una seal PWM proporcional a la
seal generada por el controlador.

Docente: Patricio Galarce A.

EJERCICIO 5: Simulacin paso a paso y


visualizacin de salida del controlador PID
1.- Simule el lazo abierto del horno (Oven), y visualice la salida
anloga.
2.- Simule el controlador PID y visualice la salida del
controlador mediante un grfico anlogo.
3.- Desafo: Simule el controlador tipo P, PD, PI y PID y vea las
diferencias entre cada uno de ellos y visualice la salida anloga
del controlador.