Arduino Nano + 4-Kanal-Relais: Rollläden & AC-Motoren steuern
Komponenten und Zubehör
| Arduino Nano R3 | × | 1 |
| ControlEverything.com 4-Kanal I²C-Relais-Controller | × | 1 |
| Solid-State 4-Kanal-Platine (Triacs) | × | 1 |
| Rollladenmotor (bis 4 Stück) | × | 1–4 |
| Kondensator 100 nF / 630 V (pro Motor) | × | 1–4 |
| Widerstand 100 Ω / 0,5 W (pro Motor, keine Präzisionswiderstände!) | × | 1–4 |
| Varistor 275 VAC (pro Motor) | × | 1–4 |
| Signal-/Leistungsdiode (pro Rollladen, z. B. 1N4007) | × | 3 |
| Raspberry Pi 3 Model B (optional, Fernsteuerung) | × | 1 |
| nRF24L01+ Modul (optional, 2 Stück für Funk) | × | 2 |
Werkzeuge
- Lötkolben
Software und Dienste
- Arduino IDE
- Domoticz (optional, für Fernsteuerung)
Projektbeschreibung
Einführung
Neues Haus, erste Automatisierung: Rollläden. Was einfach klang, wurde zur Herausforderung: 150-W-Motoren zerstörten Relais und Triacs, Funkauswahl unklar, Störungen auf Leitungen ließen Rollläden nachts spontan bewegen. Lösung mit günstigen Bauteilen gefunden – hier die Dokumentation, um anderen Zeit und Nerven zu sparen.
Wer nicht programmieren, aber löten mag: Am Ende gibt es eine diskrete Schaltung ohne Mikrocontroller.
Das Induktivitäts-Problem
Motoren sind induktive Lasten. Beim Abschalten will der Strom weiterfließen → hohe Spannungsspitzen. Kleine Relais: Kontakte kleben. Triacs: Überlastung (gemessene Spitzen > 1600 V) zerstört Halbleiter. Viele nutzen große Relais (teuer, voluminös, Kontakte leiden trotzdem). Bessere Lösung: RC-Snubber (R + C) + Varistor direkt am Triac.
- Varistor begrenzt Überspannung am Triac.
- RC-Snubber (100 Ω + 100 nF) absorbiert Kommutationsenergie beim Abschalten.

Hinweis: In der realen Schaltung liegen R und C zwischen den Motorleitungen (braun/grau), nicht am Triac. Beides funktioniert, aber so ist der Snubber nicht dauerhaft am Netz.
Steuerlogik
Statt je 2 Pins (Auf/Ab) pro Rolllade wird eine gemeinsame Richtungsleitung genutzt: 5 Eingänge statt 8. Software-Entprellung. Ablauf: 1. Relais für Richtung schalten, kurze Wartezeit, 2. Triac zünden (Motor bekommt 230 VAC). Abschalten: erst Triac aus, dann Relais – Relais schalten nie unter Last.
1–4 Motoren pro Arduino, Code muss nicht angepasst werden. Zwei Stockwerke = zwei getrennte Stromkreise. Code unterstützt mehrere Instanzen durch Auskommentieren einer Zeile beim Hochladen. Tatsächlich drei Stromkreise, 8 Rollläden: einer voll (4 Motoren), zwei teilen sich die restlichen 4 (3 + 1 Eingänge). Identische Funkbefehle, nicht belegte Eingänge bleiben wirkungslos. Mit MySensors: bis 256 Nodes à 4 Rollläden ohne Code-Änderung.

Passt in 22 × 15 × 5,2 cm Unterputzdose (eng). Aufbau in offener Holzbox mit Heißkleber – praktisch, schnell, einfach.
Fernsteuerung (optional)
Zwei Varianten per nRF24L01+: MySensors (empfohlen) oder Custom Integer Protocol (Blindennummer + Befehl 0/1). Master: Raspberry Pi mit nRF24L01+ direkt, Domoticz als Controller.
Variante 1: MySensors
MySensors MQTT Gateway auf Pi installieren (Anleitung). Beispiel-Konfiguration:
sudo ./configure --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 \
--my-mqtt-publish-topic-prefix=domoticz/in/MyMQTT \
--my-mqtt-subscribe-topic-prefix=domoticz/out/MyMQTT \
--my-mqtt-client-id=mygateway1 --my-transport=rf24 \
--my-port=1883 --my-rf24-irq-pin=15
In Domoticz: Hardware → MySensors MQTT Gateway hinzufügen, Node mit Strom versorgen → wird automatisch erkannt.
Variante 2: Custom Protocol
Virtueller Schalter in Domoticz führt Konsolenbefehl aus:
./remote -m XY
(X: Rollladen-Nummer, Y: Aktion 0/1). Basis-Code von hack.lenotta.com (Sektion „The Lamp Switch Application“, Node.js & Arduino-Sketch dort ignorieren). Wichtig: 10 µF Kondensator an nRF24L01+ Stromversorgung, Außenantenne empfohlen (PCB-Antenne < 10 m in Wänden). Code anpassen: Radio-Parameter an Arduino anpassen, nur einmal senden (keine Retries), sonst „Acting-Stopping-Acting“.
Fertiger Raspberry-Code (kompiliert für Pi 3):
#include <unistd.h>
#include <string>
#include <getopt.h>
#include <cstdlib>
#include <sstream>
#include <iostream>
#include <RF24/RF24.h>
using namespace std;
RF24 radio(RPI_V2_GPIO_P1_22, RPI_V2_GPIO_P1_24, BCM2835_SPI_SPEED_8MHZ);
const uint64_t pipes[2] = { 0xF0F0F0F0E1LL, 0xF0F0F0F0D2LL };
unsigned long got_message;
void setup(void){
printf("\nPreparing interface\n");
radio.begin();
radio.setRetries(15, 15);
radio.setChannel(0x70);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_MAX);
radio.printDetails();
radio.openWritingPipe(pipes[0]);
radio.openReadingPipe(1,pipes[1]);
}
bool sendMessage(int action){
radio.stopListening();
unsigned long message = action;
printf("Now sending %lu...", message);
bool ok = radio.write(&message, sizeof(unsigned long));
if (!ok){ printf("failed...\n\r"); }
else{ printf("ok!\n\r"); }
radio.startListening();
unsigned long started_waiting_at = millis();
bool timeout = false;
while ( ! radio.available() && ! timeout ) {
if (millis() - started_waiting_at > 1000 ) timeout = true;
}
if( timeout ){
printf("Puta mierda, no me responde nadie...\n\r");
return false;
}else{
radio.read(&got_message, sizeof(unsigned long));
printf("Yeah, me han respondido > %lu.\n\r",got_message);
return true;
}
}
int main(int argc, char **argv){
char choice;
setup();
bool switched = false;
int counter = 0;
while((choice = getopt(argc, argv, "m:")) != -1){
if (choice == 'm'){
printf("\n Talking with my NRF24l01+ friends out there....\n");
while(switched == false && counter < 1){
switched = sendMessage(atoi(optarg));
counter++; sleep(1);
}
}else{
printf("\n\rIt's time to make some choices...\n");
printf("\n\rTIP: Use -m idAction for the message to send.");
printf("\n\rExample (id 12, action 1):\nsudo ./remote -m 121\n");
}
}
return (counter < 5) ? 0 : 2;
}
Alles für Pi-Seite (Quelle, Libs, Kompilat) als ZIP: https://goo.gl/ocCwk3. Entpacken, ./remote -m XY ausführen.
Ergebnis

Drei Doppeltaster steuern drei Rollläden. Tablet zeigt Domoticz-Oberfläche. Dahinter Raspberry Pi (Controller). Arduino per Funk (nRF24L01+) mit Rollladensteuerung verbunden.

Google Home via IFTTT Webhooks + Domoticz: „Hey Google, Rollläden runter.“
Kurzes Demo-Video im Originalprojekt.
Zusatz: Diskrete Schaltung ohne Mikrocontroller (nur aus Neugier/ohne Programmierung). Funktioniert, aber Arduino-Lösung ist flexibler & zuverlässiger. Nicht Thema dieses Tutorials.

Code
Arduino Sketch
Der vollständige Sketch ist im Originalprojekt verlinkt (Web-IDE lädt Libraries automatisch).
Schaltplan

Herstellungsprozess
- Freigabe- (Permissive) und Verriegelungsschaltungen (Interlock) in industriellen Steuerungssystemen
- Fortgeschrittene Motorkontrollschaltungen: Selbsthaltung, Stopp und Zeitverzögerung
- Leistungsdissipation in Widerstandsschaltungen berechnen
- Bulldozer-Technologie: Design, Fertigung und zukünftige Innovationen
- Edge KI und Low-Power Hardware treiben Aufstieg der Sprachsteuerung an
- Infineon stellt TLE985x Embedded Power Series für Automotive Motor Control vor
- Qualitätskontrolle: Der Eckpfeiler der Motorzuverlässigkeit
- Elektro-Schalttafeln: Design-Grundlagen für Sicherheit & ROI
- Zuverlässige Strom- & Klimaanlagen-Miete für nahtlose Klimakontrolle
- Hydraulikmotor-Drehzahl per PWM & Fernsteuerung regeln: Praxisleitfaden