You are on page 1of 11

.

PROYECTO DE ELECTRONICA DIGITAL Correcciones de Lgica Combinacional/Secuencial/TransmisinRecepcin


Buenao Paul, Rodrguez Gnesis, Romay Heberto
Departamento de Electrnica, Escuela de Ingeniera Elctrica Universidad del Zulia
paulbuenano2391@gmail.com genesisrr18@hotmail.com heberomay16@gmail.com

Para la seccin de la emergencia (Ambulancias) se realizaron unos ajustes, para mejorar la estabilidad de los impulsos en el reloj A. Primeramente se realiz un cambio en la seal de entrada, por lo que se sustituyeron pulsadores por switches, para poder mejorar la calidad de la seal de entrada, y as que la seal de salida fuese de 0 a 4, ya que con la disposicin que se tena anteriormente bajaba la tensin de vez en cuando, y llegaba a salir solo 1V. Por otro lado se cambi la disposicin de la compuerta AND con los inversores por lo que el diagrama lgico queda de la siguiente manera:

Figura 1. Modificacin del circuito para el caso de emergencia. En la Figura 1 se puede apreciar la nueva disposicin del circuito de emergencia, donde el integrado Smith trigger, funciona mejor que el un inversor convencional, dando as una mejor estabilidad en los 1 y ceros de la salida, haciendo que llegue de 0 a 1, si pasar por otro voltajes intermedios que repercutan en la estabilidad del circuito del semforo. RESULTADOS Los nuevos resultados del circuito se presentan de la siguiente manera El tiempo que dura el semforo, ahora cambio debido a los pulsos estables que ingresan al circuito, por lo que el tiempo nuevo que tarda la luz verde en cambiar, es de 30 segundos aproximadamente.

Para efectos del circuito, luego de que alguna seal de emergencia entre al circuito, es decir entre un 1 lgico, en la ambulancia 1 (A1) o en la ambulancia 2(A2), el primer mensaje que emite la seal de registro es errneo, cuando se activa la ambulancia 1, el mensaje a la salida de los registro luego de la emergencia es errneo por 1 bit, y cuando se activa la ambulancia 2 el mensaje en el registro luego de la emergencia es errneo por dos bits. Por lo que se debera a un retardo del reloj A para iniciar de nuevo el conteo, por lo que permite que el reloj B, enve al registro un poco ms de 8 bits. Pero en el siguiente conteo el registro muestra la disposicin correcta de la luces. Debido a que el reloj que carga los datos en el registro serie paralelo, es el reloj A, es necesario esperar a que el registro deje de cargar los datos, para seleccionar una de la entrada de emergencia y as observar el comportamiento del circuito. El resto de los resultados y circuitera permanece igual que en el informe anterior.

Implementacin de Microcontroladores (PIC)


RESUMEN:
Con la implementacin de un PIC se obtiene un sistema que controla el llenado y nivel de almacenamiento de agua de dos tanques.

INTRODUCCIN
Los PIC son una familia de micro controladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la divisin de microelectrnica de General Instrument. El nombre actual no es un acrnimo. En realidad, el nombre completo es PICmicro, aunque generalmente se utiliza como Peripheral InterfaceController (controlador de interfaz perifrico). El PIC original se dise para ser usado con la nueva CPU de 16 bits CP16000. Siendo en general una buena CPU, sta tena malas prestaciones de entrada y salida, y el PIC de 8 bits se desarroll en 1975 para mejorar el rendimiento del sistema quitando peso de E/S a la CPU. El PIC utilizaba micro cdigo simple almacenado en ROM para realizar estas tareas; y aunque el trmino no se usaba por aquel entonces, se trata de un

diseo RISC que ejecuta una instruccin cada 4 ciclos del oscilador. En 1985 la divisin de microelectrnica de General Instrument se separa como compaa independiente que es incorporada como filial (el 14 de diciembre de 1987 cambia el nombre a Microchip Technology y en 1989 es adquirida por un grupo de inversores) y el nuevo propietario cancel casi todos los desarrollos, que para esas fechas la mayora estaban obsoletos. El PIC, sin embargo, se mejor con EPROM para conseguir un controlador de canal programable. Hoy en da multitud de PICs vienen con varios perifricos incluidos (mdulos de comunicacin serie, UARTs, ncleos de control de motores, etc.) y con memoria de programa desde 512 a 32.000 palabras (una palabra corresponde a una instruccin en lenguaje ensamblador, y puede ser de 12, 14, 16 32 bits, dependiendo de la familia especfica de PICmicro).

OBJETIVO DE LA PRCTICA Implementar mediante el uso de microcontroladores un sistema que pueda ser controlado con un circuito electrnico.

1 DESARROLLO ANALITICO FUNCIONAMIENTO


El proyecto a desarrollar funciona mediante un circuito que se compone por LEDs, resistencias de dos nominaciones, un dip switch de 3 switches y un microcontrolador PIC16F628A Se presenta un diseo de control de llenado de tanques, los cuales se le suministra agua mendiante un sistema de bombeo, dependiendo del nivel que se encuentre uno de ellos para poder suministrar fluido de uno al otro. Para la disposicin de este sistema, se consideraron dos tanques, uno superior y uno inferior, donde el tanque inferior llena al superior mediante una bomba, el tanque superior se divide entre tres niveles nivel alto, medio y bajo, para decir la cantidad de agua que gay en este. El sistema de llenado de tanque con el PIC 16f628A, tiene tres entradas A1, A0 y A7, donde A1 simboliza el sensor que indica que el tanque superior esta en nivel alto, igualmente A0 que simboliza el sensor que indica que el tanque superior tiene nivel bajo y A7 significa que hay agua o no en el tanque inferior para surtir al tanque superior. El sistema funciona por una parte, de tal manera que el se compruebe constantemente el estado del tanque superior, y por la otra parte que encienda la bomba. La salida funciona, con tres leds que expresan el estado del tanque superior (alto, medio, bajo) y otros dos leds, uno de ellos es un indicador de que no agua en el tanque inferior y el otro es un indicador de que la bomba est funcionando. Para que el sistema compruebe el estado de tanque superior, este funciona con la lgica siguiente: Si hay nivel de agua, en lo alto y en lo bajo en el tanque y: No hay en el tanque inferior, entonces encienden los tres leds indicando que el tanque est completamente lleno, y enciende una luz indicando que no hay agua en el tanque de abajo.

Si hay agua en el tanque inferior, encienden los tres leds sin encender la luz como indicativo de que hay agua. Si hay nivel de agua en los alto, pero no hay nivel de agua en lo bajo entonces, eso indica un error por lo que los tres leds del tanque, titilan expresando la falla. Si no hay nivel de agua alto, pero hay nivel de agua bajo, en el tanque y: No hay agua en el tanque inferior, entonces encienden solo dos luces del tanque indicando que el tanque no est lleno, sino que est en nivel medio. Y adems enciende la luz que indica que no hay agua en el tanque de abajo. Si hay agua en el tanque de abajo, solo encienden las dos luces del tanque. Para que encienda la bomba: Si no hay nivel de agua en lo alto y en lo bajo, dentro del tanque, entonces enva la seal a la bomba para que encienda, mientras en el tanque inferior haya agua y hasta que el tanque superior llegue al nivel alto. Mientras sucede esta condicin la luz de la bomba se enciende, y la luz que indica la existencia de agua en el tanque inferior, permanece titilando, como significado de que est llenando al otro tanque. De las tres luces que indican el nivel del tanque superior, solo encender la que indica el nivel bajo; a medida que el tanque se va llenando y, los sensores A0 y A1 detecten que hay agua y enciendan uno por uno respectivamente, hasta que encienda la tres luces completas que indiquen que el tanque est lleno y se apague la bomba. Si para esta ltima condicin el tanque de abajo queda sin agua, de detiene el llenado.

PATILLAJE

lenguaje C, ya que se utiliza el programa PIC C COMPILER, que resulta ms sencillo de entender al momento de indicar los comandos a ejecutar. De acuerdo al algoritmo presentado, el funcionamiento es el siguiente: El programa comienza con un llamado bucle infinito cuya funcin es iniciarse continuamente, es decir que permite que el programa repita su secuencia cada vez que esta termine, la primera decisin por la que pasa el programa es estudiar si el tanque superior tiene nivel alto de agua, si este caso se da pasa a la segunda decisin que es ver si el tanque superior tiene nivel bajo de agua, si este caso e da procede a revisar si hay agua en el tanque de abajo, si este caso se da el programa procede a encender los LEDs que indican el estado en el que se encuentra el tanque superior, si no hay agua en el tanque de abajo el programa procede a encender los LEDs que indican el estado del tanque superior y un LED que indica que no hay agua, si se da el caso que hay nivel alto en el tanque superior y no hay nivel bajo en el tanque superior el circuito mostrara un error haciendo titilar los LEDs que indican el estado del tanque superior, si no hay nivel alto de agua en el tanque colocamos otra decisin en la cual vemos si hay nivel bajo de agua, si hay nivel bajo de agua, procedemos a ver si hay agua en el tanque de abajo, si hay agua encendern los LEDs que indican el estado en que se encuentra el tanque, sino el programa encender los LEDs que indican el estado en el cual se encuentra el tanque y un LED que indica que no agua, si el tanque superior no tiene nivel alto de agua y tampoco tiene nivel bajo el programa va a evaluar si hay agua en el tanque de abajo, si hay el agua se enciente la bomba hasta que el nivel del tanque superior llegue a nivel alto, sino hay agua se enciende el LED que indica que no hay agua. Adems, se comprueba el funcionamiento mediante una simulacin en el programa PROTEUS
4

Figura 2. Controlador (PIC) 16F628A 2 DESARROLLO EXPERIMENTAL Para desarrollar dicho proyecto se trabaja un algoritmo lgico para indicar las funciones que deben realizarse de acuerdo a las diferentes posibilidades de estado que se presentan. Se tiene como premisa el nivel de llenura de los tanques (alto, medio o bajo) y si hay fluido presente en uno de ellos para suministrar al otro. El algoritmo desarrollado fue el siguiente

Figura 3. Algoritmo del control de llenado y nivel de tanques. Con esto se realiza entonces un programa para el micro controlador, el cual se trabaja en

en proyectos industriales, de investigacin y para docencia. A la hora de realizar un control o automatizacin se requiere de fiabilidad; con este proyecto se puede mostrar que implementando un microcontrolador se puede realizar un excelente control que cumpla con precisin, exactitud, calidad, velocidad y facilidad; siempre y cuando los sensores simulados para las acciones a tomar estn diseadas adecuadamente, ya que en este caso se asume unos sensores mediante la implementacin de switches. Es necesario tambin conocer el lenguaje de programacin con el que se implementa el PIC seleccionado para el proyecto, y en consecuencia tambin los comandos y operaciones con las que es compatible el programa de diseo. Una recomendacin importante es probar el proyecto antes de realizarlo en la prctica. Actualmente existen una gran variedad de programas y software que simulan el comportamiento de casi cualquier sistema, pudiendo as encontrar fallas y solucionarlas para un mejor rendimiento y funcionamiento del circuito que se desea desarrollar. En nuestro caso se implementa el software PROTEUS, el cual ha resultado muy factible y confiable al momento de comparar resultados tericos con los prcticos. Paul Buenao C.I. 19.216.556

Figura 4. Esquema de simulacin del proyecto. 3 FALLAS Y SOLUCIONES Para este caso fue muy poca la ocasin de fallas, pues se van comprobando los comando a medida que se desarrolla el programa. Se tuvo la dificultad de trabajar con MPLAB, por lo que se utiliz el programa PIC C compiler, por asemejarse al lenguaje de programacin donde se tiene mejor manejo de comandos y estructuras. Lo que pudo presentarse fue el caso de que se tuviera una lectura del tanque en nivel alto y a la misma vez no se registrara lectura de nivel bajo, cosa que no es posible ya que el tanque se llena desde abajo hacia arriba. Esto causa un error de lgica que se soluciona como un caso nico en el algoritmo del programa, el cual es indicado por el parpadeo de los leds que indican el nivel de llenado del tanque. 4 CONCLUSIONES
Se establece una comparacin inevitable en relacin a los componentes a utilizar, ya que en este caso se redujo la complejidad y desarrollo del proyecto debido a la simplicidad de los elementos a utilizar, evitando posibles errores de conexin y mal funcionamiento. Puede decirse entonces que elaborar un proyecto con PIC es ms sencillo, aunque su complejidad puede variar de acuerdo a la necesidad del diseo. Los microcontroladores PIC estn en auge, utilizndose

El experimento consisti en disear un circuito con procesadores programables denominados PIC, con la finalidad de controlar un circuito para el llenado de un tanque, en funcin a otro tanque en el que hay agua, que este indicara el encendido de una bomba cuando uno de los tanque llene a otro, que mostrara el estado del tanque que se va a llenar y en el caso de no haber agua en el tanque que va a llevar que indicase de igual manera. Primeramente se dise manualmente la lgica del circuito en base a diagramas de flujos, luego se instal el programa, para ejecutar la programacin del PIC (PIC 16f628A). Se program en PIC C compiler,
5

por mayor facilidad en el lenguaje. Luego se quema el PIC, para introducir el programa en el integrado. Para el montaje las entradas del circuito corresponda a los dos sensores del tanque 1, y tercer sensor corresponda al tanque inferior. Las salidas del circuito eran 5, donde tres indican el estado del tanque 1; las otras 2, pertenecan al tanque inferior y al encendido de la bomba. Para la recopilacin de lo datos, se uso el programa PROTEUS, lo que permiti observar el correcto funcionamiento del programa antes de introducirlo al PIC, donde se comprobaron cada una de las condiciones correspondientes con el diagrama de flujo inicialmente realizado. Verificando hasta obtener los resultados deseados en el comportamiento de los indicadores finales. Concluyendo que para la secuencia del programa lo ideal, es visualizar un posible comportamiento del circuito deseado, luego plasmar las condiciones en un diagrama de flujos, de otra manera resulta complicado. El uso de una herramienta como Proteus da el factor visual para culminar el diseo. Gnesis Rodrguez C.I. 19.216.556 Para esta prctica nuestro objetivo era crear un circuito usando programadores programables mejor conocidos como pics, el circuito que se dise consiste en el control de llenado de un tanque mediante el uso de una bomba y un segundo tanque el cual contendr el agua que va a llenar el tanque superior. Para el circuito utilizamos un PIC 16f628A el cual fue escogido porque este puede ser programado en lenguaje C, dicho lenguaje fue escogido ya que es similar al lenguaje de programacin que venamos conociendo a lo largo de nuestra carrera. Despus de disear el circuito y el programa, lo simulamos utilizamos PROTEUS para as ver si el circuito funcionaba
6

correctamente, al ver que el circuito funcionaba de forma correcta quemamos el PIC. Montamos el circuito y analizamos cada uno de los casos planteados para as observar si el circuito corra de manera correcta. Podemos concluir que el uso de PICs en los circuitos simplifica mucho ms el diseo de estos ya que nos ahorran el uso de una cantidad de compuertas usadas en circuitos de lgica combinacional y secuencial, adems de que tambin el circuito tiene mayor grado de confiabilidad y mayor estabilidad.
Heberto Romay C.I. 20.860.403

ANEXOS
La idea principal del llenado de tanques fue tomada de la pgina web http://mktronicos.scienceontheweb.net/Proyectos.html, donde se presenta un video con la descripcin del siguiente conjunto de comandos:

El algoritmo a utilizar fue el siguiente

Resultando el siguiente programa en lenguaje C, utilizando PIC C Compiler


#include <16F628A.h> #FUSES NOWDT #FUSES INTRC_IO #FUSES NOPUT #FUSES NOPROTECT #FUSES NOBROWNOUT #FUSES NOMCLR #FUSES NOLVP #FUSES NOCPD //No Watch Dog Timer //Internal RC Osc, no CLKOUT //No Power Up Timer //Code not protected from reading //No brownout reset //Master Clear pin used for I/O //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O //No EE protection

#use delay(clock=4000000) void main() { set_tris_b(0x00); set_tris_a(0b11111111); while(true){ if(input(PIN_A1)==1){ if(input(PIN_A0)==1){ if(input(PIN_A7)==1) output_b(0b11100000); else output_b(0b11100001); }else{ output_b(0b11100000); delay_ms(200); output_b(0b00000000); delay_ms(200); } }else{ if(input(PIN_A0)==1){ if(input(PIN_A7)==1) output_b(0b01100000); else output_b(0b01100001); }else{ if(input(PIN_A7)==1){ output_b(0b00100000); while((input(PIN_A1)==0)&(input(PIN_A7)==1)){ if(input(PIN_A0)==1) output_high(PIN_B6); else output_low(PIN_B6); output_high(PIN_B1); output_high(PIN_B0); delay_ms(200); output_low(PIN_B0); delay_ms(200); } } else output_b(0b00100001); } } } }

Empleando luego la siguiente simulacin en PROTEUS

10

El resultado de ambos proyectos fue el siguiente Semforo utilizando lgica combinacional/secuencial y transmisin-recepcin de datos

Control de llenado de tanque utilizando microcontrolador PIC16F628A

11

You might also like