Microcontroladores

BENEMERITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA REPORTE DE PRÁCTICA: Proyecto final S

Views 232 Downloads 25 File size 1MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

BENEMERITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA

REPORTE DE PRÁCTICA:

Proyecto final Sistema de Control de nivel de agua Nombre de la Asignatura: ARQUITECTURA DE COMPUTADORAS (MICROCONTROLADORES)

Profesor: Ricardo Álvarez González Integrantes del Equipo:

1

Elio Moisés González Ruíz Rigoberto Cerino Jiménez Ludwin Iturbe Ortíz Martin Alfonso Ibarias Alfaro

Benemérita Universidad Autónoma de Puebla

200808346 200800620 200802412 200832745

Microcontroladores

Puebla, Puebla, 14 de mayo de 2012

2

Benemérita Universidad Autónoma de Puebla

Microcontroladores

1. Introducción Desde hace varios años, la mano del hombre ya no es tan necesaria para poder controlar todos aquellos equipos y artefactos que utilizamos diariamente ya sea como por ejm. El alumbrado público controlar la calefacción, controlar el llenado de un pozo con agua, etc. Hoy en día, existe la posibilidad de que ciertos sistemas específicos puedan controlar y/o efectuar el manejo por si solos (Automático). Los elementos necesarios, mediante los cuales se puede obtener los efectos deseados sin la intervención de la mano del hombre se denominan sensores o actuadotes. Dependiendo de la variación de la magnitud que controlen podemos tener el siguiente listado básico: El Termostato (Actúa con los cambios de temperatura), Interruptor Crepuscular (Actúa con los cambios de luz solar), Temporizador (Actúa con los cambios del tiempo), Hidronivel (Actúa con los cambios de fluidos), etc. Los beneficios obtenidos por el usuario de estos sistemas de control automático son: Confort (comandar sistemas o artefactos desde cualquier lugar por medio de un control o en forma automática, seguridad (crear situaciones de simulación de personas dentro de una propiedad o simplemente un alarma, y el ahorro de tiempo (simplificando las tareas diarias). El tema de este proyecto es desarrollar un sistema de control del nivel de agua en un tinaco, haciéndolo llenar al activar una bomba y verificar el nivel de agua que tiene la cisterna que es la fuente de alimentación del tinaco, empleando todos los conocimientos adquiridos hasta el momento. Se desea integrar todas aquellas técnicas y estrategias estudiadas en las etapas de análisis y diseño, para alcanzar una solución satisfactoria en la aplicación concreta. Para ello se debe inicialmente identificar los componentes de esta aplicación real. Posteriormente se realizarán estudios de las diferentes señales que en dicha aplicación existen: entrada, salida, errores etc. También se analizarán las condiciones de estabilidad del sistema de control. Finalmente se diseñará un un programa controlador que pueda satisfacer las especificaciones temporales exigidas, manteniendo en todo momento sus condiciones de estabilidad y pronta respuesta.

2. Objetivos 3

Objetivo General  Desarrollar un sistema automatizado para el llenado de un tinaco de agua.  Sensar fluidez de tuberías en salida de la cisterna y entrada del tinaco. Benemérita Universidad Autónoma de Puebla

Microcontroladores

 Lograr crear un etapa que soporte los requerimientos de una bomba de ¼ a ½ caballo.  Crear un sistema que involucre los aspectos anteriores.  Lograr que el sistema opere en forma automática sin problemas de calentamiento o cortos en los circuitos.

Objetivos Particulares a) Diseñar un programa que permita el control del nivel de agua en un tinaco. Que éste verifique por el nivel de agua que tiene el tinaco, si es muy bajo, el programa pregunta por el nivel de agua en la cisterna, la cual alimenta el tinaco. Si el nivel es considerable, entonces manda a checar si la bomba esta purgada, si es asi, entonces procede a encenderla hasta que el tinaco alcance su nivel máximo de agua. El programa será construido en lenguaje ensamblador para crear el control total del sistema utilizando un PIC 16f84a. b) Crear un programa en lenguaje C para enviar datos a una LCD para indicar cada acción, tinaco vacío, bomba encendida, nivel de agua optimo (tinaco lleno), bomba apagada. Utilizando un PIC 18f4550.

3. Planteamiento del problema Para poder diseñar nuestra práctica y cumplir nuestros objetivos es necesario utilizar las herramientas que se han venido aprendiendo a través del curso, como son el uso y la configuración de la LCD, la programación básica de los PICs, y la implementación de la electrónica correcta, manipulando corrientes tanto directa como alterna.

4. Marco teórico y Estado del Arte Hidronivel El hidronivel es un sistema muy complejo y antiguamente muy sencillo cuya finalidad es, como su mismo nombre lo indica, la de controlar el nivel de líquidos en un depósito, pozo, etc. 4

Podemos destacar dentro del ámbito del hidronivel dos tipos:  Hidroniveles mecánicos.  Hidroniveles electrónicos.

Benemérita Universidad Autónoma de Puebla

Microcontroladores

HIDRONIVELES MECÁNICOS Este tipo de hidroniveles se basa simplemente en lo descrito a continuación: Son elementos sencillos y clásicos para detectar niveles en recipientes de un cierto tamaño como depósitos, cisternas, arquetas, albercas, pozos abiertos etc. Económicos y de fácil instalación ya que solo hay que descolgarlo en el interior del recipiente.

Cuando el nivel del agua esta bajo, existe una boya colocada que hace que la llave de paso del agua se abra mediante un sistema de polea situada en lo alto del depósito. Con forme el agua va aumentando su nivel, la boya irá cerrando la llave de paso del agua, hasta que llegue el momento que el nivel sea el máximo de agua y por tanto la llave estará totalmente cerrada impidiendo el paso del agua. Si el nivel de agua en el depósito o pozo disminuye, la boya abrirá nuevamente la llave de paso del agua, llenando nuevamente el depósito. Existen otro tipo de hironiveles mecánicos como: Detector de nivel neumático. Se trata de un detector de presión muy sensible. Se rosca a la parte superior de un tubo, el otro extremo queda abierto y posicionado a la altura deseada de detección. Cuando el líquido subiendo tapona el extremo abierto, el aire en el interior del tubo se comprime y hace actuar un contacto conmutado. El tubo lo pone el usuario de acuerdo con el liquido a detectar y puede ser de metal, plástico, vidrio, acero etc. Es un dispositivo útil, seguro y muy económico para cualquier liquido, agresivos, viscosos, alimenticio, acido. Es muy usado en la industria química y las depuradoras. Control de nivel por desplazamiento

5

El cono del controlador debe estar expuesto al material a detectar. Cuando el talud se pone en contacto con el cono ejerce contra éste una presión progresiva desplazando el conjunto cono-varilla y actuando un interruptor. Al vaciarse el péndulo recupera la posición normal y deja de actuar el interruptor.

Benemérita Universidad Autónoma de Puebla

Microcontroladores

Control de nivel de membrana Estos controladores se basan en un interruptor accionado por una membrana. La membrana debe estar expuesta al material a controlar. A medida que el material entra en el silo se amontona y cubre la membrana, la presión que ejerce la obliga a retroceder presionando el mecanismo que acciona un interruptor. Este interruptor sirve para la puesta en marcha o paro de señales visuales, acústicas o los mecanismos de carga y descarga en silos y recipientes

HIDRONIVELES ELÉCTRONICOS Los circuitos de hidroniveles eléctricos se han ido fabricando desde los más simples con transistores hasta otros más complejos y por tanto más seguros y con un funcionamiento más exacto. Existe una gran variedad de hidroniveles electrónicos dependiendo de su funcionamiento, es que, se dará el tipo de líquido adecuado para su aplicación. Así pues tenemos los siguientes: Control de nivel óptico Control de nivel óptico para líquidos no conductivos. Se trata de un pequeño sensor de nivel para líquidos transparentes. El sensor emite hacia fuera una luz infrarroja, que se refleja en su propia punta semiesférica y vuelve al interior. Cuando esta sumergido la luz se refracta hacia afuera y no la detecta él mismo. Es muy útil para depósitos y tuberías bajo presión, y para conectar directamente a autómatas. Control de nivel por vibración Control de nivel por vibración para líquidos con salida relé. Dispone de un diapasón que queda introducido en el recipiente. Este diapasón esta vibrando a una frecuencia fija determinada, al contacto con el producto, altera la vibración y este cambio es detectado por el circuito electrónico de control. Se conecta en serie con la carga y lleva un piloto indicador de estado.

Relé

6

El relé o relevador es un dispositivo electromecánico. Funciona como un interruptor controlado por un circuito eléctrico en el que, por medio de una bobina y un electroimán, se acciona un juego de uno o varios contactos que permiten abrir o cerrar otros circuitos eléctricos independientes. Fue inventado por Joseph Henry en 1835. Benemérita Universidad Autónoma de Puebla

Microcontroladores

Dado que el relé es capaz de controlar un circuito de salida de mayor potencia que el de entrada, puede considerarse, en un amplio sentido, como un amplificador eléctrico. Como tal se emplearon en telegrafía, haciendo la función de repetidores que generaban una nueva señal con corriente procedente de pilas locales a partir de la señal débil recibida por la línea. Se les llamaba "relevadores" CARACTERÍSTICAS GENÉRICAS 

CORRIENTE DE EXCITACIÓN: Es la corriente necesaria que necesita el relé para que funcione.



TENSIÓN NOMINAL: La tensión para la cual esta diseñado el relé.



TENSIONES DE TRABAJO: Son las tensiones máximas y mínimas a las que el relé funciona.



CONSUMO NOMINAL DE LA BOBINA: La corriente que pasa por el relé cuando se le aplica la tensión nominal.

5. Desarrollo del Sistema Funcionamiento del sistema Para proceder a diseñar el sistema de control automático es necesario tener en cuenta ciertas condiciones de operación de circuito, en otras palabras como queremos que sea el funcionamiento del circuito. El sistema de control de nivel tiene que tener sensores de agua de modo que puedan detectar si hay o no agua en el recipiente para que opere; para esto tenemos que colocar terminales en el recipiente que al hacer o no contacto con el agua envíe un voltaje a un circuito al circuito Lógico el cual tendrá la función de recibir las señales enviadas por los sensores y procesarlas para dar una salida y determinar si encenderá o apagará a la bomba. Los estados del sistema son los siguientes:

7

1.

Estado de reseteo del sistema.

2.

Estado de apagado.

3.

Estado de encendido temporal.

4.

Estado de encendido.

Benemérita Universidad Autónoma de Puebla

Microcontroladores

Estado de reseteo. El sistema empieza de un estado inicial donde los registros de las salidas se ponen a 0 del micro-controlador. Esto lo realiza durante dos segundos, en el cual parpadea el LED de color rojo. Este estado también comienza si la energía por causas externas, se pierde por un momento. Estado de apagado. Este estado ocurre después de que el micro-controlador checa cada uno de los sensores de nivel de agua. Si la cisterna cumple con el nivel óptimo de agua y el depósito no requiere agua, el sistema permanece en apagado encendiendo el LED de color amarillo. Estado de encendido temporal. Cuando el depósito requiere agua, el sistema revisa antes de encender la bomba si ésta se encuentra purgada para que se pueda encender. En caso de que esté purgada, pero la bomba no funcione, se inserto un sensor en la manguera antes de que entre al deposito, de tal forma que indique que si esta bombeando. Si no ocurre, el sistema se apaga. El cambio de este estado se indica con el LED azul y el parpadeo del LED amarillo. Estado de encendido. Este ocurre si todas las condiciones se cumplen, por lo que estará encendida la bomba hasta que el depósito llegue a su nivel máximo o la cisterna no tenga el agua suficiente. El cambio de estado de encendido a estado de apagado se indica con el LED de color rojo que parpadea.

De esto hemos obtenido las terminales claves para el funcionamiento del hidronivel: La primera terminal es el denominado máximo, el cual, se colocara en el lugar determinado por nosotros para que sea el nivel máximo al que nosotros queremos llenar el recipiente. 8

La segunda terminal es el denominado mínimo, el cual, también será colocado a nuestro gusto para indicar el nivel mínimo de líquido. La tercera terminal es el comparador, el cual, será colocado en la cisterna para detectar si hay agua o no en este, si no hubiera este envía un voltaje Benemérita Universidad Autónoma de Puebla

Microcontroladores

haciendo que el circuito no funcione, para que el motor no se active este sirve de protección para la hidrobomba. De otro modo diremos que cuando haya liquido en el recipiente, habrá conducción, al haber conducción circulara voltaje a traves de los terminales antes mencionados, a esto, diremos que es un pulso positivo uno (1). Al contrario de esto, cuando no hay liquido, no habrá conducción, al no haber conducción, no habrá voltaje entre los terminales, entonces diremos que es un pulso negativo (0). Dicho esto obtenemos las Condiciones de Operación del Diseño:  Queremos que se encienda el motor, cuando el nivel máximo y mínimo sean 0.  Queremos que se apague el motor, cuando el nivel máximo y mínimo sean 1.  Cuando el motor este encendido y el nivel mínimo sea 1 el motor deberá de apagarse, sólo si el nivel máximo cambia a 1.  Cuando el motor este apagado y el nivel máximo es igual a 0, el motor sólo deberá de encenderse cuando la condición nivel mínimo sea igual a 0. Estas condiciones se observan mejor en la siguiente tabla, en la cual se muestran los cambios de estado entre los depósitos de agua para las dos posibles condiciones de secuencia. . Máximo

Mínimo

Salida

0

0

0

1

0

1

1

1

1

Para que nuestro circuito funciones tiene cumplir la condición de “Cuando llegue al nivel máximo se detenga la bomba, pero cuando disminuya siga detenida hasta el momento de que llegue al nivel mínimo, es decir que esté el liquido por debajo de este. Antes de empezar a diseñar nuestro esquema del circuito lógico tenemos que analizar el funcionamiento de los terminales de entrada, los detectores.

9

Analizaremos el funcionamiento del sensor de nivel mínimo. Como podemos ver, una de las condiciones que no se podrán llevar a cabo es el que el nivel máximo este conduciendo y el nivel mínimo no, puesto que dicha situación resulta imposible, así que partiendo de eso, diremos que el sensor de nivel mínimo será el que encienda la bomba sólo si este deja de conducir, es

Benemérita Universidad Autónoma de Puebla

Microcontroladores

decir cuando el agua deje de hacer contacto con él, situación que es la señal para llenar de nuevo nuestro tinaco. Ahora veamos que sucede con nuestro nivel máximo, como ya habíamos hecho mención anterior, este sensor podrá o no podrá estar en ON, sin ningún problema con la lógica del sistema, para cualquier combinación posible excepto una que es la que se puede apreciar en la siguiente tabla de verdad.

Máximo

Mínimo

Salida

0

0

0

1

0

1

1

1

1

La función del nivel máximo es contraría a la del nivel mínimo, es decir el nivel máximo apagará el motor de la bomba para evitar un posible desbordamiento de líquido, el nivel máximo esta por debajo del borde el tinaco, por lo que en el momento en el que el agua haga contacto con el este conducirá e indicara al sistema lógico la orden de reset, es decir apaga la bomba. El circuito lógico tiene la misión de recibir las señales enviadas por los sensores y procesarlas para dar una salida y determinar si encenderá o apagará a la bomba, este circuito tendrá la necesidad de ser un circuito secuencial es decir cuando el nivel del agua este por arriba del mínimo al ir subiendo o por arriba del nivel del mínimo cuando venga bajando.

Utilizamos clemas donde irían conectados los sensores:

10

1. En la Clema numero 1 y que corresponde RB1 en el pic16 se encuentre el nivel de agua en cisterna. Además este mismo esta conectado al pic18 en el pin RB0 para mostrar el mensaje desplegado en la LCD. 2. En la clema numero 6 que corresponde al pin RB3 del pic se encuentra nuestro sensor de purgado. Además este también va conectado al RB1 del pic 18 para indicar el mensaje “purgar bomba”. 3. En la tercera clema que corresponde a RB5 en el pic se encuentra el indicador de el nivel mas bajo de agua en el tinaco. 4. En la clema numero 5 que corresponde a RB6 en el pic se encuentra el indicador de nivel, que hace referencia al nivel máximo de agua en el tinaco, Nivel optimo. Además este LED iba al RB4 del pic 18 para indicar “tinaco lleno”. 5. En la clema numero 8 se encuentra el sensor de fluidez que corresponde a RB7 en el pic. Además este va al RB2 del pic 18 para indicar que hay que verificar el sistema de tuberías entre la cisterna y el tinaco. Benemérita Universidad Autónoma de Puebla

Microcontroladores

Las salidas de nuestro sistema están representados mediante LEDs de distintos colores para distinguir lo que indica cada uno:    

Led RA1 pin 18 del pic16: indica que el sistema esta encendido. Led RA0 pin 17 del pic16: se prende durante 2 segundos cada vez que se inicia el sistema. Led RA3 pin 2 del pic16: parpadeaba por unos segundos antes de apagar la bomba, es decir cuando nuestro tinaco esta a punto de llenarse. Led RA2 pin 3 del pic16: indica que la bomba estaba prendida, manda la señal al puente H para activar el relevador y prender la bomba (la bomba fue simulada colocando un foco, alimentado por corriente alterna) y además manda una señal al RB3 del Pic18 para que por medio de la LDC indique que la bomba estaba llenando el tanque.

Etapa de potencia. La etapa de potencia consta de un puente H y un relevador, los cuales permiten que los niveles lógicos sean amplificados, de tal forma que no se exijan corriente de más al sistema de control. Otra ventaja de usar estos elementos en que no permiten corrientes inversas, las cuales pueden dañar el sistema de control. Una de las desventajas y cabe la pena mencionar es el arqueo que tiene el relevador, pues causa desgaste y no son muy seguros, además de inducir energía que se traduce en ruido. Se tiene un diseño alternativo, que aun no ha sido probado en físico, que usa elementos de estado solido, que reducen el arqueo, maximizan el tiempo de vida además de eliminar el ruido producido. El circuito propuesto es el siguiente:

11

Benemérita Universidad Autónoma de Puebla

Microcontroladores

El sistema consta de un opto acoplador y un TRIAC. Si se activa el opto acoplador es activado por el micro-controlador, este permite circular una pequeña corriente por la compuerta, hasta que esta supere el voltaje de umbral, se pone en corte el TRIAC. Se tiene una red Snubber, la cual protege al TRIAC del sobre voltajes y sobre corrientes. Si el opto acoplador es desactivado, existe el cruces por cero, lo cual casusa un apagado natural.

INFORMACION HARDWARE

Micro-controlador PIC16F84A

Puente H. L293B

Operacionales LM324

12

Benemérita Universidad Autónoma de Puebla

Microcontroladores

Diodos emisores de luz (LED)

Resistores.

Relevador (12 V de polarización, 10 A)

Bomba de agua de ¼ de HP.

Placa Fenólica.

13

Benemérita Universidad Autónoma de Puebla

Microcontroladores

Programador.

PIC 18f4550

Display LCD

    

Pinzas Cautín Cable Estaño Clavos

14

Benemérita Universidad Autónoma de Puebla

Microcontroladores

6. Análisis de Resultados Para la simulación y comprobación del programa se utilizó el emulador ISIS.

Nuestro sistema totalmente armado y conectado. Utilizamos botes de plástico para simular una cisterna y un tinaco. Los llenamos de agua y mediante alambres conectados a clavos hicimos que el sistema tuviera continuidad dentro de los botes, colocamos los clavos a una pequeña distancia para que así generara un arco eléctrico y de esta manera el sistema detectara los momentos en que esta lleno, o vacío, tanto el tinaco como la cisterna.

15

Benemérita Universidad Autónoma de Puebla

Microcontroladores

En el momento en que el bote que representa al tinaco se vacía, el nivel mas bajo (representado por un par de clavos) deja de conducir energía y entonces este manda una señal a nuestro PIC16 para encender la bomba, al mismo tiempo la señal llega a nuestro PIC 18 para enviar via LCD el mensaje de “Bomba encendida”

16

Benemérita Universidad Autónoma de Puebla

Microcontroladores

Una vez que el bote que simula el tinaco se llena, el par de clavos que esta en la parte superior, que indica el nivel optimo del tinaco, se activa, es decir deja pasar la corriente para enviar una señal a ambos PICs, apaga la bomba y el mensaje se representa por la LCD

17

Benemérita Universidad Autónoma de Puebla

Microcontroladores

Teníamos planeado implementar comunicación serial hacia una interfaz realizada en el software LabVIEW y de esta forma representar nuestra cisterna, tinaco y bomba de manera gráfica, de tal forma que el PIC18 mandara las señales a la PC y mediante dicha interfaz, se representaría el llenado del tinaco y el vaciado de la cisterna, así como el encendido de la bomba. Pero tuvimos problemas con la instalcion de los drivers que necesitábamos para realizar completamente la comunicación serial. El programa ya estaba completo y funcionando.

18

Benemérita Universidad Autónoma de Puebla

Microcontroladores

7. Conclusiones Mediante este proyecto pusimos en práctica los conocimientos adquiridos en el curso de microcontroladores, utilizamos dos tipos de PICs, de la familia 16 y de la familia 18. El primero fue utilizado para todo el funcionamiento del sistema, mientras que el 18 fue implementado para enviar datos hacia nuestra LCD. 



    19



Se logro implementar clavos como método de sensado, haciendo pasar por ellos un voltaje de 12 volts, mismos que al provocar un corto con el agua entregaban 5.6 voltios. Se logro implementar amplificadores operacionales en su configuración comparador para entregar 5 voltios a la entrada del pic. El pic16f84a logro detectar los pulsos de 5voltios para el control de la bomba de agua. El pic18f4550 logro detectar los pulsos de 5 voltios para el control de la LCD. Se logro implementar satisfactoriamente un puente H que entregara 12 voltios al relevador. Nuestro relevador utilizado logro manipular voltaje alterno de 127volts rms sin mostrar problemas de calentamiento. Se logro implementar un sistema acoplado con lenguaje C y lenguaje ensamblador.

Benemérita Universidad Autónoma de Puebla

Microcontroladores



Se logro implementar un sistema que funcionara con voltaje DC y voltaje AC.



Se logro crear un sistema que controlara el llenado de un tinaco de forma inteligente y que mostrara al usuario toda la información necesaria para su comodidad.

8. Referencias [1] Hoja de datos del PIC 18F4550 [2] Hoja de datos del PIC 16F34A [3] http://www.forosdeelectronica.com/tutoriales [4] http://es.wikipedia.org/wiki/Rel%C3%A9

9. Apéndices Implementación del control. La implementación del algoritmo se desarrollo en el ambiente de programación MPLAB de la empresa MICROCHIP. CODIGO IMPLEMENTADO __CONFIG _CP_OFF& _WDT_OFF&_PWRTE_ON&_XT_OSC

LIST

20

P=16F84A INCLUDE

CBLOCK 0X0C

Benemérita Universidad Autónoma de Puebla

Microcontroladores

CONTADOR ENDC

#define nivel2cisterna

PORTB,1

#define sensormanguera

PORTB,3

#define nivel1sensortinaco PORTB,5 #define sensorfluidez

PORTB,7

#define nivel2sensortinaco PORTB,6 #define bomba

ORG

PORTA,2

0

Inicio bsf clrf

STATUS,RP0 TRISA

movlw b'11111111' movwf TRISB bcf clrf

STATUS,RP0 PORTA

STREPOSO clrf PORTA ;parpadeo LED bcf call bsf call bcf call

21

bsf call bcf

PORTA,0 Retardo_500ms PORTA,0 Retardo_500ms PORTA,0 Retardo_500ms PORTA,0 Retardo_500ms PORTA,0

Benemérita Universidad Autónoma de Puebla

Microcontroladores

call

Retardo_500ms

bsf call

PORTA,0 Retardo_500ms

bcf

PORTA,0

Principal bsf

PORTA,1

bcf

bomba

btfsc

nivel2cisterna

goto

ST1

goto

Principal

btfsc

sensormanguera

goto

ST2

goto

Principal

btfss

nivel1sensortinaco

goto

ST3

goto

Principal

incf

CONTADOR,F

;segundo sensor de la cisterna

ST1 ;sensor de la manguera

ST2 ;sensor del rotoplas

STA

movlw d'2' subwf CONTADOR,W btfsc

STATUS,C

goto

STREPOSO

ST3

22

bcf

PORTA,1

bsf

bomba

call bsf

Retardo_1s PORTA,1

Benemérita Universidad Autónoma de Puebla

Microcontroladores

call

Retardo_1s

bcf call

PORTA,1 Retardo_1s

bsf call

PORTA,1 Retardo_1s

bcf

PORTA,1

ST4 btfsc

sensorfluidez

;sengundo sensor de la maguera

goto

ST5

goto

STA

btfsc

nivel2cisterna ; segundo sensor de la cisterna

goto

ST6

goto

STAPAG

btfss

nivel2sensortinaco

call

ST5

ST5

ST6 ;nivel optimo de agua

STAPAG bcf

bomba

bsf

PORTA,3

call bcf call bsf call bcf

23

Retardo_500ms PORTA,3 Retardo_500ms PORTA,3 Retardo_500ms PORTA,3

call

Retardo_500ms

goto

Principal

INCLUDE Benemérita Universidad Autónoma de Puebla

Microcontroladores

END

El código implementado en lenguaje C para la programación del envio de datos hacia la LCD fue el siguiente: #include "C:\micro\FINAL\FINAL.h" #include "LCD.c" void main() { lcd_init(); setup_adc_ports(NO_ANALOGS|VSS_VDD); setup_adc(ADC_OFF); setup_wdt(WDT_OFF); setup_timer_0(RTCC_INTERNAL); setup_timer_1(T1_DISABLED); setup_timer_2(T2_DISABLED,0,1); setup_timer_3(T3_DISABLED|T3_DIV_BY_1); setup_comparator(NC_NC_NC_NC); setup_vref(FALSE); setup_oscillator(False); // TODO: USER CODE!! printf(LCD_PUTC, "Sistema activo delay_ms(1000);

24

");

while(1) { if (!input(PIN_B0)) { lcd_gotoxy(1,1); printf(LCD_PUTC, "Cisterna vacia "); lcd_gotoxy(1,2); printf(LCD_PUTC, " "); delay_ms(3000); } if (!input(PIN_B1)) { lcd_gotoxy(1,1); printf(LCD_PUTC, "Purgar la bomba "); lcd_gotoxy(1,2); printf(LCD_PUTC, " "); delay_ms(3000); } if (!input(PIN_B2)) { lcd_gotoxy(1,1); printf(LCD_PUTC, "Verificar tuberia "); lcd_gotoxy(1,2); Benemérita Universidad Autónoma de Puebla

Microcontroladores

printf(LCD_PUTC, " "); delay_ms(3000); } if (input(PIN_B3)) { lcd_gotoxy(1,1); printf(LCD_PUTC, "Bomba encendida "); lcd_gotoxy(1,2); printf(LCD_PUTC, " "); delay_ms(3000); if (input(!PIN_B0)) { lcd_gotoxy(1,1); printf(LCD_PUTC, "Bomba apagada "); lcd_gotoxy(1,2); printf(LCD_PUTC, "Falta de agua"); delay_ms(3000); } } if (input(PIN_B4)) { lcd_gotoxy(1,1); printf(LCD_PUTC, "Bomba apagada "); lcd_gotoxy(1,2); printf(LCD_PUTC, "Tinaco lleno "); delay_ms(3000); } } }

25

Benemérita Universidad Autónoma de Puebla

Microcontroladores