Вы находитесь на странице: 1из 30

SIMULACION EN PROTEUS DE UN CONTROLADOR DE TEMPERATURA CON RANGO

DE 0 150 UTILIZANDO EL CONPILADOR XC8

DISEADO POR: JAVIER ENRIQUE CASTRO CANTILLO

SENA

CENTRO NACIONAL COLOMBO ALEMAN

27/03/2014

BARRANQUILLA / ATLANTICO

1
TABLA DE CONTENIDO

1- OBJETIVO
2- OBJETIVOS ESPECIFICOS
3- JUSTIFICACION DEL PROYECTO
4- INTRODUCCION
5- MARCO TEORICO
5.1- SENSORES (RTD)
5.2- ACONDICIONAMIENTO DE SEALES
5.3- CONVERTIDORES DE SEAL ANALGICA A SEAL DIGITAL
5.4- MICROCONTROLADOR
5.5- DISPLAY DE CRISTAL LQUIDO O LCD
5.6- TECLADO MATRICIAL 4X3
6- DESARROLLO DEL PROYECTO
6.1- SELECCIONE LA RTD LM35
6.2- ADC DEL PIC 18F2550
6.3- INTERFACE CON MICROCONTROLADOR A LCD
6.4- INTERFACE CON MICROCONTROLADOR AL TECLADO MATRICIAL 4X3
6.5- DISEO Y SIMULACIN DEL CONTROL DE TEMPERATURA
7- CONCLUCION

2
1- OBJETIVO.
Controlar la temperatura de un sistema con un rango de 0-150C mediante
simulacin en los programas Proteus 8 y el compilador xc8.

2- OBJETIVOS ESPECIFICOS DEL PROYECTO


- tener instalado Proteus 8 y el compilador xc8.
- Disear en Proteus un driver para el control de temperatura.
- Estudiar y analizar cada uno de los procesos que se ejecutan en el sistema de
control de temperatura planteado.
- Realizar el cdigo de programacin xc8.
- Buscar fuentes de informacin concreta y confiable acerca del tema.

3- JUSTIFICACION DEL PROYECTO


En la industria es vital importancia el ajuste de la variable (presin, temperatura,
nivel) a cierto lineamiento requeridos para poder llevar acabo la ejecucin de un
procedimiento que busca producir un bien o servicio. Este ajuste seria inalcanzable
sin el uso de tcnicas propias de la electrnica, instrumentacin e industrial. Aqu
radica lo indecible y saber manejar cualquier mtodo de control de variables. en esta
ocasin se realiz la simulacin de un control de temperatura en el programa Proteus
8, lo cual es muy provechoso por que aporta una visin ms clara sobre
acontecimientos, frecuentes que se pueden dar en la labor del mantenimiento
electrnico instrumental industrial.

4- INTRODUCCION.
En este proyecto se observara, un mtodo cuyo fin es mantener la temperatura
adecuada en un sistema de calefaccin. Es en este donde intervienen los controles
que rigen el comportamiento de la temperatura.

Teniendo en cuenta lo anterior, se procede a realizar el diseo y simulacin en el


programa Proteus 8 de un controlador de temperatura con rango de 0 150, se
obtiene la temperatura del ambiente mediante un sensor. Esta es acondicionada
(segn el tipo de control a tratar) y controlada por microcontroladores que activan y
desactivan el sistema de calefaccin con lo cual se aumenta o disminuye la
temperatura. Por ejemplo, en el caso de un Horno, si la temperatura es mayor,
disminuir la potencia del mismo, y si es demasiado baja, aumentar su potencia. A
continuacin se describe el desarrollo del proyecto, con todos los procedimientos y
Operaciones que se deben llevar a cabo para lograr el manejo eficiente y eficaz de
un controlador de temperatura en cualquier proceso

3
5. MARCO TEORICO

5.1. SENSORES (RTD)


RTD significa (Resistive Temperature Detector). Son sensores de temperatura cuyo
principio fsico se basa en la resistividad de los metales, es decir, en variacin de la
resistencia de un conductor con la temperatura. Esto se debe a que al incrementar
la temperatura los iones vibran con mayor amplitud y as se dificulta el paso de los
electrones a travs del conductor.

La variacin de la resistencia viene dada por la ecuacin(1):


R= R0(1+ T) EC 1
Donde R0 es la resistencia inicial.
T= T-T_0 es decir variacin de la temperatura.
es el coeficiente de temperatura del conductor. Debe ser alto.
Las caractersticas que deben tener los metales son un alto coeficiente de
resistencia y alta resistividad para que tenga mayor sensibilidad y que haya una
relacin lineal entre la resistencia y la temperatura.

El platino es el metal ms ptimo, ya que, adems de cumplir las caractersticas,


tiene un rango de temperatura mayor; pero, puesto que es muy caro, se utilizan
otros como el nquel o cobre.

Los dos tipos de RTD son: bobinado que permite la contraccin y dilatacin del
material sensible y laminado que tiene menor masa trmica, es ms barato, aunque
con menor estabilidad.

Las ventajas de utilizar este tipo de sensores es que tiene un margen de


temperatura muy amplio; como tienen una gran sensibilidad, las medidas son dadas
con mucha exactitud y repetitividad; presentan derivas en la medida de

0,1 C al ao por lo que son muy estables en el tiempo. Los inconvenientes son que
el coste es ms alto que el de los termopares o termistores, tambin su tamao ser
mayor limitando as su velocidad de reaccin; son frgiles ante vibraciones, golpe;
se autocalientan ms. Por tanto, los sensores RTD son los ms apropiados para
aplicaciones en las que la exactitud de la medida es lo importante.

.2. ACONDICIONAMIENTO DE SEALES

4
Acondicionador de seal: elemento o elementos de un sistema de medida o control
que procesan la seal procedente de un transductor tanto para adecuarla a un nuevo
formato, como para mejorar su calidad.
Procesos de acondicionamiento de seales
Algunos de los procesos de acondicionamiento de seal son:

Proteccin para evitar daos a la siguiente etapa debidos a sobretensiones,


sobrecorrientes o inversin de polaridades. Aislamiento galvnico, pudindose utilizar
para esto transformadores o enlaces pticos (opto-acopladores, fotodiodo-
fototransistor, fibra ptica).

Adecuacin de la seal para la siguiente etapa, conversin corriente/presin


Conversin tensin/corriente, conversin corriente/tensin, conversin
tensin/frecuencia, puente de Wheatstone, para tener en la salida un voltaje
Proporcional, etc.

Nivel adecuado de la seal, por medio de la amplificacin y adaptacin de


impedancias.

Eliminacin o reduccin de ruidos o interferencias, por medio de filtros o


apantallamiento electromagntico.

Linealizacin de la seal, caso tpico la seal que producen, por ejemplo, algunos
sensores de caudal.
En general la seal de salida de un sensor se debe adecuar para la siguiente etapa.

- La seal puede ser demasiado pequea y se debera amplificar,


- La seal puede presentar interferencias o ruidos que se deben eliminar,
- La seal puede ser no lineal y requerir una linealizacin,
- La seal puede ser analgica y requerir su digitalizacin,

5
- La seal puede ser digital y necesitar convertirse en analgica,
- La seal puede ser un cambio en el valor de una resistencia y convertirse en una
variacin de voltaje o corriente.
- La seal puede ser una variacin de voltaje y requerir una variacin de corriente de
valor adecuado, etc.

.3. CONVERTIDORES DE SEAL ANALGICA A SEAL DIGITAL (CAD)

La conversin A/D es un proceso de cuantizacin en la cual una seal analgica


es representada por su equivalente en estados binarios La digitacin de las
seales tienen sus desventajas:

La seal analgica nunca puede ser exactamente representada o


reconstruida Siempre habr algo de error.

Una seal digitada, cuando se transmite por un canal de Comunicacin,


requiere un ancho de banda mayor que la del canal original. Por ejemplo,
un canal telefnico de voz anlogo requiere un ancho de banda de
aproximadamente 4Khz pero su equivalente digital el canal es de 64 kbps

Clasificacin

Existen diversos tipos de CAD; los ms comunes son los de aproximaciones


Sucesivas, rampa, doble rampa y destello.

CAD aproximaciones sucesivas: El de aproximaciones sucesivas es quizs el


mtodo ms frecuente.

6
El voltaje se genera mediante un temporizador, el cual emite una secuencia regular de
impulsos que se cuentan en forma binaria y la palabra binaria resultante se convierte a
un voltaje analgico utilizando un convertidor digital-analgico.

Este voltaje aumenta en escalones y se compara con el voltaje de entrada analgico del
sensor.

Cuando el voltaje generado por el temporizador sobrepasa el voltaje analgico de la


entrada, los impulsos del temporizador se detienen mediante el cierre de una compuerta
(llave electrnica).

La salida que en ese momento produce el contador es una representacin analgica de


la entrada analgica; si la comparacin se puede realizar iniciando el conteo en 1, el bit
menos significativo, y luego continuar bit tras bit en forma ascendente, el mtodo ms
rpido es el de las aproximaciones sucesivas. En este caso se elige el bit ms
significativo que sea inferior al valor analgico y despus se aaden bits cuyo valor
disminuye en forma gradual de manera sucesiva y no excedan el valor analgico. Por
ejemplo se inicia con una comparacin con 1000;

si este nmero es demasiado grande probamos con 0100, si ahora es demasiado


pequeo se prueba con 0110, si resulta que es grande se prueba con 0101.
Dado que cada uno de los bits de la palabra se prueba en secuencia, en una palabra de
n_bits slo se requieren n pasos para hacer la comparacin. Si la frecuencia es del reloj
es f, tenemos que el tiempo entre impulsos es 1/f , as el tiempo necesario para generar
la palabra tiempo de conversin ser n/f.

7
CAD de rampa: En la modalidad rampa del convertidor analgico a digital se utiliza un
voltaje analgico que se aumenta a razn constante (voltaje rampa), este se aplica aun
comparador, en donde se lo compara con el voltaje de salida del sensor.

El tiempo que el voltaje rampa tarda en tener el valor del voltaje del sensor depender
de la magnitud del voltaje analgico muestreado.

Una vez que inicia el voltaje de rampa, se activa un contador binario que cuenta los
impulsos regulares del temporizador; cuando ambos voltajes son iguales, la palabra que
indica el contador es la representacin digital del voltaje analgico muestreado.

CAD de doble rampa: El convertidor de rampa doble es ms comn que el de una sola
rampa.

El voltaje analgico se aplica al integrador que activa el comparador.

La salida del comparador aumenta en cuanto la salida del integrador rebasa unos
cuantos mV.

8
Cuando la salida del comparador es alta, una compuerta AND pasa impulsos a un
contador binario; ste cuenta los impulsos hasta que se produce un desbordamiento. El
contador vuelve al valor cero y enva una seal a un interruptor que desconecta el
voltaje desconocido, conecta le voltaje de referencia (la polaridad del voltaje de
referencia es opuesta a la del voltaje de entrada) e inicia nuevamente el conteo. El
voltaje del integrador empieza entonces a disminuir en forma proporcional al voltaje de
referencia. Cuando la salida del integrador es cero, el comparador produce un valor
bajo, con lo cual
la compuerta AND tambin tiene una salida baja y el temporizador se desactiva. El
conteo ser entonces una medida del voltaje de entrada analgico. Los convertidores
analgico-digitales del tipo de rampa doble tienen un comportamiento excelente para el
rechazo de ruido debido a que la accin integral promedia las contribuciones aleatorias
negativas y positivas a lo largo del periodo de muestreo. Sin embargo, estos
convertidores son muy lentos.

CAD instantneo: Son CAD muy rpidos.


En un convertidor de n bits, se utilizan en paralelo 2n 1 comparadores de voltaje, y en
cada uno de ellos el voltaje de entrada analgico es una entrada.
Un voltaje de referencia se aplica a una escalera de resistencias de manera que el
voltaje aplicado como entrada en dada uno de los comparadores tenga una magnitud
mayor en 1 bit en relacin con el voltaje aplicado al comparador anterior de la escalera.
Por lo tanto, cuando al CAD se le aplica el voltaje analgico. Por lo tanto, cuando al CAD
se le aplica el voltaje analgico, todos los comparadores con voltaje analgico mayor
que el voltaje de referencia de un comparador producirn una salida alta (1), y en los
que el voltaje es menor producirn una salida baja (0). Las salidas obtenidas se
alimentan en paralelo a un sistema de compuerta lgica que las traduce y convierte en
una palabra digital

9
Caractersticas de los convert: Tiempo de conversin, es el tiempo necesario para
completar la conversin de la seal de entrada.
Define la frecuencia superior de la seal para realizar el muestreo sin producir una falsa
duplicacin; la frecuencia mxima ser:

______1______
2(tiempo conversin ).

Resolucin, es la seal a escala total dividida entre 2n, donde n es la cantidad de bits.
Frecuentemente se especifica indicando solamente el nmero de bits.

Error de linealidad, es la desviacin respecto de una lnea recta que pasa por cero y
escala total. Su valor mximo es LSB.

.4. MICROCONTROLADOR

Un microcontrolador es un dispositivo electrnico capaz de llevar a cabo procesos


lgicos. Estos procesos o acciones son programados en lenguaje ensamblador por
el usuario, y son introducidos en este a travs de un Programador. Esto suena un
poco complicado, pero slo es un resumen de 3 lneas. A lo largo de este tutorial
veremos algunas de las reglas y trucos de este lenguaje complicado por su
sencillez.

10
Figura 2: El microcontrolador es un sistema cerrado. Todas las partes del
procesador estn contenidas en su interior y slo salen al exterior las lneas que
gobiernan los perifricos. 4 en microcontrolador es mucho menor y, lo mejor de
todo, el tiempo de desarrollo de su proyecto electrnico se disminuye
considerablemente.

PIC18F2550

el PIC18F2550 dispone de un puerto USB que puede funcionar tanto a baja


velocidad (1,5 Mbps) como a velocidad completa (12 Mbps) y soporta transferencias
de control, interrupcin, masivas e iscronas. Adems tiene un mdulo conversor
A/D con 10 canales de entrada y una memoria de datos EEPROM (Electrical
Erasable Programmable Read Only Memory) de 256 bytes. Se trata de una memoria
de lectura, programada y borrada elctricamente. La operacin de borrado y
programacin es muy sencilla y se puede grabar y borrar tantas veces como se
quiera.

Las caractersticas principales del dispositivo se resumen en la siguiente tabla.

11
El encapsulado en el que encontramos el dispositivo es un encapsulado DIP.
Este tipo de encapsulado es el ms empleado en montaje por taladro pasante en Placa.
En nuestro caso se trata de un chip en plstico (negro), con las siguientes.
Dimensiones:

Detalle del encapsulado del PIC18F2550

Un dato importante en todos los componentes es la distancia entre patillas que


Poseen, en los sistemas integrados es de vital importancia este dato, as en este tipo el
estndar se establece en 0,1 pulgadas (2,54mm).

Se suelen fabricar a partir de 4, 6, 8, 14, 16, 22, 24, 28, 32, 40, 48, 64 patillas,
Estos son los que ms se utilizan.

12
La funcionalidad de los pines del PIC18F2550 puede verse en la siguiente tabla, donde
se ha marcad los pines que intervienen en nuestro diseo, as como la funcionalidad que
tienen para el correcto funcionamiento del diseo.

Las entradas y salidas del PIC


Se conectan segn su funcionalidad
siguiendo las indicaciones de la hoja
de
Caractersticas del dispositivo y las
necesidades de diseo de la
aplicacin.

Entradas/Salidas del PIC podemos ver


que cada uno de los pines utilizados
lleva una etiqueta que identificar la
conexin de ese pin con el resto de
elementos que forman el diseo de la
placa.

13
.5. DISPLAY DE CRISTAL LQUIDO O LCD

El LCD (Liquid Crystal Dysplay) o pantalla de cristal lquido es un dispositivo empleado


para la visualizacin de contenidos o informacin de una forma grfica, mediante
caracteres, smbolos o pequeos dibujos dependiendo del modelo. Est gobernado por
un micro controlador el cual dirige todo su funcionamiento.

En este caso vamos a emplear un LCD de 16x2, esto quiere decir que dispone de 2 filas
de 16 caracteres cada una. Los pxeles de cada smbolo o carcter, varan en funcin de
cada modelo.

En la siguiente imagen de Proteus se puede observar la estructura de sus pines. Lo


podemos dividir en los Pines de alimentacin, pines de control y los pines del bus de
datos bidireccional. Por lo general podemos encontrar adems en su estructura los pines
de nodo de led backlight y ctodo de led backlight.

Pines de alimentacin:

Vss: Gnd
Vdd: +5 voltios
Vee: corresponde al pin de contraste, lo regularemos con un potencimetro de
10K conectado a Vdd.

Pines de control:

RS: Corresponde al pin de seleccin de registro de control de datos (0) o registro


de datos(1). Es decir el pin RS funciona paralelamente a los pines del bus de
datos. Cuando RS es 0 el dato presente en el bus pertenece a un registro de
control/instruccin. y cuando RS es 1 el dato presente en el bus de datos
pertenece a un registro de datos o un carcter
RW: Corresponde al pin de Escritura (0) o de Lectura (1). Nos permite escribir un
dato en la pantalla o leer un dato desde la pantalla.
E: Corresponde al pin Enable o de habilitacin. Si E(0) esto quiere decir que el
LCD no est activado para recibir datos, pero si E(1) se encuentra activo y
podemos escribir o leer desde el LCD.

Pines de Bus de datos:El Bus de datos bidireccional comprende desde los pines D0 a
D7. Para realizar la comunicacin con el LCD podemos hacerlo utilizando los 8 bits del
bus de datos (D0 a D7) o empleando los 4 bits ms significativos del bus de datos(D4 a
D7). En este caso vamos a explicar la comunicacin con el bus de 4 bits.

DDRAM y CGROM

Son las dos zonas de memoria del LCD.

La memoria DDRAM (Data Display Ram): corresponde a una zona de memoria donde se
almacenan los caracteres que se van a representar en pantalla. Es decir es la memoria
donde se almacenan los caracteres a mostrar con su correspondiente posicin.

La memoria CGROM: es una memoria interna donde se almacena una tabla con los
caracteres que podemos visualizar en el lcd. En la imagen podemos ver un ejemplo de la
tabla con un contenido de 192 caracteres.

La memoria CGRAM (Character Generator Ram): en ella se pueden almacenar nuestros


propios caracteres.
Falta como hace el compi

.6. TECLADO MATRICIAL 4X3

El teclado matricial 4x 3 formado por 12 pulsadores SPDT est organizado en 4 Filas y 3


columnas. Ideal para ser utilizados en sistemas basados en micro controladores.

Para su ensamblaje instale y sold inicialmente los dos puentes utilizando para ello
alambre fino de cobre tipo telefnico. Seguidamente instale cada uno de los 12
pulsadores teniendo especial cuidado en la posicin de los pulsadores. Ver FIG.1.
Finalmente instale la tira de espadines insertando en la tarjeta la parte mas corta de
esta. Esta debe quedar ligeramente separada de la placa para facilitar su soldadura
Esquema Elctrico

son realmente una extensin del concepto de botn, son un simple arreglo de botones
conectados en filas y columnas, de modo que se pueden leer un gran nmero de
botones de entrada con el nmero mnimo de terminales requeridos por el micro
controlador.
Un teclado matricial 44 solamente ocupa 4 lneas de un puerto para las filas y otras 4
lneas para las columnas, de este modo se pueden leer 16 teclas utilizando solamente 8
lneas de un puerto del microcontrolador. Si se asume que todas las columnas y filas
inicialmente estn en alto (1 lgico), la activacin de un botn se puede detectar al
enviar por las lneas de salida (renglones) solo un (O lgico) por vez y sondear cada
columna en busca de un cero, si ninguna columna esta en bajo entonces se rota el O de
las filas secuencialmente de tal manera que solamente un cero se encuentre entre los
renglones del teclado cuando se realiza las lecturas de las lneas de entrada (columnas).
Cuando el O llegue a la fila ms significativa del teclado, debe reingresar en la prxima
ocasin por la menos significativa, reiniciando la exploracin del teclado.

6- DESARROLLO DEL PROYECTO

.1. SELECCIONE LA RTD LM35

El LM35 es un sensor de temperatura integrado de precisin, cuya tensin de salida es


linealmente proporcional a temperatura en C (grados centgrados). El LM35 por lo tanto
tiene una ventaja sobre los sensores de temperatura lineal calibrada en grados Kelvin:
que el usuario no est obligado a restar una gran tensin constante para obtener grados
centgrados. El LM35 no requiere ninguna calibracin externa o ajuste para proporcionar
una precisin tpica de 1.4 C a temperatura ambiente y 3.4 C a lo largo de su rango
de temperatura (de -55 a 150 C). El dispositivo se ajusta y calibra durante el proceso de
produccin. La baja impedancia de salida, la salida lineal y la precisa calibracin
inherente, permiten la creacin de circuitos de lectura o control especialmente sencillos.
El LM35 puede funcionar con alimentacin simple o alimentacin doble (+ y -) multivuelta
de valor 10k? , como recomienda el fabricante, permitiendo con ste un ajuste fino, ya
que dispone de una resolucin de 2,77? / De giro.
Requiere slo 60 A para alimentarse, y bajo factor de auto-calentamiento, menos de 0,1
C en aire esttico. El LM35 est preparado para trabajar en una gama de temperaturas
que abarca desde los- 55 C bajo cero a 150 C, mientras que el LM35C est preparado
para trabajar entre -40 C y 110 C (con mayor precisin).

Caractersticas

Calibrado directamente en grados Celsius (Centgrados)


Factor de escala lineal de +10 mV / C
0,5C de precisin a +25 C
Rango de trabajo: -55 C a +150 C
Apropiado para aplicaciones remotas
Bajo coste
Funciona con alimentaciones entre 4V y 30V
Menos de 60 A de consumo
Bajo auto-calentamiento (0,08 C en aire esttico)
Baja impedancia de salida, 0,1W para cargas de 1mA
Diagrama de conexin

Aplicaciones tpicas

1.Sensor de temperatura bsico (+2 C a 150 C):


2. Sensor de temperatura con rango completo:

3. Sensor de temperatura con alimntacin simple y rango completo (-55 C a +150 C):

4. Termmetro Fahrenheit:

5. Convertidor de temperatura digital (Salida serie) (hasta +128 C)


.2. ADC del pic 18F 2550

Los pines del puerto A y del puerto E pueden trabajar como entradas para el
Convertidor Anlogo a Digital interno, es decir, all se podra conectar una seal
proveniente de un sensor o de un circuito analgico para que el microcontrolador la
convierta en su equivalente digital y pueda realizar algn proceso de control o de
instrumentacin digital.

En la siguiente figura observamos un ejemplo donde utilizamos uno del puerto anlogo
del pic 18F2550.

6.3- Interface con microcontrolador a LCD


La conexin entre el PIC y el modulo LCD se realiz en los 6 Terminales del puerto B
(RB2-RB5) del microcontrolador. Las seales de control (, RS y E ), se generaran con las
Terminales de puerto B (RB0 Y RB1) los terminales RW,VSS,VEE,D0,D1,D2,D3 las
conectamos a tierra, VDD le generamos una seal de 5v. La figura muestra esta
configuracin.

El software que se implanto en el microcontrolador, se encarga de mostrar mensajes en


un LCD de 2x16. El mensaje que aparecer ser lo generado por el sensor lm35, o
cambiaran segn sea necesario dentro del men contextual en el cual se encuentre el
Usuario.

.4. Interface con microcontrolador al teclado matricial 4x3

La conexin de un teclado matricial depende del nmero de filas y columnas que


tenga ste y generalmente cada salida del teclado matricial se lo conecta a una
entrada del microprocesador que va a gobernar el circuito ya sea en un solo puerto o
entre puertos.

Un teclado matricial est constituido por pulsadores normalmente abiertos formando


un circuito, el cual se activa al momento de presionar cualquiera de las teclas
enviando as una seal de voltaje que ser procesada en el microprocesador o ya
sea mediante un decodificador de teclados.
Teclado, con resistores de Jaln

En algunos casos se utilizan resistencias de proteccin para evitar enviar valores


parsitos debido a armnicos que se generan en muchos dispositivos electrnicos.

Mediante software implementado en el compilador, se puede disminuir de manera


considerable los denominados rebotes o armnicos realizando un muestreo continuo a
una rapidez determinada.

En la siguiente figura observaremos la conexin general del teclado.


Analizado lo anterior procedemos a disear y a simular del control de temperatura en
el programa proteus 8 y el compilador Xc8.

.5. Simulacin del controlador de temperatura.


MATERIALES:
1- 1 SENSOR DE TEMPERATURA LM35.
2- 2 RESISTENCIAS DE 220.
3- 1 POTENCIOMETRO 10k.
4- 1 FUENTE DE 5 VOLTIOS.
5- 1 PIC 18f 2550.
6- 2 LED.
7- 1 LCD LM016L.
8- 1 TECLADO MATRICIAL.

Primeramente se obtiene la medida de la temperatura ambiente mediante el sensor


Lm35, luego emitirla al ADC del pic18f 2550 que la convierte en una seal digital que
podr ser observada en la LCD Lm016l y posterior mente controlada por medio de un
teclado matricial cuyo funcionamiento es ingresar un set point para el control de la
variable temperatura obtenida. Se hace uso de una serie de led que funcionan como
seal de alarma en caso de que la temperatura este sobre el rango o bajo el rango. Si
esta est por encima del rango el sistema de calefaccin debe apagarse o si est por
debajo del rango indica que debe encender.
A continuacin el cdigo del proyecto.

char keypadPort at PORTC; //Ejecuta el Keypad a travs del puerto C

sbit LCD_RS at LATB0_bit; //Declaraciones de puertos para la LCD


sbit LCD_EN at LATB1_bit;
sbit LCD_D4 at LATB2_bit;
sbit LCD_D5 at LATB3_bit;
sbit LCD_D6 at LATB4_bit;
sbit LCD_D7 at LATB5_bit;

sbit LCD_RS_Direction at TRISB0_bit;


sbit LCD_EN_Direction at TRISB1_bit;
sbit LCD_D4_Direction at TRISB2_bit;
sbit LCD_D5_Direction at TRISB3_bit;
sbit LCD_D6_Direction at TRISB4_bit;
sbit LCD_D7_Direction at TRISB5_bit;

float temp=0,valor=0; //Declaracin de variables globales utilizadas en todo el


programa
int lm35=0;
char kp=0,txt[8],control=0,conteo=0,j=0,q1=0,q2=0,q3=0;
char un=0;

char slcd(char tt,char ti, char tl){ //Subrutina para escribir los nmeros en el SetPoint,
donde cambia de una celda a otra

if(tl==1){ //Escribe en la celda 13


bytetostr(q3,txt);
lcd_out(1,13,txt);
}
if(ti==1){ //Escribe en la celda 12
bytetostr(q2,txt);
lcd_out(1,12,txt);
}
if(tt==1){ //Escribe en la celda 11
bytetostr(q1,txt);
lcd_out(1,11,txt);
}
}

char cl(){ //Subrutina para mostrar los mensajes en la LCD


Lcd_Chr(1, 1, 83); Lcd_Chr(1, 2, 80); //Mensaje en la lcd "SP"
Lcd_Chr(2, 1, 84); Lcd_Chr(2, 2, 101); Lcd_Chr(2, 3, 109); Lcd_Chr(2, 4, 112);
//Mensaje en lcd "Temp"
} //Fin de la subrutina

void main() { //Inicio del programa principal


latb=0; //Coloca todo el puerto B en bajo, tensin = 0V
trisb=0; //Define el puerto B como salida
CMCON=7; //Activa el puerto A como lector analgico para la conexin del LM35
Lcd_Init(); //Inicia la LCD
Lcd_Cmd(_LCD_CLEAR); //Borra la LCD
Lcd_Cmd(_LCD_CURSOR_OFF); //Detiene el cursor
delay_ms(10); //Espera 10ms para estabilizar
cl(); //Llama a la funcin cl, para escribir los mensajes SP y Temp, es un
goto cl
while(1){ //Inicio del ciclo infinito

lm35=adc_read(0); //Lee el valor del sensor


temp=lm35*0.488; //Convierte la tensin a el valor en temperatura real
floattostr(temp,txt); //Toma el valor de temp y lo coloca en un vector
lcd_out(2,12,txt); //Muestra el valor de Temperatura

kp = Keypad_key_Click(); //Toma el valor del Keypad

if(kp!=0){ //Mientras que el valor de del keypad=kp NO sea cero, entonces:

conteo++; //Incrementa el conteo en una unidad


if(conteo>13)conteo=13; //Si el conteo es mayor que 13, entonces ser 13
j=1;

switch(kp){ //Determina los casos para los distintos valores que entrega el
keypad
case 5: kp=4; break;
case 6: kp=5; break;
case 7: kp=6; break;
case 9: kp=7; break;
case 10: kp=8; break;
case 11: kp=9; break;
case 13: control=1; conteo=10; Lcd_Cmd(_LCD_CLEAR); cl(); j=0; break; //Cuando
se presiona (*) en el keypad, la variable control toma el valor de 1, quedando activa
case 14: kp=0; break; //El valor 14 entregado por el keypad, corresponde a la
tecla cero (0)
case 15: control=2; break; //Cuando se pulsa la tecla #, habilita el control 2
}
}

if(control==1){ ///Control=1, se utiliza con el fin de escribir los nmeros en la LCD

if(conteo==11 && j==1){ //condicional cuando el conteo va en la celda 11


q1=kp; un=1; //Q1 toma el valor de kp, y un=1, significa que apenas lleva una
unidad escrita
slcd(1,0,0); //LLama a la funcin slcd (goto), con el fin de escribir el primer nmero
en la celda 11
}

if(conteo==12 && j==1){


q2=kp; un=2;
slcd(1,1,0); //LLama a la funcin slcd (goto), con el fin de escribir el segundo
nmero en la celda 12
}

if(conteo==13 && j==1){


q3=kp; un=3;
slcd(1,1,1); //LLama a la funcin slcd (goto), con el fin de escribir el tercer nmero
en la celda 13
}

j=0;
}

if(control==2){ //Control, habilitado para guardar el valor del set point

if(un==1){ //Si el nmero va de 0 a 9


valor=q1;
}
if(un==2){ //si el nmero va de 10 a 99
valor=q1*10+q2;
}
if(un==3){ // si el nmero va de 100 a 999
valor=q1*100+q2*10+q3;
}

un=0;
conteo=0;
control=0;
}

if(valor>=temp){ //Condicional, si el valor programado por el keypad es mayor o


igual que la temperatura, entonces:
RB6_bit=1; RB7_bit=0; //B6=1 y B7=0
}else{ //sino
RB6_bit=0; RB7_bit=1; //B6=0 y B7=1
} //Fin del condicional

} //Fin del ciclo infinito


} //Fin del ciclo principal

Prueba#1:

En la siguiente imagen demostraremos lo anteriormente explicado, cuando la


temperatura este por encima del rango.

Prueba #2

En la siguiente imagen cuando la temperatura este por debajo del rango


. Conclusin

Se ha diseado un sistema de medida y control de temperatura para la enseanza de


sensores de temperatura, acondicionadores de seal, microcontroladores, con bajo
coste econmico, y con una curva de aprendizaje elevada y focalizada en los asuntos de
inters propiciando.

El sistema diseado evala una temperatura, la compara con un rango predeterminado


y acta en consecuencia. Con estas simples palabras podemos ver que es fcilmente
aplicable a cualquier sistema que requiera mantener una temperatura estable, dentro de
cierto rango.

Вам также может понравиться