Arduino-Code und Video für Solid-State-Relais zur Steuerung einer Wechselstromlampe oder Last
In diesem Tutorial zeigen wir, wie man ein Solid-State-Relais (SSR) verwendet, um eine Wechselstrom- oder Gleichstrom-Last, wie zum Beispiel eine Glühbirne, zu steuern. Das Solid-State-Relais ermöglicht das sichere und effiziente Schalten elektrischer Lasten mithilfe eines Niederspannungssignals von einem Arduino. Am Ende dieses Tutorials haben Sie einen funktionierenden Aufbau, der die Lampe in festgelegten Intervallen ein- und ausschalten kann.

Um dieses Projekt umzusetzen, werden wir ein SSR verwenden, genauer das Modell G3MB-202P, das Lasten bis zu 2A handhaben kann. Das Relais wird von einem digitalen Pin des Arduino-Boards gesteuert, sodass wir ein Signal senden können, das die Last ein- oder ausschaltet. Dieses Projekt ist nicht nur praktisch, sondern eignet sich auch hervorragend als Einführung in die Arbeit mit Relais und Arduino.
Für eine detaillierte visuelle Erklärung sollten Sie sich unbedingt das begleitende Video ansehen (im Video bei 00:00).
Hardware erklärt
In diesem Projekt ist die Hauptkomponente das Solid-State-Relais G3MB-202P. Dieses Relais ermöglicht es, eine Last mit hoher Spannung mit einem Niederspannungssignal zu steuern. Es verwendet einen Optokoppler, um den Lastkreis zu schalten, und bietet elektrische Isolation zwischen Steuer- und Lastseite. Das Relais verfügt über drei Pins: DC+, DC- und den Eingangskanal, der mit dem Arduino verbunden ist.
Wenn das Eingangssignal niedrig (0V) ist, zieht das Relais an und lässt Strom durch die Last fließen. Umgekehrt schaltet das Relais ab, wenn das Eingangssignal hoch (5V) ist, und unterbricht den Strom zur Last. Dieser Low-Trigger-Mechanismus ist unerlässlich, um Hochspannungsgeräte sicher zu steuern, ohne direkten elektrischen Kontakt.
Datenblattdetails
| Hersteller | Omron |
|---|---|
| Teilenummer | G3MB-202P |
| Logik-/I/O-Spannung | 5 V |
| Versorgungsspannung | 5-24 V |
| Ausgangsstrom (pro Kanal) | 2 A |
| Spitzenstrom (pro Kanal) | 4 A |
| Hinweise zur PWM-Frequenz | Bis zu 1 kHz |
| Eingangslogik-Schwellenwerte | Niedrig: 0-1.5 V, Hoch: 3-30 V |
| Spannungsabfall / RDS(ein)/ Sättigung | 1,5 V max. |
| Thermische Grenzwerte | -30 bis 100 °C |
| Paket | Durchsteckmontage |
| Hinweise / Varianten | Erhältlich in verschiedenen Eingangsspannungswerten |
- Stellen Sie sicher, dass das Relais für die Last ausgelegt ist, die Sie steuern möchten.
- Verwenden Sie eine ausreichende Wärmeableitung, wenn Sie nahe der maximalen Stromstärke arbeiten.
- Überprüfen Sie die Verkabelung noch einmal, um Probleme durch umgekehrte Polarität zu vermeiden.
- Verwenden Sie Entkopplungskondensatoren an den Stromversorgungsleitungen.
- Vorsicht bei schwebenden Eingängen; stellen Sie sicher, dass das Steuersignal korrekt geerdet ist.
- Bestätigen Sie, dass die PWM-Frequenz im Bereich der Spezifikationen des Relais für Schaltanwendungen liegt.
Verdrahtungsanleitung

Die Verkabelung des Solid-State-Relais ist unkompliziert. Verbinden Sie den positiven Anschluss des Relais (DC+) mit dem 5V-Pin des Arduino. Der negative Anschluss (DC-) sollte mit der Masse (GND) des Arduino verbunden werden. Der Eingangspin, der das Relais steuert, wird mit dem digitalen Pin 8 des Arduino verbunden. Dieser Pin sendet ein Low- oder High-Signal, um das Relais zu aktivieren oder zu deaktivieren.
Auf der Lastseite verbinden Sie ein Kabel von der Wechselstromlampe mit dem Ausgangsanschluss des Relais und das andere Kabel mit der Wechselstromversorgung. Verwenden Sie geeignete Steckverbinder und stellen Sie sicher, dass alle Verbindungen sicher sind, um elektrische Gefahren zu vermeiden.
Codebeispiele und Schritt-für-Schritt-Anleitung
Hier ist eine kurze Übersicht über den Arduino-Code zur Steuerung des Festkörperrelais:
int relayPin = 8; // set pin 8 for relay output
void setup() {
Serial.begin(9600); // initialize serial communication
pinMode(relayPin, OUTPUT); // set relay pin as output
}In diesem Auszug definieren wirrelayPinals 8, was dem digitalen Pin entspricht, der mit dem Relais verbunden ist. Dassetup()Die Funktion initialisiert die serielle Kommunikation und setzt den Relais-Pin als Ausgang.
void loop() {
digitalWrite(relayPin, LOW); // turn relay ON
Serial.println("Relay ON"); // output to serial monitor
delay(2000); // wait for 2 seconds
}Imloop()In der Funktion schalten wir das Relais ein, indem wirrelayPinauf LOW, wodurch das Relais aktiviert wird und Strom zur Last fließen kann. Eine Nachricht wird zur Bestätigung im seriellen Monitor ausgegeben.
digitalWrite(relayPin, HIGH); // turn relay OFF
Serial.println("Relay OFF"); // output to serial monitor
delay(2000); // wait for 2 seconds
}Als Nächstes schalten wir das Relais aus, indem wirrelayPinauf HIGH, wodurch der Stromfluss zur Last unterbrochen wird. Erneut geben wir eine Nachricht auf dem seriellen Monitor aus, um den Relaisstatus anzuzeigen. Dieser Vorgang wiederholt sich unbegrenzt und schaltet das Relais alle zwei Sekunden ein und aus.
Den vollständigen Arduino-Code finden Sie weiter unten unter dem Artikel.
Demonstration / Was Sie erwartet
Wenn der Code auf den Arduino hochgeladen wurde, sollten Sie das Relais klicken hören, während es ein- und ausschaltet, und die angeschlossene Lampe sollte sich alle zwei Sekunden ein- und ausschalten. Wenn das Relais nicht wie erwartet funktioniert, überprüfen Sie die Verkabelung und stellen Sie sicher, dass das Relais das richtige Steuersignal erhält. Häufige Probleme sind umgekehrte Polarität auf der Lastseite oder fehlerhafte Verbindungen am Arduino.
Zur weiteren visuellen Bestätigung der Relaisfunktion siehe das Video (im Video bei 06:00), in dem gezeigt wird, dass die Glühlampe beim Aktivieren des Relais an- und ausgeht.
Video-Zeitmarken
- 00:00- Einführung in das Projekt
- 01:30- Hardware-Setup
- 03:15- Code-Erklärung
- 05:45- Live-Demonstration
- 07:00- Fazit
/*
* This is the Arduino code for a Solid State Relay
* to control turning ON or OFF an AC or DC load
* Watch the video https://youtu.be/64NatLeGsaE
* *
* Written by Ahmad Shamshiri for Robojax Video
* Date: January 13, 2018, in Ajax, Ontario, Canada
* Permission granted to share this code given that this
* note is kept with the code.
* Disclaimer: this code is "AS IS" and for educational purposes only.
*
*/
// Introduction to a 5v Solid State relay.
int relayPin = 8;// set pin 8 for relay output
// setup code for Robojax Solid State Relay
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
Serial.println("Robojax Solid State Relay");
pinMode(relayPin, OUTPUT);
}
// loop code for Robojax Solid State Relay
void loop() {
// Turn the relay switch ON (Robojax.com/learn/arduino)
digitalWrite(relayPin, LOW);// set relay pin to low
Serial.println("Relay ON");
delay(2000);
// Turn the relay switch OFF (Robojax.com/learn/arduino)
digitalWrite(relayPin, HIGH);// set relay pin to HIGH
Serial.println("Relay OFF");
delay(2000);
}
Ressourcen & Referenzen
Noch keine Ressourcen vorhanden.
Dateien📁
Fritzing-Datei
-
Solid State Hochpegelrelais-Modul
Solid State High Level Relay Module .fzpz0.04 MB