5.1 Mikrochip - 74HC595

Ein integrierter Schaltkreis (integrated circuit, kurz IC) ist eine Art Miniatur-Elektronikbauelement oder -komponente, das in Schaltkreisen durch das Kürzel „IC“ dargestellt wird.

Mit Hilfe eines speziellen Verfahrens werden Transistoren, Widerstände, Kondensatoren, Spulen und andere für einen Schaltkreis erforderliche Bauelemente und Verbindungen auf einem oder mehreren kleinen Halbleiter-Wafern oder dielektrischen Substraten angefertigt. Anschließend werden diese in ein Gehäuse eingebettet und ergeben somit eine Mikrostruktur mit den erforderlichen Schaltkreisfunktionen. Alle Bauteile sind als eine Einheit strukturiert, was einen großen Schritt in Richtung Miniaturisierung, geringem Stromverbrauch, Intelligenz und hoher Zuverlässigkeit von elektronischen Bauelementen bedeutet.

Die Erfinder der integrierten Schaltkreise sind Jack Kilby (integrierte Schaltkreise auf Germaniumbasis (Ge)) und Robert Norton Noyce (integrierte Schaltkreise auf Siliziumbasis (Si)).

Dieses Kit enthält einen IC, den 74HC595, der die Nutzung von GPIO-Pins erheblich reduziert. Konkret kann er 8 Pins für die digitale Signalausgabe ersetzen, indem ein 8-Bit-Binärzahl geschrieben wird.

Benötigte Komponenten

Für dieses Projekt benötigen wir die folgenden Komponenten.

Es ist definitiv praktisch, ein komplettes Kit zu kaufen, hier ist der Link:

Bezeichnung

KOMPONENTEN IN DIESEM KIT

LINK

Kepler-Kit

450+

Kepler Kit

Sie können die Komponenten auch einzeln über die untenstehenden Links erwerben.

SN

KOMPONENTE

MENGE

LINK

1

Raspberry Pi Pico W

1

BUY

2

Micro-USB-Kabel

1

3

Steckbrett

1

BUY

4

Jumperkabel

Mehrere

BUY

5

Widerstand

8 (220Ω)

BUY

6

LED

8

BUY

7

74HC595

1

BUY

Schaltplan

sch_74hc_led

  • Wenn MR (Pin 10) auf hohem und OE (Pin 13) auf niedrigem Pegel ist, wird das Daten in der aufsteigenden Flanke von SHcp eingegeben und durch die aufsteigende Flanke von SHcp ins Speicherregister übertragen.

  • Sind die beiden Taktgeber verbunden, ist das Schieberegister immer einen Puls vor dem Speicherregister.

  • Im Speicherregister gibt es einen seriellen Eingangspin (Ds), einen seriellen Ausgangspin (Q) und eine asynchrone Zurücksetztaste (Low-Pegel).

  • Das Speicherregister gibt einen Bus mit einem parallelen 8-Bit und in drei Zuständen aus.

  • Ist OE aktiviert (Low-Pegel), werden die Daten im Speicherregister auf den Bus (Q0 ~ Q7) ausgegeben.

Verkabelung

wiring_74hc_led

Code

Bemerkung

  • Öffnen Sie die Datei 5.1_microchip_74hc595.py im Pfad kepler-kit-main/micropython oder kopieren Sie diesen Code in Thonny und klicken Sie dann auf „Aktuelles Skript ausführen“ oder drücken Sie einfach F5.

  • Vergessen Sie nicht, im rechten unteren Eck den Interpreter „MicroPython (Raspberry Pi Pico)“ auszuwählen.

  • Für detaillierte Informationen über die Funktionsweise des Codes und die zu verwendenden Bibliotheken, verweisen wir auf den Kommentarbereich im Code.

import machine
import time

sdi = machine.Pin(0,machine.Pin.OUT)
rclk = machine.Pin(1,machine.Pin.OUT)
srclk = machine.Pin(2,machine.Pin.OUT)

def hc595_shift(dat):
    rclk.low()
    time.sleep_ms(5)
    for bit in range(7, -1, -1):
        srclk.low()
        time.sleep_ms(5)
        value = 1 & (dat >> bit)
        sdi.value(value)
        time.sleep_ms(5)
        srclk.high()
        time.sleep_ms(5)
    time.sleep_ms(5)
    rclk.high()
    time.sleep_ms(5)

num = 0

for i in range(16):
    if i < 8:
        num = (num<<1) + 1
    elif i>=8:
        num = (num & 0b01111111)<<1
    hc595_shift(num)
    print("{:0>8b}".format(num))
    time.sleep_ms(200)

Wenn das Programm läuft, wird num als achtbitige Binärzahl in den 74HC595-Chip geschrieben, um das Ein- und Ausschalten der 8 LEDs zu steuern. Den aktuellen Wert von num können wir im Shell-Fenster einsehen.

Wie funktioniert es?

Die Funktion hc595_shift() bewirkt, dass der 74HC595 acht digitale Signale ausgibt. Dabei wird das letzte Bit der Binärzahl an Q0 und das erste Bit an Q7 ausgegeben. Mit anderen Worten: Schreibt man die Binärzahl „00000001“, so gibt Q0 ein hohes Signal aus, während Q1 bis Q7 ein niedriges Signal ausgeben.