Hunderte Relays mühelos steuern & synchronisieren mit IO-Expandern
Komponenten und Zubehör
| IO Expander | ×2 |
| Relay Expander | ×2 |
| 16-Kanal-Relay-Board | ×2 |
| Arduino Nano R3 | ×1 |
Projektbeschreibung
Wer hunderte Relays gleichzeitig steuern und synchronisieren muss, verbindet Arduino, ESP8266, Raspberry Pi, PC oder Mac mit einem IO Expander und Relay Expandern. Die neue External Latching-Funktion ermöglicht:
- Relay-Einstellungen in kompakter Bit-Format an den Expander senden
- Per einzelner GPIO-Leitung (vom MCU oder IO-Expander-Ausgang) alle gelatchten Daten gleichzeitig ausgeben
Siehe auch Projekt „Control Up to 65,280 Relays with Your Arduino“.
Einrichtung: External Latching für 16-Relay-Board
Einfache Kommando-Struktur des IO Expanders:
>g4o1;g10n;el10
ok
ok
10
>
g4o1: GPIO Pin 4 als Output High (Latch-Enable-Leitung)g10n: GPIO Pin 10 negative Flankenerkennung (Latch-Trigger)el10: Relay Expander External Latch auf Pin 10 aktivieren
Relays setzen (e1o = Expander 1 Relay On), dann Latch auslösen:
>e1o;e10o;e16o
ok
ok
ok
>g4o0,1
ok
>
e1o;e10o;e16o: Relays 1, 10, 16 auf Expander 1 einschalteng4o0,1: Pin 4 für 1 ms auf Low ziehen → Latch auslösen, dann wieder High
Erweiterung: 2× IO Expander, 2× Relay Expander, 2× 16-Relay-Boards
Zwei IO Expander im Multi-Drop 9-Bit-Protokoll (max. 255 Expander). Arduino Nano als Master.
IO Expander External Latching Diagram
Arduino Code
/* IO Expander - Relay Expander External Latching */
#include
#include "IOExpander9Bit.h"
#include
#define MAX_BOARDS 2
void setup() {
Serial9Bit.begin(115200, SERIAL_9N1);
Serial9Bit.write(0); // 9-Bit-Modus setzen
wdt_enable(WDTO_8S);
for (uint8_t b=1; b<=MAX_BOARDS; b++) SerialCmdDone(b, "eb1"); // Relay Expander aktivieren
SerialCmdDone(1, "g4o1;g10n;el10"); // Board 1: Latch-Setup
SerialCmdDone(2, "g10n;el10"); // Board 2: Latch-Setup (Pin 4 nur auf Board 1)
}
void loop() {
static uint16_t i = 0;
uint8_t r[2];
r[0] = ~(uint8_t)(i >> 8); // High-Byte invertiert
r[1] = ~(uint8_t)i++; // Low-Byte invertiert, inkrementieren
SerialWriteRelayExpander(1, r, 2); // An Board 1 senden
delay(50);
r[0] = ~r[0]; r[1] = ~r[1]; // Invertieren für Board 2
SerialWriteRelayExpander(2, r, 2); // An Board 2 senden
delay(50);
SerialCmdDone(1, "g4o0,1"); // Latch auslösen (Pin 4 Low-Puls 1ms)
wdt_reset();
}
External Latching in Aktion
IO Expander beschaffen und eigenes System aufbauen!
Schaltplan
Herstellungsprozess
- Robotik im 21. Jahrhundert: Verteilte Systeme, Telepräsenz & Weltraumforschung
- SaaS meistern: Strategien, um Kontrolle zu behalten und die Cloud zu nutzen
- Warum Lagerhäuser jetzt IoT adoptieren sollten: Effizienz, Genauigkeit, Sicherheit steigern
- Elektro-Schalttafeln: Design-Grundlagen für Sicherheit & ROI
- Effizienzsteigerung durch responsiven Roboter bei Energy Dynamics
- Kaufzyklus zurückgewinnen: Bewährte Strategien für Hersteller
- Das Motorsteuergerät (ECU): Das Gehirn moderner Fahrzeuge
- Kfz-Relais: Funktion, Typen, Aufbau & Schutzmechanismen
- Relais: Typen, Anwendungen, Geschichte & Auswahlkriterien – Der umfassende Leitfaden
- Erste Kfz-Versicherung: Schritt-für-Schritt zum günstigen Schutz