Ein Relais ist ein elektronisch gesteuerter Schalter, der einen viel größeren Strom fließen lassen kann, als es technisch von einem Mikrocontroller wie Arduino möglich wäre.
Dabei ist es wichtig zu verstehen das der Steuerkreis und der Lastkreis völlig unabhängig voneinander sind. Das bedeutet, dass der Arduino und die Lampe nicht direkt miteinander verbunden sind. Der Arduino steuert nur das Relais, und das Relais steuert die Lampe. So kann der Arduino, der nur einen sehr kleinen Strom handhaben kann, Geräte steuern, die einen viel größeren Strom benötigen.
In diesem Versuchsaufbau werde ich aber die Glühbirnen durch LED´s ersetzen. Die Funktion erklärt sich dadurch aber trotzdem.

Verdrahtung:

Quellcode:
// Definieren Sie die Pins
#define RELAY 6
void setup() {
// Setzen Sie die Pins als Ausgänge
pinMode(RELAY, OUTPUT);
}
void loop() {
// Schalten Sie das Relay und damit die LED ein
digitalWrite(RELAY, HIGH);
// Warten Sie für 1 Sekunde
delay(1000);
// Schalten Sie das Relay und die LED aus
digitalWrite(RELAY, LOW);
// Warten Sie für 1 Sekunde
delay(1000);
}
So wird das Relay angewiesen, den separaten Stromkreis fließen zu lassen oder zu unterbrechen, um so eine kleine Ampel Simulation zu ermöglichen.
Hardware:
Arduino Uno oder Elegoo Mega
1 Kanal Relay oder 4 Kanal Relay (5V)
Teil 2:
In dem zweiten Beispiel werden dann mit drei Relay´s auch drei LED´s anabhängig von einander angeschlossen, um eine Ampel zu simulieren.
Im Sketch werden nun zeitversetzt die digitalen GPIO auf HIGH oder LOW gesetzt.

Weitere Details und Bildquelle
Quellcode:
#define RELAY1 6
#define RELAY2 7
#define RELAY3 8
#define RELAY4 9
void setup()
{
// Initialise the Arduino data pins for OUTPUT
pinMode(RELAY1, OUTPUT);
pinMode(RELAY2, OUTPUT);
pinMode(RELAY3, OUTPUT);
pinMode(RELAY4, OUTPUT);
}
void loop()
{
digitalWrite(RELAY2,LOW); // Turns ON Relays 1
delay(5000); // Wait 2 seconds
//digitalWrite(RELAY1,HIGH); // Turns Relay Off
digitalWrite(RELAY3,LOW); // Turns ON Relays 2
delay(2000); // Wait 2 seconds
digitalWrite(RELAY3,HIGH);
digitalWrite(RELAY2,HIGH); // Turns Relay Off
digitalWrite(RELAY4,LOW); // Turns ON Relays 3
delay(5000); // Wait 2 seconds
digitalWrite(RELAY4,HIGH); // Turns Relay Off
digitalWrite(RELAY1,LOW); // Turns ON Relays 4
delay(2000); // Wait 2 seconds
digitalWrite(RELAY1,HIGH); // Turns Relay Off
}
Um die angeschlossenen LED´s mit korrekter Spannung zu versorgen, wurde ein separates Netzteil an das Breadboard angeschlossen. Das Relay wird von dem Entwicklungsboard mit Spannung versorgt.
Die unterschiedlichen LED-Farben benötigen abweichende Vorwiderstände:
Farbige Leuchtdioden mit unterschiedlichen Spannungsanforderungen
Es gibt auch 3Volt Relais für Arduino oder ESP32 mit 3,3 V Steuerleitung
Die Kombination des Relaismoduls SRD-03VDC-SI-C mit dem Optokoppler GTZ 817C 2011 auf dem Board deutet darauf hin, dass das System eine zuverlässige Steuerung und Isolation bietet, ideal für Anwendungen mit Mikrocontrollern die mit einer 3,3Volt Steuerleitung wie Arduino, ESP32 oder ESP8266 daher kommen.
