74hc595: tot sobre el CI de registre de desplaçament

El xip 74HC595, Com es dedueix del seu nom, és un circuit impressor que implementa al seu interior un circuit CMOS. Concretament és un registre de desplaçament. Per als que encara no coneguin aquests registres, bàsicament és un circuit digital seqüencial, és a dir, que els seus valors a la sortida depenen simplement dels valors de l'entrada i de valors anteriors emmagatzemats.

Això els diferencia dels combinacionals, que les sortides només depenen de la valor de l'entrada. Aquest registre es compon d'una sèrie de biestables o flip-flops de tipus D comandats per un senyal de rellotge. aquests biestables són memòries que mantenen un valor anterior. Cada un emmagatzema un bit i, del seu nom també pots deduir que, els pot desplaçar. A l'córrer els bits d'un costat a un altre podem fer operacions digitals força interessants.

Tipus de registres de desplaçament

Diagrama de l'registre de desplaçament

Segons el tipus de desplaçament que facin sobre els bits que emmagatzemen, els registres poden ser de diversos tipus. Són capaços de desplaçar a l'esquerra oa la dreta, alguns bidireccionals, però l'ordre és el que determinarà el tipus, fins i tot en altres casos també es cataloguen en funció de com estiguin les entrades i sortides:

  • Sèrie-Sèrie: Aquells en què només el primer flip-flop rep dades i van entrant en sèrie fins a omplir el registre complet. L'últim flip-flop és el que està directament connectat a la sortida ia través de què aniran sortint de l'registre.
  • Paral·lel-sèrie: Els bits entren en paral·lel per ser emmagatzemats a la vegada en tots els flip-flops, però després surten en sèrie. Es poden usar per convertir de sèrie a paral·lel i viceversa.
  • Sèrie-Paral·lel: Similar a l'anterior, totes les sortides són accessibles a la vegada de tots els flip-flops. Però les dades entraran només pel primer en sèrie.
  • Paral·lel-paral·lel: Les dades entren en paral·lel i surten en paral·lel.

D'entre els circuits més coneguts tenim el 74HC595, el 74HC164, 74HC165, 74HC194, Etc. El 194 és universal, es pot configurar com vulguem. D'altra banda, tenim altres bidireccionals com el 165 i 164, per tant desplaça cap a l'esquerra o dreta, segons s'especifiqui amb el senyal de control de direcció però només tenen una configuració: entrades paral·leles i sortida sèrie, i entrada sèrie i sortida paral·lela respectivament.

l298n
Article relacionat:
L298N: mòdul per controlar motors per Arduino

Per a què serveix un registre de desplaçament?

Per a què desplaçar bits? Desplaçar bits de dades pot resultar molt pràctic. Un motiu és que es necessiti desplaçar els valors per un objectiu concret. Però també desplaçar suposa realitzar algunes operacions sobre els bits emmagatzemats. Per exemple, desplaçar a l'esquerra un conjunt de bits és com multiplicar-los per 2. desplaçar-los a la dreta és com dividir entre 2. Per tant, per fer multiplicacions i divisions binàries poden ser molt pràctics ...

També s'usen per generar valors pseudoaleatoris, per aproximacions successives molt usats en convertidors analògic / digital, per retardar, etc. Els usos en circuits digitals lògics és bastant freqüent, així que no és estrany haver de usar-los en algun projecte.

Característiques de l'74HC595

pin-out de l'74HC595

El 74HC595 és un CI bastant senzill. Es tracta d'un registre de desplaçament de 8 bits, és a dir, té 8 biestables per emmagatzemar 8 bits. El pin-out o patilles d'aquest xip es pot veure a la imatge superior, amb Vcc i GND per a l'alimentació, i després les marcades com Q que són les de dades. La resta corresponen a senyals de rellotge / control.

Els entrada la té en sèrie i la sortida en paral·lel. Per tant, amb una sola entrada, es poden controlar alhora aquestes 8 sortides. Només et caldrà tres pins de l'microcontrolador usat (pe: Arduino) per manejar-lo. Aquestes són Latch, Clock i Data. Latch és el pin 13 en aquest cas, encara que pot variar, per això has de consultar el datasheet del teu fabricant. Clock pot estar en l'11 o altres, i el bit de dades és el 14.

La senyal de rellotge alimentarà a el circuit per determinar el compàs o ritme a què va a treballar. La sortida de dades canviarà el comportament de l'xip. Per exemple, a l'canviar de LOW a HIGH i generar el nou pols de rellotge passant el clock de HIGH a LOW, el que s'aconsegueix és gravar la posició actual on es trobi el desplaçament el valor ingressat per aquest pin de dades. Si repeteixes això a 8 vegades, llavors hauràs gravat les 8 posicions i tenir un byte emmagatzemat (Q0-Q7).

Ús amb Arduino

Arduino amb el 74hc595

Perquè et quedi més clar, potser un exemple amb Arduino t'ho explica de forma més intuïtiva i gràfica que començar a llançar dades teòriques. Per exemple, pots crear un simple circuit amb Arduino i un registre de desplaçament 74HC595 per jugar amb unes llums o LEDs. Una altra opció una mica millor i més simple és utilitzar un display de 7 segments per anar llegint els valors de l'registre.

transistor 2n2222
Article relacionat:
Transistor 2N2222: tot el que cal saber

El diagrama és el que pots veure a la imatge anterior, un cop connectat Arduino d'aquesta manera amb el 74HC595 i la pantalla, només queda programar-amb Arduino IDE i veurem les possibilitats de l'registre de desplaçament. El codi seria el següent, amb una sèrie de codis en binari 0bxxxxxxxx, sent x bits:

const int latchPin = 8;  // Pin conectado al Pin 12 del 74HC595 (Latch)
const int dataPin  = 9;  // Pin conectado al Pin 14 del 74HC595 (Data)
const int clockPin = 10; // Pin conectado al Pin 11 del 74HC595 (Clock)
int i =0;
                      
const byte numeros[16] = {
                0b11111100,
                0b01100000,
                0b11011010,
                0b11110010,
                0b01100110,
                0b10110110,
                0b10111110,
                0b11100000,
                0b11111110,
                0b11100110,
                0b11101110,
                0b00111110,
                0b10011100,
                0b01111010,
                0b10011110,
                0b10001110
};
                      
void setup() { 
  Serial.begin(9600);
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT); 
}

void loop() {

                for (i=0;i<16;i++) {
                               delay(1000);
                               digitalWrite(latchPin, LOW);
                               shiftOut(dataPin, clockPin, LSBFIRST, numeros[i]);
                               digitalWrite(latchPin, HIGH);
                }
}

Fitxa de Dades

taula de pins

Al mercat trobaràs diferents xips 74HC595 de diferents fabricants. Un d'ells és la mítica Texas Instruments o Tu, però sigui com sigui, cada fabricant hauria oferir-te el datasheet per descarregar des de la seva pàgina web oficial. També pots trobar alguns altres com el de ON Semiconductor, Sparkfun, STMicroelectronics, NXP, etc.


Sigues el primer a comentar

Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.