Skip to content

Technik Blog

Programmieren | Arduino | ESP32 | MicroPython | Python | Raspberry Pi | Raspberry Pi Pico

Menu
  • Smarthome
  • Arduino
  • ESP32 & Co.
  • Raspberry Pi & Pico
  • Solo Mining
  • Über mich
  • Deutsch
  • English
Menu

Schieberegister 74HC164D: Programmierung und Einsatz am Arduino Nano

Posted on 9. September 20249. September 2024 by Stefan Draeger

Beim Stöbern auf aliexpress.com bin ich auf ein kleines Board mit dem Schieberegister 74HC164D gestoßen und musste es einfach haben. Das kompakte Modul ermöglicht es, auf einfache Weise die Anzahl der digitalen Ausgänge von besonders kleinen Mikrocontrollern zu erweitern.

Schieberegister 74HC164D: Programmierung und Einsatz am Arduino Nano
Dieses Video auf YouTube ansehen.

Es gibt dieses Schieberegister auch als einfachen Baustein wie das Model 74HC959 jedoch finde ich die Variante auf einer Platine etwas besser, weil man dort gleich die Pinbeschriftungen vorliegen hat.

Das kleine Board findest du auch über die Bezeichnung CJMCU-164 auf diversen Plattformen, dazu jedoch später mehr.

Inhaltsverzeichnis

  • Bezug eines Schieberegisters 74HC164D
    • Lieferumfang
  • Aufbau des Boards CJMCU-164
    • Features
  • Anschluss des Boards an den Arduino Nano V3
  • Programmieren des Schieberegisters 74HC164D in der Arduino IDE am Arduino Nano V3

Bezug eines Schieberegisters 74HC164D

Das kleine Modul bekommst du neben wie erwähnt auf aliexpress.com auch auf ebay.de* dort jedoch zu einem deutlich höheren Preis.

ebay.dealiexpress.comandroegg.de
4,87 €*0,96 € (3,62 €)2,87 € (1,64 €)

Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!

Lieferumfang

Zum Lieferumfang des Boards gehört neben der kleinen fertig bestückten Platine noch zwei Stiftleisten, welche wir links und rechts anlöten müssen.

Aufbau des Boards CJMCU-164

Das Board verfügt über 8 Ausgänge, an welche wir zum Beispiel digitale Anzeigen oder LEDs anschließen können. Für die Verbindung mit dem Mikrocontroller benötigen wir lediglich vier Pins. (kein SPI oder I2C!)

CJMCU-164 / Schieberegister 74HC164D
CJMCU-164 / Schieberegister 74HC164D

Da dieses Board nicht über I2C oder SPI angeschlossen wird, haben wir diese Pins weiterhin für andere Sensoren / Aktoren zur Verfügung (was bei I2C nicht so schlimm wäre).

Features

Vom Hersteller habe ich nachfolgende Features entnommen:

  • 8-Bit Seriell-Eingang, Parallel-Out Shift
  • 2,54 mm Rastermaß-Anschluss
  • Breiter Betriebsspannungsbereich von 2 V bis 6 V
  • Niedriger Stromverbrauch: maximal 80 μA ICC
  • Geringer Eingangsstrom: maximal 1 μA

Dank des weiten Spannungsbereichs von 2 bis 6 V lässt sich das Bauteil sowohl mit 3,3 V als auch mit 5 V betreiben. Dadurch kann es problemlos mit Mikrocontrollern wie dem ESP8266 und ESP32 verwendet werden, die in der Regel nur 3,3 V bieten.

Anschluss des Boards an den Arduino Nano V3

Das Board inkl. Schieberegister wird mit vier Breadboardkabel mit dem Mikrocontroller verbunden. Nachfolgend siehst du eine kleine Schaltung, in welche ich zusätzlich noch eine 7 Segmentanzeige integriert habe.

PinArduino Nano V3
VCC5V
GNDGND
Adigitaler Pin D2
B5V
CLKdigitaler Pin D3
CLR5V

Die 7 Segmentanzeige wird wie folgt mit dem Board CJMCU-164 verbunden:

7Segmentanzeige Pinout
7Segmentanzeige Pinout
PinFarbeCJMCU-164
7LilaQ0
6HellblauQ1
4BraunQ2
2RotQ3
1GrünQ4
9DunkelblauQ5
10TürkisQ6
DPdunkles LilaQ7
8Schwarz220 Ohm Widerstand > GND

Programmieren des Schieberegisters 74HC164D in der Arduino IDE am Arduino Nano V3

Der Arduino Nano V3 ist schon etwas in die Jahre gekommen, aber trotzdem finde ich, dass dieser für kleine Projekte immer noch gut zu verwenden ist. Du kannst die nachfolgende Schaltung aber auch mit anderen Mikrocontrollern wie dem Arduino UNO, Arduino Mega usw. nachstellen, da hier lediglich die normalen digitalen Pins verwendet werden.

Für die Anzeige eine Zahl muss eine LED in der 7 Segmentanzeige aktiviert werden. Dazu wurde ein 8-stelliges Array angelegt, in welchem eine 1 eine aktive LED und eine 0 eine entsprechend deaktivierte LED repräsentiert.

{ 1, 1, 1, 1, 1, 1, 0, 0 },  //Zahl 0

Du kannst aber nicht nur Zahlen, sondern auch begrenzt Buchstaben mit dieser Matrix erstellen.

{ 1, 1, 1, 0, 1, 1, 1, 0 },  //Buchstabe A

Nachfolgend werden die Zahlen 0 bis 9 auf der 7 Segmentanzeige angezeigt.

#define dataPin 2
#define clockPin 3

const int MAX_NUMS = 10;

int digits[MAX_NUMS][8]{
  { 1, 1, 1, 1, 1, 1, 0, 0 },  //Zahl 0
  { 0, 1, 1, 0, 0, 0, 0, 0 },  //Zahl 1
  { 1, 1, 0, 1, 1, 0, 1, 0 },  //Zahl 2
  { 1, 1, 1, 1, 0, 0, 1, 0 },  //Zahl 3
  { 0, 1, 1, 0, 0, 1, 1, 0 },  //Zahl 4
  { 1, 0, 1, 1, 0, 1, 1, 0 },  //Zahl 5
  { 0, 0, 1, 1, 1, 1, 1, 0 },  //Zahl 6
  { 1, 1, 1, 0, 0, 0, 0, 0 },  //Zahl 7
  { 1, 1, 1, 1, 1, 1, 1, 0 },  //Zahl 8
  { 1, 1, 1, 0, 0, 1, 1, 0 }   //Zahl 9
};

void setup() {
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
}
void zeigeZahl(int zahl) {
  for (int idx = 7; idx >= 0; idx--) {
    digitalWrite(clockPin, LOW);
    digitalWrite(dataPin, digits[zahl][idx]);
    digitalWrite(clockPin, HIGH);
    delay(100);
  }
}


void loop() {
  for (int idx = 0; idx < MAX_NUMS; idx++) {
    zeigeZahl(idx);
    delay(800);
  }
}

Im Video siehst du, dass die Zahlen 0 bis 9 nacheinander angezeigt werden.

1 thought on “Schieberegister 74HC164D: Programmierung und Einsatz am Arduino Nano”

  1. Pingback: Raspberry Pi Pico 2 - Schieberegister 74HC164D in MicroPython programmieren - Technik Blog

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Fragen oder Feedback?

Du hast eine Idee, brauchst Hilfe oder möchtest Feedback loswerden?
Support-Ticket erstellen

Newsletter abonnieren

Bleib auf dem Laufenden: Erhalte regelmäßig Updates zu neuen Projekten, Tutorials und Tipps rund um Arduino, ESP32 und mehr – direkt in dein Postfach.

Jetzt Newsletter abonnieren

Unterstütze meinen Blog

Wenn dir meine Inhalte gefallen, freue ich mich über deine Unterstützung auf Tipeee.
So hilfst du mit, den Blog am Leben zu halten und neue Beiträge zu ermöglichen.

draeger-it.blog auf Tipeee unterstützen

Vielen Dank für deinen Support!
– Stefan Draeger

Kategorien

Tools

  • Unix-Zeitstempel-Rechner
  • ASCII Tabelle
  • Spannung, Strom, Widerstand und Leistung berechnen
  • Widerstandsrechner
  • 8×8 LED Matrix Tool
  • 8×16 LED Matrix Modul von Keyestudio
  • 16×16 LED Matrix – Generator

Links

Blogverzeichnis Bloggerei.de TopBlogs.de das Original - Blogverzeichnis | Blog Top Liste Blogverzeichnis trusted-blogs.com

Stefan Draeger
Königsberger Str. 13
38364 Schöningen

Tel.: 01778501273
E-Mail: info@draeger-it.blog

Folge mir auf

  • Impressum
  • Datenschutzerklärung
  • Disclaimer
  • Cookie-Richtlinie (EU)
©2025 Technik Blog | Built using WordPress and Responsive Blogily theme by Superb
Cookie-Zustimmung verwalten
Wir verwenden Technologien wie Cookies, um Geräteinformationen zu speichern und/oder darauf zuzugreifen. Wir tun dies, um das Surferlebnis zu verbessern und um personalisierte Werbung anzuzeigen. Wenn Sie diesen Technologien zustimmen, können wir Daten wie das Surfverhalten oder eindeutige IDs auf dieser Website verarbeiten. Wenn Sie Ihre Zustimmung nicht erteilen oder zurückziehen, können bestimmte Funktionen beeinträchtigt werden.
Funktional Immer aktiv
Die technische Speicherung oder der Zugang ist unbedingt erforderlich für den rechtmäßigen Zweck, die Nutzung eines bestimmten Dienstes zu ermöglichen, der vom Teilnehmer oder Nutzer ausdrücklich gewünscht wird, oder für den alleinigen Zweck, die Übertragung einer Nachricht über ein elektronisches Kommunikationsnetz durchzuführen.
Vorlieben
Die technische Speicherung oder der Zugriff ist für den rechtmäßigen Zweck der Speicherung von Präferenzen erforderlich, die nicht vom Abonnenten oder Benutzer angefordert wurden.
Statistiken
Die technische Speicherung oder der Zugriff, der ausschließlich zu statistischen Zwecken erfolgt. Die technische Speicherung oder der Zugriff, der ausschließlich zu anonymen statistischen Zwecken verwendet wird. Ohne eine Vorladung, die freiwillige Zustimmung deines Internetdienstanbieters oder zusätzliche Aufzeichnungen von Dritten können die zu diesem Zweck gespeicherten oder abgerufenen Informationen allein in der Regel nicht dazu verwendet werden, dich zu identifizieren.
Marketing
Die technische Speicherung oder der Zugriff ist erforderlich, um Nutzerprofile zu erstellen, um Werbung zu versenden oder um den Nutzer auf einer Website oder über mehrere Websites hinweg zu ähnlichen Marketingzwecken zu verfolgen.
Optionen verwalten Dienste verwalten Verwalten von {vendor_count}-Lieferanten Lese mehr über diese Zwecke
Einstellungen anzeigen
{title} {title} {title}