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