Das SN74HC595 ist ein 8-Bit-Schieberegister mit seriellem Eingang und parallelem Ausgang mit einem Speicherregister und Tri-State-Ausgänge. Es ist weit verbreitet für Erweiterung der Anzahl digitaler Ausgänge pins auf einem Mikrocontroller (z. B. Arduino, Raspberry Pi, STM32), wenn die verfügbaren pins sind begrenzt.
🔹 1. Was ist der SN74HC595?
- Es ist eine 8-Bit-Schieberegister zur Abwicklung, Integrierung, Speicherung und nimmt serielle Daten (ein Bit nach dem anderen) und gibt es parallel aus (bis 8 Ausgangs pins).
- Es enthält a Verriegelungsfunktion, das die Daten speichert, bis sie aktualisiert werden.
- Das Tri-State-Ausgang ermöglicht die Kaskadierung mehrerer Schieberegister.


📌 Warum es benutzen?
- Erweitert den Mikrocontroller-Ausgang pins (verwendet nur 3 Steuer pins zur Steuerung von 8 Ausgängen).
- Können Kaskadierung mehrerer SN74HC595 kontrollieren mehr Ausgänge.
- Häufig verwendet für LED-Anzeigen, 7-Segment-Anzeigen und Multiplexing-Anwendungen.
🔹 2. SN74HC595 Pinout & Funktionen
Das SN74HC595 hat 16 pins.

| Pin Nein. | Name | Funktion |
|---|---|---|
| 1 | Q1 | Parallelausgang 1 |
| 2 | Q2 | Parallelausgang 2 |
| 3 | Q3 | Parallelausgang 3 |
| 4 | Q4 | Parallelausgang 4 |
| 5 | Q5 | Parallelausgang 5 |
| 6 | Q6 | Parallelausgang 6 |
| 7 | Q7 | Parallelausgang 7 |
| 8 | GND | Boden |
| 9 | Q7′ | Serieller Ausgang (für Kaskadierung) |
| 10 | MR | Master-Reset (Aktiv LOW) |
| 11 | SH_CP | Schieberegisteruhr |
| 12 | ST_CP | Speicherregister (Latch) Uhr |
| 13 | OE | Ausgang aktivieren (Aktiv LOW) |
| 14 | DS | Serielle Dateneingabe |
| 15 | Q0 | Parallelausgang 0 |
| 16 | VCC | Stromversorgung (2 V – 6 V) |
📌 Schlüsselkontrolle Pins:
- SH_CP (Pin 11) → Schieberegisteruhr (lädt serielle Daten Bit für Bit).
- ST_CP (Pin 12) → Latch-Uhr (aktualisiert alle 8 Ausgänge).
- OE (Pin 13) → Ausgang aktivieren (LOW zum Aktivieren, HIGH zum Deaktivieren der Ausgänge).
- DS (Pin 14) → Serielle Dateneingabe (in das Schieberegister eingespeiste Daten).
- Q7′ (Pin 9) → Seriell aus (zum Kaskadieren mehrerer Schieberegister).
🔹 3. Funktionsweise des SN74HC595
- Die Daten werden seriell (Bit für Bit) in DS gesendet (Pin 14).
- SH_CP (Shift Clock) verschiebt Daten durch das Schieberegister.
- ST_CP (Latch Clock) überträgt die gespeicherten Bits zum Ausgang pins (Q0-Q7).
- OE (Ausgabe aktivieren) steuert, ob die Ausgänge aktiv sind.
📌 Mehrere SN74HC595 können kaskadiert werden durch Verbinden Q7' (Pin 9) eines ICs zu DS (Pin 14) des nächsten.
🔹 4. Verwendung von SN74HC595 mit Arduino
🛠 Erforderliche Komponenten
- 1x SN74HC595 Schieberegister
- 8x LEDs
- 8x 220Ω Widerstände
- 1x Arduino-Platine
- Prüfkabeln
🛠 Verkabelung
| SN74HC595 Pin | Arduino Pin | Funktion |
|---|---|---|
| VCC (16) | 5V | Tuning |
| GND (8) | GND | Boden |
| DS (14) | D2 | Serielle Dateneingabe |
| SH_CP (11) | D3 | Schichtuhr |
| ST_CP (12) | D4 | Latch-Uhr |
| OE (13) | GND | Immer aktiviert (NIEDRIG) |
| HERR (10) | 5V | Kein Zurücksetzen (HIGH) |
| Q0 - Q7 | LEDs über 220Ω Widerstände | Parallele Ausgänge |
🔹 5. Arduino-Code zur Steuerung von LEDs
Dieser Arduino-Skizze Verschiebungen Binärdaten in SN74HC595 kontrollieren 8 LEDs.
#define DS 2 // Data pin
#define SH_CP 3 // Shift Clock pin
#define ST_CP 4 // Latch Clock pin
void setup() {
pinMode(DS, OUTPUT);
pinMode(SH_CP, OUTPUT);
pinMode(ST_CP, OUTPUT);
}
void loop() {
for (int i = 0; i < 256; i++) {
digitalWrite(ST_CP, LOW); // Latch disabled
shiftOut(DS, SH_CP, MSBFIRST, i); // Send data
digitalWrite(ST_CP, HIGH); // Latch enabled
delay(500);
}
}
📌 Erläuterung:
shiftOut()sendet 8 Bit von Daten seriell an SN74HC595.ST_CP(Latch Clock)-Updates alle Ausgänge auf einmal.- Die Schleife durchläuft 256 Muster (
0b00000000zu0b11111111).
🔹 6. Kaskadierung mehrerer SN74HC595-Schieberegister
Nutze einfach das mehrere SN74HC595 miteinander verbinden kontrollieren 16, 24 oder mehr Ausgänge.
🛠 Kaskadierende Verdrahtung
| 1. SN74HC595 Pin | 2. SN74HC595 Pin |
|---|---|
| VCC | VCC |
| GND | GND |
| DS (Pin 14) | Arduino D2 |
| SH_CP (Pin 11) | SH_CP (Pin 11) |
| ST_CP (Pin 12) | ST_CP (Pin 12) |
| Q7′ (Pin 9) | DS (Pin 14) |
📌 Daten werden vom ersten SN74HC595 zum zweiten verschoben, wodurch mehr Ausgänge möglich werden.
✅ Arduino-Code für zwei SN74HC595-Schieberegister
#define DS 2
#define SH_CP 3
#define ST_CP 4
void setup() {
pinMode(DS, OUTPUT);
pinMode(SH_CP, OUTPUT);
pinMode(ST_CP, OUTPUT);
}
void loop() {
digitalWrite(ST_CP, LOW);
shiftOut(DS, SH_CP, MSBFIRST, 0b10101010); // First register
shiftOut(DS, SH_CP, MSBFIRST, 0b11001100); // Second register
digitalWrite(ST_CP, HIGH);
delay(500);
}
📌 Was geschieht?
- Die ersten Schieberegister-Steuerungen die ersten 8 Ausgänge.
- Das zweite Schieberegister steuert die nächsten 8 Ausgänge.
🔹 7. Anwendungen von SN74HC595
✅ LED-Anzeigen - Benutzt in Multiplex-LED-Matrix.
✅ 7-Segment-Anzeigen – Antriebe mehrere Ziffern mit minimal pins.
✅ Motorsteuerungen – Erweitert H-Brücken-Treiber.
✅ Relais und Aktoren – Kontrollen Hochleistungsgeräte mit niedrig pin Verwendung.
✅ Home Automation - Erweitert E/A in intelligenten Steuerungssystemen.
🔹 8. SN74HC595 vs. andere Schieberegister
| Funktion | SN74HC595 | 74HC164 | TPIC6B595 |
|---|---|---|---|
| Bits | 8 | 8 | 8 |
| Speicherriegel | Ja | Nein | Ja |
| Tri-State-Ausgänge | Ja | Nein | Ja |
| Max. Strom pro Pin | 35 mA | 25 mA | 150 mA |
| Am besten geeignet, | LEDs, Anzeigen | Grundlegendes Schalten | Hochleistungslasten |
📌 Fazit: SN74HC595 ist am besten für allgemeine Ausgabeerweiterung, aber für Hochstromanwendungen, benutzen Sie TPIC6B595.
🎯 Schließung
- Das SN74HC595 erweitert digitale Ausgänge mit nur 3 Steuer pins.
- Es ist weit verbreitet in LED-Anzeigen, Multiplexing und Motorsteuerung.
- Mehrere SN74HC595 können kaskadiert kontrollieren Dutzende von Ausgängen.
- Arduino + SN74HC595 = Einfache und effektive E/A-Erweiterung.