Frontal de descodificador

      No hay comentarios en Frontal de descodificador

Revisando en el trastero todo aquello que me pudiera servir para mis arduinos, me encontré algún que otro descodificador. De uno de ellos obtuve este panel:

Panel frontal descodificador (Frontal)

Panel frontal descodificador (Frontal)

Básicamente tenemos ocho botones, un display de 4 dígitos, dos leds bicolores (rojo-verde) y tres de color (rojo, amarillo, verde) y un receptor IR con su mando a distancia… todo por el módico precio de averiguar cómo demonios controlar esto con un Arduino. Tenía la esperanza de que al tener tantos componentes en la placa y sólo un bus de diez líneas como única comunicación con la placa base sería posible controlar el panel de forma sencilla con Arduino.

Así que lo primero que hice fue revisar la trasera del frontal para ver qué circuitos integrados (aka garrapatas negras) lleva el trasto:

Panel frontal descodificador (Trasera)

Panel frontal descodificador (Trasera)

En la foto no se observa, pero con una lupa y la iluminación adecuada pude comprobar que los dos únicos circuitos integrados son el MM74HC595M:

MM74HC959M

MM74HC959M

Una rápida búsqueda nos da como resultado que el MM74HC595M es un registro de desplazamiento de 8 bits (8bits Shift Register) del que hay sobrada documentación con respecto a cómo controlarlo con Arduino. Así que mi primera intuición empezaba a cobrar fuerza.

Sin embargo necesitaba saber el esquema para poder averiguar cómo controlar el panel. Así que en dos o tres días ya tenía los primeros esquemas a mano de la parte de los cuatro dígitos de siete segmentos y en dos o tres días más el esquema definitivo:

Panel frontal descodificador (esquema)

Panel frontal descodificador (esquema)

Del esquema se puede ver que con sólo 8 cables (6 si descontamos Vcc y GND) podemos controlar los 4 dígitos de siete segmenos, los 5 leds (dos de ellos bicolor), recibir las señales del mando a distancia y saber qué pulsador es el que se ha accionado.

Lo más fácil es utilizar el receptor de infrarrojos, ya que con conectar la alimentación (pin 1 del panel a GND y pin 9 a +5V) y conectar el pin 2 del panel a una entrada digital del Arduino ya podemos jugar con un mando a distancia.

Evidentemente para jugar con el resto de elementos hay que pensar un poco más. Por ejemplo, algo que en los ejemplos y circuitos que he visto con Arduino y el 74595 suelen obviar el pin Enable de estos chips. El panel lo utiliza y le da salida, siendo muy útil pues si en setup lo ponemos en HIGH antes de poner el panel en su configuración inicial (la que decidamos que deba ser) y una vez establecida dicha configuración ponemos el Enable a LOW habremos tenido el panel completamente apagado (los leds y los segmentos de los dígitos) hasta obtener una situación estable y conocida:

La verdad, el resultado es muy chulo, sobre todo por las opciones que me da sin tener que cablear o soldar nada:

Y el código completo:

Lo único que no estaría en un código de producción sería la variable wait de la función Display, que quedaría así:

¿Por qué introducir una pausa variable entre el refresco de cada dídito?, pues simplemente como demostración de que sólo uno de los cuatro dígitos está encendido al mismo tiempo. Vamos, por aumentar el elemento didáctico, que a fin de cuentas esa es la excusa con la que me he comprado los juguetes…

Share Button

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *