Taller 4-Manejo de Registro de Desplazamiento
Taller 4-Manejo de Registro de Desplazamiento
Taller 4-Manejo de Registro de Desplazamiento
HARDWARE
Tarjeta Arduino Integrado 74HC595
INTRODUCCIÓN
En ocasiones es necesario disponer de más pines de salida, pero hay limitaciones en la tarjeta de
Arduino. Entonces se puede recurrir a un circuito de desplazamiento que permita ingresar las
salidas en forma serial pero que se entreguen en forma individual a las salidas. El integrado
74HC595N permite hacerlo.
El 74HC595 es un registro de desplazamiento de 8 bit con una entrada serie y salida paralelo. La
gran utilidad de esto es poder utilizar y controlar ocho salidas con tan solo 3 pines del
microcontrolador, mediante las entradas(Latch/Clock/Data), se puede controlar hasta ocho
salidas, de manera que es de gran utilidad para proyectos en los que se cuenta con poca cantidad
de pines en el microcontrolador.
Como se ve en la imagen, Latch es el pin 12, Clock el pin 11, y el bit de datos es el pin numero 14
Al cambiar de LOW a HIGH el bit de Data y generar un nuevo pulso de reloj pasando el bit de clock
de HIGH a LOW, se graba en la posición actual donde se encuentre el desplazamiento el valor
ingresado en el pin de Data, esto se repite 8 veces para generar un Byte a la salida (Q0 – Q7), de
esta manera puede controlar un Byte de salida con solo tres pines del microcontrolador.
2
La respuesta a esta pregunta sería; todas las que se ocurran, pero hay una muy común que puede
ser de gran utilidad en cualquier proyecto de Electrónica en el que se necesite controlar algún tipo
de display de 7 segmentos.
Por ejemplo
Lo que se debería hacer para visualizar un numero 3 en este display seria habilitar los pines
A/B/G/C/D.
Pensando en términos de bytes, la idea es enviar la palabra.
3
Lo que se debe hacer es generar esta palabra a la salida del 74HC595 y conectarla a los pines del
display.
Este montaje sirve para mostrar cómo se puede aumentar el número de pines de un Arduino
utilizando un integrado 74HC595 (Shift Register) o registro de desplazamiento de 8 bits, serial-in,
parallel-out, es decir que acepta dato serie como entrada y lo coloca en la salida como un dato
paralelo.
Si se necesita aumentar los pines digitales de entrada se puede usar un 74HC165 que es un
registro de desplazamiento de entrada. Si se necesita aumentar el número de pines análogos se
puede utilizar un multiplexor/demultiplexor como el 74HC4051.
El registro de desplazamiento funciona mediante comunicación serie síncrona es decir que usamos
un pin para enviar los bits en serie (Data pin) y un segundo pin (Clock pin) para indicar cuándo hay
que leer el bit.
Cuando los 8 bits se han leído en el registro un tercer pin (Latch pin) escribe estos bits en los pines
de salida del chip y los mantiene hasta que reciban nuevos datos.
/* ----------------------------------------------------------------
www.prometec.net
Prog_22_3
void setup()
{ pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop()
{
for (int Num = 0; Num < 256; Num++)
{
digitalWrite(latchPin, LOW) ; // Latch a LOW para que no varíe la salida
shiftOut(dataPin, clockPin, MSBFIRST, Num); // Aqui va Num
#include <Wire.h>
/*
Ejemplo de uso del registro de desplazamiento 74HC595 utilizando un arreglo
Hardware:
* Registro de desplazamiento 74HC595
* LEDs conectados a las salidas del registro de desplazamiento
* Resistencias de 220 ohmios
*/
//Pin conectado al ST_CP del 74HC595
int latchPin = 8;
//Pin conectado a SH_CP del 74HC595
int clockPin = 12;
////Pin conectado a DS del 74HC595
int dataPin = 11;
void setup() {
//configura pines como salida porque son direccionados en el bucle principal
pinMode(latchPin, OUTPUT);
Serial.begin(9600);
6
void loop() {
//detiene el desplazamiento
digitalWrite(myClockPin, 0);
}
https://playground.arduino.cc/Main/LibraryList