SN74HC595: 8-Bit-Schieberegister erklärt

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.NameFunktion
1Q1Parallelausgang 1
2Q2Parallelausgang 2
3Q3Parallelausgang 3
4Q4Parallelausgang 4
5Q5Parallelausgang 5
6Q6Parallelausgang 6
7Q7Parallelausgang 7
8GNDBoden
9Q7′Serieller Ausgang (für Kaskadierung)
10MRMaster-Reset (Aktiv LOW)
11SH_CPSchieberegisteruhr
12ST_CPSpeicherregister (Latch) Uhr
13OEAusgang aktivieren (Aktiv LOW)
14DSSerielle Dateneingabe
15Q0Parallelausgang 0
16VCCStromversorgung (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

  1. Die Daten werden seriell (Bit für Bit) in DS gesendet (Pin 14).
  2. SH_CP (Shift Clock) verschiebt Daten durch das Schieberegister.
  3. ST_CP (Latch Clock) überträgt die gespeicherten Bits zum Ausgang pins (Q0-Q7).
  4. 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 PinArduino PinFunktion
VCC (16)5VTuning
GND (8)GNDBoden
DS (14)D2Serielle Dateneingabe
SH_CP (11)D3Schichtuhr
ST_CP (12)D4Latch-Uhr
OE (13)GNDImmer aktiviert (NIEDRIG)
HERR (10)5VKein Zurücksetzen (HIGH)
Q0 - Q7LEDs über 220Ω WiderständeParallele 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 (0b00000000 zu 0b11111111).

🔹 6. Kaskadierung mehrerer SN74HC595-Schieberegister

Nutze einfach das mehrere SN74HC595 miteinander verbinden kontrollieren 16, 24 oder mehr Ausgänge.

🛠 Kaskadierende Verdrahtung

1. SN74HC595 Pin2. SN74HC595 Pin
VCCVCC
GNDGND
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

FunktionSN74HC59574HC164TPIC6B595
Bits888
SpeicherriegelJaNeinJa
Tri-State-AusgängeJaNeinJa
Max. Strom pro Pin35 mA25 mA150 mA
Am besten geeignet,LEDs, AnzeigenGrundlegendes SchaltenHochleistungslasten

📌 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.
📡Senden Sie das Signal – verstärken Sie die Verbindung.

Schreiben Sie bitte einen Kommentar.