Introducción a los Circuitos Digitales. Ejemplo de Diseño de un Controlador de Luces de un Semáforo. Universidad “San Luis Gonzaga” de Ica. Escuela Académico Profesional de Ingeniería Electrónica. RESUMEN Esta presentación es una introducción al curso los circuitos digitales. Conoceremos un poco sobre el proceso de diseño digital a través de un ejemplo de diseño. En esta oportunidad veremos cómo se especifica, diseña y simula un controlador de luces de un semáforo. El método expuesto aquí es muy intuitivo, más adelante aprenderán a construir circuitos muy complejos siguiendo métodos sistemáticos y creativos. En esta sesión conoceremos las funciones lógicas más simples, contaremos de 0 a 15 en el sistema de numeración binario, y construiremos unos circuitos lógicos para controlar las luces de un semáforo. Finalmente usaremos circuitos integrados para construir el semáforo. INFORME DEL PROYECTO Comencemos por analizar cómo funciona un semáforo. En la siguiente tabla podemos ver los estados de un semáforo típico. Este semáforo tiene cuatro estados o combinaciones diferentes de luces. Necesita 12 faros, pero los faros que apuntan en direcciones opuestas siempre muestran el mismo estado, por lo tanto, el circuito de control solamente debe proveer 6 salidas, tres para cada sentido (Norte-Sur y Este-Oeste). Noten que el semáforo tiene cuatro estados que duran unos periodos definidos. N-S / E-O Rojo Sentido Norte Sur Ambar Verde Rojo Sentido Este Oeste Ambar Verde Periodo ON OFF OFF OFF OFF ON T1 ON OFF OFF OFF ON OFF T2 OFF OFF ON ON OFF OFF T3 OFF ON OFF ON OFF OFF T4 Cada faro puede tener su luz encendida (ON) o apagada (OFF). Cuando u faro esté encendido vamos a representar ese estado con 1 (ON), y cuando esté apagado con un 0 (OFF). Apagado = OFF = 0 Encendido = ON = 1 Un bit es un tipo de número que puede tener sólo dos valores: 0 y 1. Entonces las salidas de control para cada faro pueden codificarse con seis bits en total. Sentido Norte Sur Sentido Este Oeste Periodo Rojo Ambar Verde Rojo Ambar Verde 1 0 0 0 0 1 T1 1 0 0 0 1 0 T2 0 0 0 1 1 0 1 1 0 0 0 0 T3 T4 Cuando un bit está en 1 quiere decir que la luz de ese faro debe encenderse en el periodo correspondiente, y cuando el bit esté en 0 la luz del faro deberá apagarse. Antes de continuar, todo circuito digital tiene bits de entrada y bits de salida. Los bits de las luces de los semáforos son bits de salida, porque son bits que el circuito lógico envía al exterior. Los bits de entrada son bits que el circuito recibe del exterior. A veces algunos bits se agrupan en buses para representar cantidades mayores a 0 y 1. Volveremos a este punto más adelante. Ahora vamos a darles nombres a los bits de salida. Mirando la tabla previa, vamos a asignar de izquierda a derecha los siguientes nombres: RojoNS, AmbarNS, VerdeNS, RojoEO, AmbarEO, VerdeEO, El sufijo NS hace referencia al sentido Norte-Sur y el sufijo EO al sentido Este-Oeste. Ahora observa que: o o o o o o RojoNS es 1 cuando el periodo es T1 o T2 y es 0 en los periodos T3 y T4. AmbarNS es 1cuando el periodo es T4, y es 0 en el resto de periodos. VerdeNS es 1 cuando el periodo es T3, y es 0 en el resto de periodos. RojoEO es 1 cuando el periodo es T3 o T4, y es 0 en los periodos T1 y T2. AmbarEO es 1 cuando el periodo es T2, y es 0 en el resto de periodos. VerdeEO es 1 cuando el periodo es T1, y es 0 en el resto de periodos. Debido a que los bits solamente pueden tener dos estados, basta con escribir estas relaciones del siguiente modo: o o o o o o RojoNS es 1 cuando el periodo es T1 o T2. AmbarNS es 1 cuando el periodo es T4. VerdeNS es 1 cuando el periodo es T3. RojoEO es 1 cuando el periodo es T3 o T4. AmbarEO es 1 cuando el periodo es T2. VerdeEO es 1 cuando el periodo es T1. Existe una manera formal para indicar estas relaciones si usamos las siguientes convenciones. o o o o Si para que ocurra el evento F es necesario que simultáneamente el evento A y el evento B ocurran, entonces decimos que F = A AND B. Si para que ocurra el evento F es necesario que el evento A o el evento B ocurran, entonces decimos que F = A OR B. Observa que si ambos eventos ocurren también ocurre F. Si para que ocurra el evento F es necesario que no ocurra el evento A, entonces decimos que F = NOT A. Si para que ocurra el evento F es necesario que ocurra el evento A, entonces decimos que F = A. De acuerdo a esto, si representamos con 1 cuando ocurre un evento y con 0 cuando no ocurre, podemos transformar las sentencias anteriores en nuevas sentencias equivalentes. RojoNS es 1 cuando el periodo es T1 o T2 AmbarNS es 1 cuando el periodo es T4 VerdeNS es 1 cuando el periodo es T3 RojoEO es 1 cuando el periodo es T3 o T4 AmbarEO es 1 cuando el periodo es T2 VerdeEO es 1 cuando el periodo es T1 RojoNS = T1 OR T2 AmbarNS = T4 VerdeNS = T3 RojoEO = T3 OR T4 AmbarEO = T2 Verde = T1 Las operaciones AND, OR Y NOT son las funciones básicas de la lógica matemática, y juegan un papel fundamental en el diseño de circuitos integrados. En el diseño lógico estas funciones tienen símbolos que facilitan su identificación en un diagrama esquemático (en los diagramas usaremos símbolos realzados para una presentación diferente): AND OR NOT Función Y Función O Función NO Producto .(punto) Suma +(más) Complemento '(apóstrofe) -(raya superior) Puedes entender mejor cómo trabaja la función AND observando las siguientes figuras. Nota que un led rojo indica encendido y uno blanco indica apagado. Presta atención a la posición de los interruptores: la posición abajo lo desconecta e indica 0 (OFF) y la posición arriba lo conecta e indica 1 (ON). La función AND de dos entradas tiene la salida 1 solamente cuando ambas entradas están en 1, y en otro caso la salida es cero. Para el caso de la función OR ocurre algo similar: La función OR de dos entradas tiene la salida en 1 si cualquier entrada está en 1, y en otro caso la salida es cero (cuando ambas entradas están en 0). Para la función NOT tenemos: Si el valor de entrada es 0, entonces el valor de salida será 1. Si el valor de entrada es 1, entonces el valor de salida será 0. Es decir, la función NOT se encarga básicamente de negar el valor de la entrada para dar como salida el valor opuesto, como en este caso que sólo trabajamos con 2 valores, se comporta como un inversor. Puedes notar que para crear un circuito lógico es necesario contar como mínimo con: entradas (por ejemplo interruptores), salidas (por ejemplo indicadores luminosos o leds) y circuitos que realicen funciones lógicas (por ejemplo AND, OR, NOT). Existen más tipos de entradas, más tipos de salidas y una variedad de funciones lógicas, las cuales irás conociendo conforme avancemos en la carrera universitaria. Ahora intenten responder a esta pregunta: ¿T1, T2, T3 y T4 son entradas, funciones o salidas? Pues, son bits que se generan y utilizan internamente en el circuito lógico. Quizás hayas recordado que estos periodos son los periodos de tiempo para cada estado del semáforo. En los circuitos digitales, las señales internas se generan a partir de funciones intermedias para obtener el resultado final. Los periodos de tiempo en este caso son resultado de estados internos del circuito. Un estado en un circuito lógico queda determinado por el estado anterior del circuito, es decir, por las condiciones de funcionamiento pasadas, y también por las entradas actuales. En el caso del semáforo hemos definido cuatro estados, pero ¿Cuántos estados son posibles en total? Si tomamos en cuanta solamente las seis luces, en total habrá 2 elevado a la potencia 6 estados, es decir, 64 estados. Por ejemplo, un estado más puede ser que las luces rojas de ambos sentidos se enciendan al mismo tiempo. Esto puede ser útil en caso de emergencia. Pero un caso impráctico sería, por ejemplo, encender ambas luces verdes al mismo tiempo o encender a la vez la luz roja y verde de un mismo sentido. Si fueras policía de tránsito u tuvieras que controlar manualmente el semáforo apretando unos botones, ¿Cómo harías para saber cuánto tiempo dejas al semáforo en cada estado? Asumiendo que el tráfico es similar en ambos sentidos, quizás tomarías tu reloj y asignarías intervalos de tiempos en segundos, por ejemplo, 25 segundos pata T1 y T3, y 5 segundos pata T2 y T4. Eso haría que el ciclo del semáforo se repita cada minuto. En nuestro semáforo particular vamos a hacer que el ciclo dure 16 segundos. Los circuitos digitales emplean fácilmente el sistema binario para contar. El sistema binario es el sistema de numeración en base 2. Nosotros estamos familiarizándonos con el sistema decimal, el que usamos para contar con los dígitos del 0 al 9. En el sistema binario contamos con bits, con dígitos del 0 al 1. Para que puedas comparar ambos sistemas, en la siguiente tabla puedes ver la cuenta binaria para una cuenta decimal equivalente desde 0 hasta 15 (osea, para 16 cuentas). Periodos de Tiempo Rango de Cuenta T1 0a6 T2 7 T3 8 a 14 T4 15 Indicadores Leds Cuenta Binaria q₃, q₂, q₁, q₀ 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Cuenta Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Esta tabla nos va a permitir hallar una relación entre los estados del semáforo, los periodos de tempo, las entradas y salidas para el circuito lógico. Los bits de la cuenta binaria lo vamos a representar con q₃, q₂, q₁ y q₀. El bit q₃ es el más significativo, ubicado más a la izquierda del número. El bit q₀ es el menos significativo, ubicado más a la derecha del número. Estos bits van a cambiar automáticamente cada segundo, es decir, cada cuenta va a permanecer activa por un segundo y luego el contador hará que la cuenta se incremente. Cuando la cuenta sea 15 la cuenta siguiente será 0 y el ciclo se repetirá. A continuación vamos a dividir los 16 segundos en cuatro periodos. A T1 y T3 le daremos 7 segundos y a T2 y T4 le vamos a dar 1 segundo. ¿Tienes una idea de cómo relacionar estos tiempos con el contador? La forma más sencilla de hacerlo es así: Cuando el contador está: En el rango de 0 a 6 En 7 En el rango de 8 a 14 En 15 El periodo es: T1 T2 T3 T4 En la tabla siguiente juntamos todo, la cuenta binaria en cada periodo y las luces de salida: Cuenta Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Cuenta Binaria q₃q₂q₁q₀ 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Periodo T1 T2 T3 T4 RojoNS AmbarNS VerdeNS RojoEO AmbarEO VerdeEO 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 Lo que vamos a hacer es que los bits de salida del circuito pasen a ser función de los bits de salida de un contador binario. Presta atención a cada bit de la cuenta binaria y a las luces. ¿Cuándo se prende la luz RojoNS? Cuando q₃ está apagada, que es cuando ocurren los periodos T1 o T2, tal como habíamos visto antes. Es decir, la relación general: RojoNS = T1 OR T2 Podemos cambiarla por la relación más precisa: RojoNS = NOT q₃ Mira lo que pasa con VerdeEO. Presta atención solamente a la combinación de bits de la cuenta binaria que hace que VerdeEO sea 1. ¿Puedes hallar una relación? Para que VerdeEO sea 1 q₃ debe ser 0 pero además los bits restantes no pueden ser 1 al mismo tiempo. En cualquier otra situación VerdeEO es 0. Es decir, VerdeEO se enciende cuando q₃ no se enciende y además q₂, q₁ y q₀ tampoco se encienden al mismo tiempo. Eso podemos representarlo así: VerdeEO = ( NOT q₃ ) AND ( NOT ( q₂ AND q₁ AND q₀ ) ) De manera similar, intenta deducir lo siguiente: RojoEO = q₃ AmbarEO = ( NOT q₃ ) AND ( q₂ AND q₁ AND q₀ ) VerdeNS = ( q₃ ) AND ( NOT ( q₂ AND q₁ AND q₀ ) AmbarNS = ( q₃ ) AND ( q₂ AND q₁ AND q₀ ) Notarás que la expresión q₂ AND q₁ AND q₀ se repite en cuatro casos. Siendo así, resulta conveniente asignar esta expresión a una función X, con lo cual tenemos: RojoNS = NOT q₃ RojoEO = q₃ X = q₂ AND q₁ AND q₀ VerdeEO = ( NOT q₃ ) AND ( NOT X ) AmbarEO = ( NOT q₃ ) AND ( X ) VerdeNS = ( q₃ ) AND ( NOT X ) AmbarNS = ( q₃ ) AND ( X ) MATERIALES Protoboard. 1 Circuito Integrado 74LS191. 2 Circuitos Integrados 74LS08. 1 Circuito Integrado 74LS04. 5 Leds amarillos. 2 Leds rojos. 2 Leds amarillos. 2 Leds verdes. 1 Circuito Integrado LM555. 11 Resistencias de 330Ω. 1 Resistencia de 1k. 1 Potenciómetro de 10k. 1 Capacitor de 100 Uf. DIAGRAMAS Y ESQUEMAS A partir de estas expresiones podemos hallar los circuitos lógicos: Q0 AND 1 AND 1 3 CONN-SIL1 NOT X 1 2 3 1 NOT X 2 2 74LS08 Q1 74LS08 74LS04 1 CONN-SIL1 Q2 1 CONN-SIL1 NOT Q3 1 1 AND 2 1 3 CONN-SIL1 74LS04 2 VerdeEO 74LS08 AND NOT Q3 1 3 AmbarEO 3 VerdeEO 3 AmbarNS 2 74LS08 AND 1 2 74LS08 AND 1 2 74LS08 RojoNS RojoEO Para construir este circuito lógico se necesitan circuitos integrados que realicen tales funciones lógicas. En este caso vamos a usar un 74LS191, dos 74LS08, y un 74LS04. Todos los chips deben ser polarizados para funcionar correctamente, es decir, deben conectarse a una batería o alimentación de voltaje. Estos chips operan con voltajes de 4.5 a 5v. Observa en la siguiente figura. Un 7408 tiene cuatro puertas en el chip, cada una puede realizar una función AND de dos entradas. El pin de VCC es el 14, el GND el 7. El pin de VCC debe conectarse con el terminal positivo de la batería y el pin GND con el terminal negativo. En los demás chips debe hacerse lo mismo. En la siguiente figura podemos observar una compuerta NOT. El integrado 74LS04 es el que contiene 6 de estas compuertas NOT, como el 7408. El pin de VCC es el 14, el de GND el 7. El circuito integrado 74LS191 es un contador de 4 bits. El contador binario provee las señales q₃, q₂, q₁ y q₀. El 74191 tiene 16 pines, el pin 16 se conecta a VCC y el pin 8 a GND. Los pines 4 y 5 se deben conectar a GND. Los bits q₃, q₂, q₁ y q₀ se encuentran en los pines 7, 6, 2 y 3, respectivamente. El pin 14 se conecta a la señal de 1 Hz. EL OSCILADOR 555 El circuito integrado LM555, es un temporizador, también llamado timer, es un circuito que se comporta como un oscilador, es decir, va a arrojar señales secuenciales y alternas entre los valores 0 y 1, las cuales nosotros recibiremos como unas pulsaciones para poder garantizar el correcto funcionamiento del contador 74LS191. Este integrado consta de 8 pines, el pin 1 va conectado a GND y el pin 8 a VCC. En el siguiente diagrama podemos apreciar las conexiones completas del LM555, el cual lo hemos dibujado y simulado en el Proteus. J1 1 CONN-SIL1 R1 1k 4 R VCC 8 U1 Q DC 5 3 7 CV TR 1 2 GND RV1 TH R2 330R 6 10K NE555 D1 LED-YELLOW C1 100u J2 1 CONN-SIL1 CONEXIONES DE LOS PINES Ahora veremos cómo ubicar las funciones lógicas en los circuitos integrados. Se puede elegir cualquier puerta lógica en el 74LS08 y 74LS04 para las ANDs y NOTs respectivamente. Para este diseño vamos a hacer lo siguiente. La AND 1 y 2 se arman en un 74LS08 y las AND 3, 4, 5 Y 6 en el otro 74LS08. Las NOT 1 y 2 se construyen sobre un 74LS04. En la siguiente figura se muestra un esquema del circuito con el programa “Simulador digital”. Los bits q₃, q₂, q₁ y q₀ se han conectado a los leds amarillos (5, 6, 7, 8) para observar la cuenta binaria. Se puede usar otro esquema, el mostrado en la figura sólo sirve como una guía. Ya veremos luego el circuito terminado en un protoboard, cabe resaltar que este programa denominado “Simulador digital” nos fue de mucha ayuda, ya que al simularlo primero virtualmente antes de construirlo en el protoboard, nos ayudó a despejar posibles errores de conexiones y así evitar que al construirlo físicamente se nos queme algún componente debido a una mala conexión. MEJORAS RESPECTO A LA METODOLOGIA ANTERIOR Lo que principalmente buscamos es que este proyecto se pueda instalar en las distintas arterias principales de esta ciudad, por ende las mejoras de diseño serían las siguientes: Primeramente queremos que este circuito, que por lo pronto está montado sólo es un protoboard, lo podamos plasmar en una placa, esto usando algún método de impresión y conexiones de las pistas, para mejorar el transporte y la solidez de las conexiones, puesto que el protoboard no nos garantiza un cableado estable, puesto que es propenso a que los cables se desconecten en un trajín o transporte. Otra mejora de diseño que podemos mencionar es construirle una interfaz o encapsulado, esto con el fin de poder mantener la placa impresa, la cual ya habremos terminado, en un estado fijo, este punto consta básicamente de una caja de algún material pertinente, además de acoplarle otras mejoras del circuito, como un fusible, una alarma contra posibles cortocircuitos, etc. Queremos agregarle también, un contador para que no solo podamos apreciar la cuenta binaria mediante los leds, sino que vamos a decodificarla para poderla apreciar en unos displays de 7 segmentos. Un tercer punto o mejora es agregarle al circuito unos sensores de paso para evitar el problema de los semáforos ya existentes. El cual es que al momento de un tránsito escaso de vehículos motorizados, a altas horas de la noche por ejemplo, o en el mismo horario diurno también; a veces he observado que hay automóviles que estás parados en la luz roja (en un sentido Norte-Sur) por ejemplo, pero si vemos en el otro cruce de la pista o el otro sentido del semáforo (el sentido EsteOeste), no pasa ningún otro tipo de movilidad o vehículo. Esto causa una molestia en los conductores además de hacerle perder tiempo en vano, imaginemos que esa movilidad lleve un herido de urgencia, no queremos imaginarnos el descenlace y para evitar esto, está nuestro semáforo, al cual colocándole unos sensores que detecten si en el otro sentido se acercan o no otros vehículos en la luz roja del sentido contrario. En esta otra imagen podemos observar un escenario simulado de la vida real en 2D, es decir, cómo se vería nuestro proyecto instalado en una calle común y con lo cual queremos que termine este proyecto que nace como un trabajo encomendado. Sabemos que para ello tenemos que hacer las coordinaciones correspondientes con una municipalidad en donde deseemos implementar este proyecto, pero tenemos todas las ganas de trabajar por la comunidad iqueña y el desarrollo del Perú, además de dejar en alto el nombre de la universidad, por tal motivo estamos dispuestos a continuar con este proyecto y que no quede solo en esto, un proyecto; sino que queremos verlo como lo muestra la figura siguiente. Integrantes: De la Cruz Martínez, Diego Figueroa Ñañez, Joseph Zarate Ramirez, Jahir