

The 74HC595 has two 8-bit registers (which can be thought of as “memory containers”). How does the 74HC595 Shift Register work? The most popular SIPO chip is 74HC595, and the most popular PISO chip is 74HC165. While PISO is useful for gathering a large number of inputs, such as buttons, similar to the original Nintendo controller discussed above.

SIPO is useful for controlling a large number of outputs, such as LEDs. There are two types of shift registers, SIPO (serial-in-parallel-out) and PISO (parallel-in-serial-out). The main microcontroller of the Nintendo Entertainment System, used shift registers to gather button presses from the controller. The Original Nintendo Controller, released in 1985, is a practical application of a shift register. In theory, by daisy-chaining shift registers, an infinite number of I/O pins can be added. That is quite a difference, and the more shift registers you chain together, the more pins you’ll add. With two shift registers connected in series, you can control 16 LEDs with only three I/O pins. This is where the shift register comes in handy. Shift registers are often used to increase the number of I/O pins on a microcontroller.įor example, If your project needs to control 16 individual LEDs, you will, of course, require 16 pins of an Arduino, which is not possible. If you are interested in learning more about bit-shifting, you will find this Wikipedia article extremely useful. The 74HC595 achieves this through a technique known as bit-shifting. If you need more than 8 I/O pins, you can daisychain as many shift registers as necessary to generate a large number of I/O pins. The 74HC595 controls eight different output pins with only three input pins. By far the most widely used shift register is the 74HC595, also known as just “595”. The solution is to use a ‘shift register,’ which allows you to add more I/O pins to the Arduino (or any microcontroller). You can wire up a few buttons, sensors, servos, and so on, but as the list grows, you will quickly run out of pins. One of the nice things about the Arduino is that it has a fair amount of I/O pins to work with.
