

The 74HC595 Shift Register Breakout (Manufacturer: CJMCU, Part ID: CJMCU-595) is an 8-bit serial-in, parallel-out shift register. It is designed to expand the number of output pins available on microcontrollers, such as Arduino, Raspberry Pi, or other embedded systems. By using a serial data input, the 74HC595 allows you to control up to 8 output pins with just 3 control pins from your microcontroller. This makes it an ideal solution for applications requiring multiple outputs, such as LED displays, motor drivers, or other digital control systems.








The following are the key technical details of the CJMCU-595:
| Parameter | Value |
|---|---|
| Supply Voltage (Vcc) | 2V to 6V |
| Input Voltage (VI) | 0V to Vcc |
| Output Current (IO) | ±35mA per pin |
| Maximum Clock Frequency | 25 MHz (at 5V supply) |
| Operating Temperature | -40°C to +125°C |
| Package Type | Breakout board with 74HC595 IC |
The CJMCU-595 breakout board has the following pinout:
| Pin Name | Pin Number | Description |
|---|---|---|
| Vcc | 16 | Power supply pin (2V to 6V). Connect to the microcontroller's 5V or 3.3V pin. |
| GND | 8 | Ground pin. Connect to the ground of the microcontroller. |
| SER (DS) | 14 | Serial data input. Used to send data to the shift register. |
| SRCLK | 11 | Shift register clock input. Data is shifted on the rising edge of this clock. |
| RCLK | 12 | Latch clock input. Transfers data from the shift register to the output pins. |
| OE (Output Enable) | 13 | Active-low output enable. Connect to GND to enable outputs. |
| Q0-Q7 | 15, 1-7 | Parallel output pins. These are the 8 output pins controlled by the register. |
| MR (Master Reset) | 10 | Active-low reset. Clears the shift register when pulled low. |
SER pin to a digital output pin on your microcontroller for serial data input.SRCLK pin to a digital output pin for the shift register clock.RCLK pin to a digital output pin for the latch clock.OE pin to GND to enable outputs or to a microcontroller pin for dynamic control.SER pin, and use the SRCLK and RCLK pins to shift and latch the data.Q7S (serial out) pin of one IC to the SER pin of the next IC.The following example demonstrates how to control the 74HC595 with an Arduino UNO to light up LEDs connected to the output pins.
// Define the control pins for the 74HC595
const int dataPin = 2; // SER pin (Serial Data Input)
const int clockPin = 3; // SRCLK pin (Shift Register Clock)
const int latchPin = 4; // RCLK pin (Latch Clock)
void setup() {
// Set the control pins as outputs
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(latchPin, OUTPUT);
}
void loop() {
// Example: Light up LEDs in a binary counting pattern
for (int i = 0; i < 256; i++) {
digitalWrite(latchPin, LOW); // Disable latch to load data
shiftOut(dataPin, clockPin, MSBFIRST, i); // Send data to shift register
digitalWrite(latchPin, HIGH); // Enable latch to update outputs
delay(500); // Wait for 500ms
}
}
shiftOut() function sends 8 bits of data to the shift register, one bit at a time.latchPin is toggled to transfer the data from the shift register to the output pins.Outputs Not Working:
OE pin is connected to GND or properly controlled by the microcontroller.RCLK pin is toggled after sending data to update the outputs.Flickering Outputs:
SRCLK and RCLK signals are not overlapping or noisy.Incorrect Output States:
MR pin is not accidentally pulled low, as this will reset the register.Q: Can I use the 74HC595 with a 3.3V microcontroller?
A: Yes, the 74HC595 operates with a supply voltage as low as 2V, making it compatible with 3.3V systems.
Q: How many 74HC595 ICs can I daisy-chain?
A: Theoretically, you can daisy-chain as many as you need, but practical limitations like signal degradation and timing constraints may arise after 8-10 ICs.
Q: Do I need pull-up or pull-down resistors for the control pins?
A: No, the control pins are internally pulled to a defined state. However, you may add resistors for noise immunity in noisy environments.
This concludes the documentation for the CJMCU-595 8-bit shift register.