viernes, 31 de enero de 2014

Arduino y Shift Register

Hoy voy a trastear un poco con el arduino y un shift register.

Este integrado, hablando muy por encima, nos transforma una entrada serie en una salida paralela. En este ejemplo concreto, a través de una patilla del integrado le pasamos en serie 8 bits, sincronizando con una patilla de reloj. Una vez que el integrado tiene estos ocho valores, le avisamos, por otra patilla, que saque estos bits, por las ocho salidas.

Es decir, si pasamos el siguiente byte, en bits: 01010000, la segunda y la cuatra patilla de salida del integrado tendrán un valor HIGH, mientras que el resto, estarán a LOW.

Estos integrados se usan para la mencionada conversión serie-paralelo, o en casos en el que número de patillas de salida de nuestro controlador, no es suficiente. En este caso concreto, con tres patillas (datos,reloj y "latch") tenemos ocho salidas. La mejora es evidente. También hay integrados de más salidas, con lo que ganancia es mayor.

Voy a mostrar el funcionamiento básico de este integrado con una tira de ocho leds haciendo el efecto "coche fántástico".

El esquema de conexión es el siguiente, y aunque quede bonito, es un poco engorroso de hacer, por todo lo que hay que conectar en tan poco espacio. Por alguna extraña razón, la salida del integrado tiene que ir la resistencia y luego el led. Si uso el led y luego la resistencia, no se iluminan. ¿Alguien me ilumina a mí y me explica porqué ?



El integrado elegido es el 74HC595, y podéis encontrar el datasheet aquí . Un tutorial de AdaFruit muy similar a este lo podéis encontrar aquí. . Que ellos han puesto un montón de dibujico y cosicas, y se entiende muy bien, sobre todo la parte del latch.


El código para el Arduino lo podéis encontrar aquí. Esta vez he intentado que esté un poco más comentado.

Y un pequeño vídeo, donde se puede ver todo en acción. 

No hay comentarios: