Vamos a ver como funciona este registros de desplazamiento y para que sirve.
Por ahora hemos hecho tutoriales básicos, en los que necesitamos pocos pins de nuestra placa Arduino, con la cual podemos usar 14 salidas digitales (pins del 0 al 13) y y 6 analógicas (pins del A0 al A5), pero y si necesitamos más, no podríamos hacer nuestro proyecto salvo que usemos un registro de desplazamiento, por ejemplo el 74HC595, que es un registro de desplazamiento de 8 bits, lo que quiere decir que nos da 8 salidas. Este chip se controla con tan solo 3 pins de nuestra placa, por lo que ganamos 5 pins adicionales, con la ventaja que podemos unuir varios 74HC595, lo que aumenta considerablemente el número de salidas que podemos controlar, a costa de 3 pins podemos usar 8·X pins.
Aque teneis el esquema del circuito:
Veamos como estan distribuidas las patillas:
Como vemos tiene 16 patillas, de las cuales 8 son las salidas, que van desde Q0 a Q7 (patillas 15 y de la 1 a la 7). La patilla 8 es GND, seguro que sabeis donde va conectada. La patilla 9 es Q7′, en ella conectaremos otro chip si queremos controlar más salidas, de forma que el primer byte pasaría por ahí al segundo chip (al segundo le podemos hacer lo mismo con otro en esta patilla y así sucesivamente). La patilla 10 es MR, la cual conectaremos a +Vcc. La patilla 11 es SH_CP, el reloj, se encarga de controlar frecuencia del registro. La patilla 12 es latch, ST_CP, es la primera y la útima en activarse, su función es permitir la recepción de datos y una vez recibidos, enviarle la orden a las 8 salidas para que respondan a la información enviada. La patilla 13 es OE, Output Enable negado, va conectada a tierra. La patilla 14 es DS, los datos, son los datos en serie que enviaremos desde nuestra placa para que se repartan por las salidas. Y por último Vcc que va conectado a 5V.
Veamos ahora como funciona, los pins encargados de gestionar los datos son latch (12), clocl (11) y data (14). Primeramente nuestro registro está a la espera de que llegen los bits, es decir latch=0 y clock=0; cuando empiezan a llegar bits, le pasamos el bit (0 ó 1 a data) y a clock le pasamos un 1 y un 0, con todo esto hemos grabado en la posición actual (pongamos que estamos en la 0) un 0 o un 1 dependiendo de lo que reciba data y a clock le hemos dicho que avance una posición, por ejemplo:
Si estamos en la posición 0, y a data le pasamos un 1 y a clock un 1 y un 0, es como decir grábame en la posición 0 un 1 y pasa a la siguiente posición.
Esta operación la hacemos 8 veces (74HC595 es de 8 bits) y pasamos 1 a latch, lo que produce la salida del byte almacenado en el registro.
style="display:inline-block;width:728px;height:15px"
data-ad-client="ca-pub-3868159888315364"
data-ad-slot="7639712738">
Let’s see how shift registers works and for what they serve.
We have done basic tutorials , where we needed a few pins of our Arduino, with which we can use 14 digital outputs ( pins 0 to 13 ) and and 6 analog ouputs ( pins A0 to A5) , but what if we need more , we could’t do our project unless we use a shift register, for example 74HC595, a 8-bit shift register, which means that it gives us 8 outputs.
This chip is controlled by only 3 pins of our plate , so we gain an additional 5 pins , with the advantage that we can join several 74HC595 , which significantly increases the number of outputs that we can control, at the expense of 3 pins we can use 8 · X pins .
Here you are the circuit diagram :
< img src = " http://www.practicandoarduino.com/wp-content/uploads / 2013/12/74hc595-300x220.png "alt =" 74hc595 "width =" 300 "height =" 220 "class =" alignnone size -medium wp -image- 631 "/> < / a>
Let’s see how the pins are distributed:
As we see it has 16 pins , of which 8 are outputs, ranging from Q0 to Q7 (pins 15 and 1 to 7). Pin 8 is GND , sure you know where it is connected. Pin 9 is Q7 ‘ , it will be connected to another chip if you want to control more outputs, so the first byte go over there it to the second 74HC595 (we can do the same to the secondone with another chip in this pin and so on). The pin 10 is MR, which is connected to + Vcc. The pin 11 is SH_CP , clock, it is responsible for controlling the record frequency. The latch pin is pin 12 , ST_CP , it is the first and the latter one to activate, its function is to enable data reception and once received, it sends the order to the 8 outputs to respond to the information sent. The pin 13 is OE, Output Enable denied, it is connected to ground. Pin 14 is DS, data, the serial data that are sent from our plate to be distributed through the outputs, And finally Vcc, it is connected to 5V.
Now let’s see how it works , the pins responsible for managing the data are latch ( 12) , clock ( 11) and data ( 14).
Firstly regiter is waiting for bits to arrive, ie latch = 0 and clock = 0; when they start to arrive, it passes the bit to data pin (0 or 1) and it passes to clock a 1 and a 0, with all that, we have recorded in the current position (we suppose we’re in 0) 0 or 1 depending on what data received, and we say to clock to advance one position, for example :
If we are in position 0 , and we pass 1 to data, and we pass 1 and 0 to clock, that is like saying record 1 in position 0 and goes to the next position.
This operation is done 8 times ( 74HC595 has 8 bits) and we pass 1 to latch , which outputs the byte stored in the registry.
style="display:inline-block;width:728px;height:15px"
data-ad-client="ca-pub-3868159888315364"
data-ad-slot="7639712738">