Shift Register 74HC595 – Mas pines Digitales para tu Arduino.

¿Que hacer para optimizar al máximo los pines digitales de nuestra tarjeta arduino UNO?

El CI 74HC595 nos permite controlar 8 pines digitales con tan solo 3 pines digitales, esto es bastante bueno podemos ampliar nuestros pines digitales a muy bajo costo, ya que permite una entrada serie y nos da una salida en paralelo, pero este simplemente nos sirve para escribir en los pines digitales, por medio de este integrado no podemos leer, por ejemplo un pulsador no se puede leer por el 74HC595, para ese caso se necesitarías un multiplexor, ya que este dispositivo nos permite seleccionar de varias entradas una sola salida.

74HC595 – SHIFT REGISTER – DESPLAZADOR DE REGISTRO

Este circuito integrado posee 16 pines, donde los cuales son:

  • Q0 y Q7 son los datos de salida en Paralelo.
  • GND es la tierra debe ir conectado a la misma tierra de nuestro circuito y arduino.
  • DS es la entrada serie, por este le enviaremos los datos desde nuestra arduino.
  • /OE el habilitador de salida, debe estar en un nivel logico 0 (LOW), para que nuestra salida este habilitada.
  • SH_CP, la señal de reloj para el desplazamiento del registro.
  • ST_CP, la señal de latch, la cual pasa los datos al puerto de salida.
  • /MR, este pin nos permite poner todas nuestras salidas a nivel logico 0 (LOW) y se activa en LOW, entonces para poder usar las salidas este pin debe ir estar siempre en nivel logico alto (HIGH) o VCC (5V).
  • Q7′, este es el pin de salida nos permite conectar en serie con otros 74HC595, ya que si el dato es mayor de 8 bits, estos se desbordan y salen por este pin permitiendo conectarlo a la entrada de otro 74HC595.

Su funcionamiento es simple se envian por serie 8 bits (1 Byte), ej. B00000001, la señal de reloj SH_CP, nos dará 8 pulsos, los cuales cada vez que pase un pulso, cada bit estará en el puerto de salida al terminar los pulsos, el pin ST_CP (Latch) se activa y permite que estos bits salgan por los pines Q0-Q7, y si hay mas de 8 bits los demás saldrán por el pin Q7′.

ARDUINO Y 74HC595

Se conectaran 8 LED a la salida de nuestro 74HC595.

Paso 1: Energizar nuestro 74HC595 con Arduino.

Paso 2: conectamos nuestros 8 LEDs a nuestro 74HC595.

 

 

Paso 3: Escribimos nuestro código de arduino, con la función shiftOut(), si! arduino nos facilita la implementación con este integrado y con otros.

shiftOut(dataPin, clockPin, LSBFIRST,Byte);
/* Esta función permite configurar los pines del 74HC595,
donde el dataPin de arduino es el pin por donde se escribirá los 8bits en serie.
El clockPin es el pin del arduino que mantendra la señal de reloj para el desplazamiento
de los bits de serie a paralelo.
El argumento LSBFIRST, permite configurar desde cual bit seran cargados los datos
el mas significativo MSBFIRST o menos significativo LSBFIRST.
Byte es el dato de 8 bits que se enviara.
*/

Código arduino:

//Pin conectado al ST_CP del 74HC595
int latchPin = 7;
//Pin conectado l SH_CP del 74HC595
int clockPin = 8;
//Pin conectado al DS del 74HC595

int dataPin = 4;

void setup() {
  
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
 
}

void loop() {
 
  for (int j = 0; j < 256; j++) {
    //primero se debe mantener el latchPin en LOW para que mantenga los datos
    digitalWrite(latchPin, LOW);
    //B00000000 son los 8 bits en binario, le sumaremos j para hacer un contador
    shiftOut(dataPin, clockPin, LSBFIRST, B0000000 + j);
    // despues de colocar los 8 bits en el puerto de salida del 74HC595
    // se activa el latchPin en HIGH para que salgan los datos por los pines Q0-Q7
    digitalWrite(latchPin, HIGH);
    delay(100);
  }
}

El código  donde puedes ver otra sincronización mas rítmica de los LEDs puedes descargarlos AQUI!

Listo esto es todo lo necesario para usar nuestro 74HC595 con nuestro arduino, espero que le sea de mucha ayuda y que sigan aprendiendo de este mundo arduino.

No olvides compartir el conocimiento, suscribirte a mi canal de Youtube y seguirme en las redes sociales.

 

Deja un comentario

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