← All parts
74HC595 8-bit Shift Register
SN74HC595
Texas Instrumentsic logic timer
The 74HC595 is an 8-bit serial-in, parallel-out shift register with an 8-bit D-type storage register and 3-state outputs. It operates from 2V to 6V, providing a flexible way to expand output pins.
In stock
Specifications
8- Operating Voltage
- 2 to 6 V
- Supply Current Max
- 80 µA
- Output Drive Current
- ±6 mA
- Input Current Max
- 1 µA
- Clock Frequency Max
- 29 MHz
- Propagation Delay Typical
- 13 ns
- Operating Temperature Range
- -40 to 85 °C
- Package
- PDIP, SOIC, SSOP, TSSOP, CDIP, LCCC
Pinout
16| Pin | Name | Functions | Notes |
|---|---|---|---|
| 8 | GND | GND | Ground Pin |
| 13 | OE | GPIO | Output Enable |
| 15 | QA | GPIO | QA Output |
| 1 | QB | GPIO | QB Output |
| 2 | QC | GPIO | QC Output |
| 3 | QD | GPIO | QD Output |
| 4 | QE | GPIO | QE Output |
| 5 | QF | GPIO | QF Output |
| 6 | QG | GPIO | QG Output |
| 7 | QH | GPIO | QH Output |
| 9 | QH' | GPIO | QH' Output |
| 12 | RCLK | GPIO | RCLK Input |
| 14 | SER | GPIO | SER Input |
| 11 | SRCLK | GPIO | SRCLK Input |
| 10 | SRCLR | GPIO | SRCLR Input |
| 16 | VCC | POWER | Power Pin |
Interactive pinout
Highlight:
SN74HC595
Click a pin to copy its name · tap a tag above to spotlight a bus.
Logic level & voltage
Operates from 2-6 V (per the datasheet specs), so it works at 3.3 V or 5 V. It's a serial-in, parallel-out shift register that adds 8 outputs per chip.
Typical uses
- Expanding digital outputs (LEDs, 7-segment displays)
- Daisy-chaining for many outputs from 3 pins
- Driving relay/transistor banks
Wiring notes & gotchas
- Chain chips via QH' (serial out) into the next SER input.
- Latch (RCLK) after shifting so outputs update together.
- Each output sources/sinks only ~6 mA — use drivers for LEDs strings/relays.
Commonly used with
3Starter code
Community starter examples — minimal, unofficial, and provided to get you wiring fast. Verify against the manufacturer datasheet before relying on them.
Arduino (C++)
arduino
// 74HC595 8-bit shift register — community starter example
#if defined(ESP32)
#define DATA_PIN 23 // SER
#define LATCH_PIN 5 // RCLK
#define CLOCK_PIN 18 // SRCLK
#else
#define DATA_PIN 11 // SER
#define LATCH_PIN 8 // RCLK
#define CLOCK_PIN 12 // SRCLK
#endif
void setup() {
pinMode(DATA_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
}
void loop() {
for (int i = 0; i < 256; i++) {
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, i); // QA..QH = bits of i
digitalWrite(LATCH_PIN, HIGH); // latch to outputs
delay(100);
}
}MicroPython
python
# 74HC595 shift register (ESP32) — community starter example
from machine import Pin
import time
data = Pin(23, Pin.OUT) # SER
latch = Pin(5, Pin.OUT) # RCLK
clock = Pin(18, Pin.OUT) # SRCLK
def shift_out(value): # MSB first
latch.value(0)
for i in range(7, -1, -1):
clock.value(0)
data.value((value >> i) & 1)
clock.value(1)
latch.value(1)
while True:
for v in range(256):
shift_out(v)
time.sleep_ms(100)Wiring
| Pin | Arduino Uno R3 | ESP32 DevKitC (WROOM-32) | Notes |
|---|---|---|---|
| VCC | +5V | 3V3 | 2-6 V |
| GND | GND | GND | |
| SER | D11 | GPIO23 | Serial data in |
| RCLK | D8 | GPIO5 | Latch / storage clock |
| SRCLK | D12 | GPIO18 | Shift clock |
| SRCLR | - | - | Tie HIGH to VCC (active-low clear) |
| OE | - | - | Tie LOW to GND (active-low output enable) |
| QH' | - | - | Carry-out to next 595's SER for daisy-chaining |