Instituto Tecnológico de Chihuahua Proyecto: Medidor de velocidad
Materia: Electrónica digital Semestre: Agosto-Diciembre 2013 Alumnos: Emmanuel Corral Trevizo 10060182 Julio César Estrada Castañón 09061072 Ever Alejandro Flores Ávila 11060683 Docente: Ontiveros Castellanos Sandra Gerarda
Objetivos y definición del proyecto Este proyecto tiene como objetivo medir la velocidad promedio de un cuerpo que pase a través de una distancia preestablecida. La distancia se podrá establecer antes de cada prueba, existiendo la posibilidad de que ésta se de en cualquier sistema de unidades, esto solo afectará el sistema de unidades en el que se encuentre la velocidad del cuerpo. El circuito electrónico final tendrá como entradas la distancia y dos señales de control, enviadas por sensores magnéticos (reed switch’s) que estarán colocados en el inicio y termino del recorrido establecido para el cuerpo. Estas dos señales arrojarán una salida que es el tiempo. Se implementará la ecuación donde la distancia es información preestablecida y el tiempo será un dato que se genere dentro del mismo proyecto para finalmente tener una sola incógnita en la ecuación anterior y llegar al resultado final, la velocidad promedio.
Material 3 74LS83 1 74LS86 5 74LS32 2 DM74LS85 2 74LS194 8 74LS08 2 74LS47 2 74LS160 3 74LS04 2 74LS74 1 74LS169 1 74LS273 2 74LS00 1 GAL22V10 2 reed switch 2 display ánodo común y 2 cátodo común 3 led 4 capacitores de 7 microfaradios 2 555 2 capacitores de cerámica 4 resistencias de 1 kΩ 1 resistencia de 100 kΩ 8 resistencias de 100 Ω 2 botones pulsadores 7 protoboards 1 dip switch 1 potenciómetro de 50 kΩ 1 pequeño auto de juguete 1 imán
Marco teórico y algunas especificaciones Compuerta OR La compuerta OR opera de manera que su salida este en alto. La salida de la compuerta OR estará en bajo (0 lógico) solo si todas sus entradas están en 0 lógico La operación OR produce un resultado (salida) de 1 siempre que cualquiera de sus entradas sea 1. En cualquier caso la salida será 0. La expresión x= A + B se lee como x es igual a A OR B. Se utilizaron 74LS32
Compuerta AND La compuerta AND opera de manera que su salida este en alto solo cuando todas sus entradas se encuentren en alto. Para todos los demás casos estará en bajo. La salida de una compuerta AND será 1 solo para el caso en el que todas las entradas sean 1; para todos los demás casos la salida será 0 La expresión X= AB se lee como x es igual a A AND B. Se utilizaron 74LS08
Compuerta NOT Es distinta a las operaciones OR y AND, ya que puede realizarse sobre una sola variable de entrada. Donde si a esta sujeta a la operación NOT es: X = (-A) que se puede leer como x es igual al inverso de A. Se utilizaron 74LS04
Compuerta NAND La compuerta NAND opera igual que una AND seguido de un inversor, la salida de la compuerta NAND es el inverso exacto de la compuerta AND para todas las posibles condiciones de entrada. Se utilizaron 74LS00
Compuerta OR exclusiva La tabla de verdad que acompaña a este circuito muestra que X=1 para 2 casos: cuando A=0, B=1 y A=1, B=0, en otras palabras produce una salida en alto siempre que las 2 entradas se encuentren en los niveles opuestos. Una compuerta XOR solo tiene 2 entradas, no hay compuertas XOR de 3 o 4 entradas. Se utilizaron 74LS86
74LS85 Circuito que sirve para comparar magnitudes de hasta 4 bits, puede decir si el número es mayor, menor o igual con el número comparado.
74LS83 Sumador de 4 bits en binario con carry de salida y de entrada Este circuito sirve para dar una adición lógica a los números binarios, se puede tener un numero inicial de entrada ya sea 1 o 0, además se puede modificar para que también reste, divida o multiplique ya sea A+B o –A+B entre otras combinaciones.
NE555 El circuito integrado 555 es un circuito integrado de bajo costo y de grandes usos en variadas aplicaciones. En este caso se ha utilizado como un generador de pulso.
74LS194 Registro bidireccional universal de 4 bits Este circuito es un registro de corrimiento Un registro de corrimiento es un circuito secuencial síncrono capaz de contactar varios bits de información. El formato de esta información puede ser de dos tipos: • Serie: los bits se transfieren uno a continuación del otro por una misma línea. • Paralelo: se intercambian todos los bits al mismo tiempo, utilizando un número de líneas de transferencia igual al número de bits.
Display Se llama visualizador, display en inglés, a un dispositivo de ciertos aparatos electrónicos que permite mostrar información al usuario de manera visual. Un visualizador de una señal de vídeo se lo llama más comúnmente pantalla; En un visualizador de 7 segmentos se representan los dígitos 0 a 9 iluminando los segmentos adecuados. También suelen contener el punto o la coma decimal. A veces se representan también algunos caracteres como la "E" (Error), "b" o "L" (Low Battery), etc.
74LS47 Comvertidor de BCD a 7 segmentos Es un elemento digital que funciona a base de estados lógicos, con los cuales indica una salida determinada basándose en un dato de entrada característico, su función operacional se basa en la introducción a sus entradas de un número en código binario correspondiente a su equivalente en decimal para mostrar en los siete pines de salida establecidos para el integrado.
74LS160 Contador década BCD de 4 bits Este circuito sirve como indica su nombre un contador que va del 0 al 9, que carga los datos en paralelo, pueden ser utilizados para contar de0-9, si se utilizan 2 puede contar de0-99 y así sucesivamente.
74LS74 Flip-flops tipo d El "flip-flop" tipo D, sigue a la entrada, haciendo transiciones que coinciden con las de la entrada. El término "D", significa dato; este "flip-flop" almacena el valor que está en la línea de datos. Se puede considerar como una celda básica de memoria. Un "flipflop" D, se puede hacer con un "flip-flop" "set/reset", uniendo la salida set (estado alto) con la salida reset (estado bajo), a través de un inversor. El resultado se puede sincronizar.
La salida Q seguirá a la entrada D tanto tiempo como este habilitado el "flip-flop".
74LS169 Contador bidireccional hasta el numero 15 binario Similar al contador 74LS160 solo que este cuneta hasta 16 en binario y puede ser ascendente y descendente, es decir contar de 15 a 0 o de 0 a 15.
74LS273 Al igual que el 74LS74 contiene flip-flops tipo d, la diferencia es que contiene 8.
Reed switch Los sensores de proximidad magnéticos son caracterizados por la posibilidad de distancias grandes de la conmutación, disponible de los sensores con dimensiones pequeñas. Detectan los objetos magnéticos (imanes generalmente permanentes) que se utilizan para accionar el proceso de la conmutación.
Led Se refiere a un componente opto electrónico pasivo, más concretamente, un diodo que emite luz. La palabra española «led» proviene del acrónimo inglés LED (LightEmitting Diode: ‘diodo emisor de luz’). Cuando un led se encuentra en polarización directa, los electrones pueden recombinarse con los huecos en el dispositivo, liberando energía en forma de fotones. Este efecto es llamado electroluminiscencia y el color de la luz (correspondiente a la energía del fotón) se determina a partir de la banda de energía del semiconductor.
A Ánodo B Cátodo 1 Lente/encapsulado (capsula plástica) 2 Contacto metálico (hilo conductor) 3 Cavidad reflectora (copa reflectora) 4 Terminación del semiconductor 5 Yunque 6 Plaqueta 8 Borde plano
Resistencias y capacitores Las resistencias fueron usadas para disminuir el voltaje de entrada a los displays de ánodo común, en la implementación del dip switch y junto con los capacitores para la elaboración de los circuitos antirebote:
Latch S-R (SET-RESET) Un latch es un tipo de dispositivo lógico biestable o multivibrador. Un latch S-R con entrada activa a nivel alto se compone de dos compuertas NOR acopladas como se muestra en el inciso (a) de la figura de abajo, mientras que un latch S-R con entradas activas en bajo está formado por dos compuertas NAND conectadas como se muestra en el inciso (b) de la misma figura. Obsérvese que la salida de cada compuerta se conecta a la entrada de la compuerta opuesta. Esto origina la retroalimentación (feedback) regenerativa característica de todos los latches y flip-flops. Esta herramienta se usó para capturar un dato y guardarlo hasta una señal de reset en varias instancias del proyecto.
Detector de secuencias
Timer de 1 Hz
Contador
Diagrama general de bloques:
Comentarios del desarrollo y conclusiones La idea original para este proyecto fue hacer un medidor de velocidad, al principio del semestre no teníamos ni idea de cómo se podría hacer pero conforme fuimos conociendo algunas herramientas fuimos estructurando el proyecto. Esta inicial idea se mantuvo hasta que nos enfrentamos a la práctica del multiplicador-divisor, por lo que empezamos a ver nos pareció que sería mucho más difícil implementar el divisor (que es lo que necesitaríamos para el proyecto) por lo que pensamos que podría ser mejor buscar que el resultado fuera la distancia, la obtendríamos multiplicando la velocidad constante de un tren o auto de control remoto por la cantidad de tiempo que tarde en llegar de un punto de control a otro y así saber que distancia se había recorrido. Estudiamos dos métodos para hacer la multiplicación, el primero tenía una mayor eficiencia, se desarrollaba con registros de corrimiento, el segundo desarrollaba sumas sucesivas para llegar al resultado, después de analizar los dos métodos vimos que para nuestro proyecto era más fácil implementar el de las sumas sucesivas. Mientras pensábamos directamente en la implementación y dispositivos a utilizar vimos que de una manera muy similar podríamos lograr la división, mediante restas sucesivas, fue entonces que volvimos a la idea original de hacer un medidor de velocidad, ingresando la distancia como una “constante” o distancia preestablecida por medio del dip switch y hacer la resta de esa distancia entre la cantidad de tiempo que tardara el auto de juguete en recorrer esa distancia. Otra de las variantes que se presentaron fue que al principio pensamos en usar un GAL22V10 para capturar la cantidad de tiempo que se estaba contabilizando al momento que terminara de recorrer la distancia preestablecida, de hecho si se programó esa función en el GAL, pero luego cuando en empezamos a ver el funcionamiento de los registros y las posibilidades de éstos, vimos que solo necesitábamos un registro de 4 bits que su carga paralela se habilitara justo en el momento en que necesitábamos capturar el dato del tiempo (de hecho el dispositivo que usamos para eso no se considera un registro como tal, es un Octal D-type flip flop). Esas fueron las principales cosas que cambiaron durante la elaboración del proyecto, claro que hubo muchas situaciones que resolver y en muchas ocasiones tuvimos que regresar a temas muy básicos para pasar de un “no funciona…” a un “¡ya funcionó!”. Por ejemplo para el detector de secuencias hicimos todo el proceso para diseñarlo, desde el diagrama de transición de estados, la obtención de los mapas de karnough y su resolución para obtener las funciones de entrada y salida de cada flip flop a utilizar. Otra situación en donde también fue muy importante un conocimiento básico fue al momento de usar el sumador para hacer las restas sucesivas. Usamos dos 74LS83 que es un sumador binario de 4 bits, ambos los conectamos en serie para obtener uno de 8 bits. La distancia también la manejamos de 8 bits (que sería el primer dato de entrada al sumador, luego en lugar de esa distancia se estaría cargando al sumador el dato que en ciclo anterior había sido el resultado del mismo sumador de 8 bits) y por otra parte al sumador le llegaba el tiempo, este era solo de 4 bits y necesitábamos que llegara al sumador en 2 complemento (para que fuera negativo y se hiciera la resta). Lo que hicimos inicialmente fue complementar el tiempo de 4 bits y mandarlo al sumador, los otros 4 bits de esa misma entrada del sumador los dejamos en cero. Empezamos a
hacer pruebas para verificar que efectivamente se hiciera división, pero solo funcionaba en los casos en que metíamos datos de 4 bits en la distancia. Luego de pasar mucho tiempo verificando cables, circuitos integrados, la implementación entre otras cosas, se nos ocurrió de pronto llegar hasta lo más básico, la resta binaria. Fue ahí donde nos dimos cuenta que si a un número de 8 bits queremos restarle algo, necesitamos tener el número en 2 complemento, pero en 8 bits también. Nosotros solo estábamos haciendo el 2 complemento de un número de 4 bits, las otras 4 entradas del sumador las dejamos en cero. La solución fue sencilla, en lugar de mandar ceros a las 4 entradas más significativas del sumador mandamos 1’s, ya que cualquier número de 4 bits en 2 complemento tendrá 1’s en los siguientes bits más significativos que se necesiten para la resta. Fue una solución sencilla, y de hecho un conocimiento básico, pero nos llevó mucho tiempo resolverlo porque el error estaba justamente en algo base de la función que queríamos desarrollar. Con este proyecto aprendimos muchas cosas, cosas que vimos en clase pudimos implementarlas y de esa manera es más fácil que lo recordemos y que sintamos que de verdad aprendimos. Pudimos implementar en este proyecto muchas de las cosas que se vieron en la materia, pensamos mucho en cómo implementar las herramientas que estábamos conociendo. Además contar con el datasheet de cada uno de los componentes es de mucha ayuda, obviamente es necesario para identificar que es cada pin del integrado, pero viene mucha más información que esa en cada datasheet. Podemos decir que conociendo diferentes herramientas e investigando sus usos y funciones durante el curso fue que logramos empezar a diseñar por nuestra propia cuenta las funciones que requeríamos para nuestro proyecto, claramente se presentaron muchas situaciones que resolver, pero les encontramos solución ya que contábamos con los fundamentos de las funciones que estábamos implementando.