Un registro de desplazamiento se puede utilizar para controlar 8 salidas simultaneas usando unos pocos pines del microcontrolador, incluso es posible conectar dos demultiplexores y sacar 16 salidas, que es lo que hicimos para esta entrada.
El integrado 74HC595, lo compramos en AG electronica y este integrado es un registro de desplazamiento de 8 bits con entrada serie, salida serie o paralelo con latch (o sea, bloqueos), de 3 estados.
¿Cómo funciona?
Este integrado funciona de la siguiente manera, utiliza comunicación serie sincrona, en donde tu puedes transmitir un byte enviando pulsos altos y bajos por un pin y otro pin, viene siendo el clock o reloj en donde va enviando pulsos constantes para ir diferenciando los bits enviados por el pin que envia los pulsos diferentes, por lo que este es muy diferente a una comunicación serial asicrona ya que utilizando la función Serial.begin() el emisor y el receptor fijan la forma de una velocidad de tranferencia, por lo que a diferencia, este una vez que le enviamos el byte completo al registro, los valores ya sean los altos o los bajos, se lo asignan a cada pin de salida, provocando una salida en paralelo.
La salida en serie de este integrado es el agregr un pin extra que retransmite la información que le estamos mandando del arduino sin cambios, por lo que podemos como comunicar dos de estos integrados y tener la capacidad de transmitir 16 bits donde los primeros 8 bits atraviesen al primero y después se almacenen en el segundo, esto es lo que hicimos como ejemplo.
Bueno este es la información de los pines del integrado que utilizamos, tomado de aquí
PINS 1-7, 15 | Q0 " Q7 | Pins de salida | |
PIN 8 | GND | Ground, Vss | |
PIN 9 | Q7" | Salida Serie | |
PIN 10 | MR | Master Reset, activo = low | |
PIN 11 | SH_CP | Pin Clock | |
PIN 12 | ST_CP | Pin Latch | |
PIN 13 | OE | Salida disponible, activo = low | |
PIN 14 | DS | Entrada Serie | |
PIN 16 | Vcc | Voltaje |
Para checar como funciona, es preferible hacer un programa que nos ayude a probar los integrados y de las conexiones, por lo que utilizamos este diagrama de circuito, con 16 LEDs, 16 resistencias de 220 Ohm, dos integrados demultiplexores 595 y un condensador 0.1 uf o 100 nF.
Este es el diagrama.
Para verlo mejor o más grafico, estas son las conexiones utilizando 3 protoboards.
En donde podemos ver que tenemos un arreglo con los leds que queremos prender y este los va leyendo y pasando la información a los integrados para que realicen su función.
En esta liga aquí vienen algunos ejemplos, pero nos dimos cuenta que algunos no funcionaban, por lo que nos dimos la tarea de realizar un programa por nosotro mismos, en base a los ejemplos.
Estos fueron los resultados.
hola, he montado un arreglo de 8 leds, pero luego de que pasa el 128 (decimal, pues estoy contando hasta el 255) se me queda pulsando los leds muy tenues, y no logro solucionar el problema, ve que en este ejemplo esta usando un capacitor en el reloj de salida, ¿que funcion tiene?... pudiera ser eso el problema que tengo?
ResponderEliminarExcelente articulo, estoy diseñando un sistema de medicion de temperatura que cada digito controlo con el 74hc595, comparto la info por si a alguien le resulta de interes
ResponderEliminar74HC595
te hago una consulta, por que veo que conectas el Q7 del primer driver al DS' del segundo, esto por que lo haces?
saludos!