32 LEDs mit Arduino Nano und 4x 74HC595 Schieberegistern steuern – Einsteiger-Guide
Komponenten und Materialien
| Komponente | Menge | Hinweise |
|---|---|---|
| Arduino Nano R3 | 1 | |
| Texas Instruments 74HC595 Schieberegister (Serial zu Parallel) | 4 | 8-Bit, kaskadierbar |
| Lötfreies Breadboard (Vollgröße) | 1 | |
| LED (beliebig) | 32 | Nach Vorliebe |
| Widerstand 100 Ohm | 32 | Passend zur LED |
| Jumper-Kabel | viele |
Apps & Online-Dienste
- Arduino IDE
Über dieses Projekt
Dies ist eine Schritt-für-Schritt-Anleitung für Einsteiger und Arduino-Neulinge wie mich.
Wir behandeln Grundlagenwissen zum 8-Bit-Schieberegister 74HC595, lernen, wie man sie kaskadiert (Daisy-Chain) und nutzen eine fertige HC595-Bibliothek.
Ich hatte Probleme mit manchen Schieberegistern – wusste nicht warum. Lag es an zu wenig Strom?
Wichtige Links
- HC595 Bibliothek: GitHub
- Datenblatt: TI
- Weitere Infos: Tutorial
- For-Schleifen: Arduino Referenz
Social Media (falls gewünscht): Facebook, Twitter, Instagram – Links im Original.
Schaltplan & Aufbau
(Bilder im Originalprojekt: Schaltplan, Breadboard-Aufbau, kaskadierte 74HC595, LED-Reihen)
Die 74HC595 werden in Reihe geschaltet: Serielle Daten (DS) an erstes Register, dessen Q7' (Pin 9) an DS des nächsten, alle teilen sich SH_CP (Clock, Pin 11) und ST_CP (Latch, Pin 12). Arduino steuert Data (Pin 2), Clock (Pin 3), Latch (Pin 4).
Code
Bearbeiteter Beispielcode aus der HC595-Bibliothek (Arduino)
#include <HC595.h>
const int chipCount = 4; // 4 kaskadierte 74HC595 (max 8)
const int latchPin = 4; // ST_CP (Pin 12)
const int clockPin = 3; // SH_CP (Pin 11)
const int dataPin = 2; // DS (Pin 14)
// Konstruktor
HC595 ledArray(chipCount, latchPin, clockPin, dataPin);
int delayMs = 30;
int lastPin = ledArray.lastPin(); // 31 bei 4 Chips
void setup() {
ledArray.reset();
}
void loop() {
// Vorwärts einschalten
for (int i = 0; i <= lastPin; i++) {
ledArray.setPin(i, ON);
delay(delayMs);
}
// Rückwärts ausschalten
for (int i = lastPin; i >= 0; i--) {
ledArray.setPin(i, OFF);
delay(delayMs);
}
// Rückwärts toggeln
for (int i = lastPin; i >= 0; i--) {
ledArray.setPin(i, TOGGLE);
delay(delayMs);
}
// Vorwärts toggeln
for (int i = 0; i <= lastPin; i++) {
ledArray.setPin(i, TOGGLE);
delay(delayMs);
}
}
HC595 Bibliothek von J. Bellavance
https://github.com/j-bellavance/HC595
Schaltplan
Schaltplan-Bild im Originalprojekt verfügbar.
Herstellungsprozess
- DHT11 Temperatur- & Feuchtesensor mit LED-Anzeige & Piezo-Summer
- Arduino Digitaler Würfel: LCD-Würfel mit Zufallszahlen (1–6)
- LEDs mit Alexa über Raspberry Pi steuern – Einfache Schritt-für-Schritt-Anleitung
- Arduino Iron Man bauen: Komponenten, Sensoren & Schritt-für-Schritt-Anleitung
- Find Me: Smarter Gegenstands-Finder mit Arduino und Bluetooth
- Funktionaler 3D-gedruckter Roboterarm mit Arduino – Schritt-für-Schritt-Anleitung
- DIY Arduino Luftbefeuchter-Steuerung mit Relais – Sichere Hochspannungs-Installation
- NeoPixel-Matrix Pong auf Arduino Nano: Neon-Pong selbst bauen
- DIY Arduino Lenkrad / Joystick für Rennspiele – USB-HID-Umbau
- Leistungsstarker FM-Radio-Empfänger mit Arduino & TEA5767