Ich habe mal Bard gefragt:
Ardunio: Schalte ein Relais wiederholend für 1,5 Sekunden ein und für 800ms aus
Um ein Relais wiederholend für 1,5 Sekunden ein und für 800ms aus zu schalten, kannst du den folgenden Code verwenden:
// Definiere die Pins, die du verwendest
int relaisPin = 13;
// Setup-Funktion
void setup() {
// Lege den RelaisPin als Ausgang fest
pinMode(relaisPin, OUTPUT);
}
// Loop-Funktion
void loop() {
// Schalte das Relais ein
digitalWrite(relaisPin, HIGH);
// Warte 1,5 Sekunden
delay(1500);
// Schalte das Relais aus
digitalWrite(relaisPin, LOW);
// Warte 800ms
delay(800);
}
Verwende Code mit Vorsicht. Weitere Informationen
Dieser Code schaltet das Relais für 1,5 Sekunden ein und für 800ms aus. Die Zeitintervalle können durch Ändern der Werte der Variablen delay(1500) und delay(800) angepasst werden.
Um den Code zu verwenden, lade ihn in deine Arduino IDE und verbinde das Relais mit dem Pin 13 deiner Arduino-Platine. Dann kannst du den Code einfach ausführen und das Relais wird wiederholend ein- und ausgeschaltet.
Hier ist eine Erklärung des Codes:
Die setup()-Funktion wird einmal ausgeführt, wenn der Arduino gestartet wird. Hier legen wir den RelaisPin als Ausgang fest.
Die loop()-Funktion wird endlos wiederholt. Hier schalten wir das Relais für 1,5 Sekunden ein und für 800ms aus.
Wenn du mehr über Arduino lernen möchtest, kannst du dir online viele Tutorials und Anleitungen ansehen.
Und wie geht das mit den Befehl millis()?
Um ein Relais wiederholend für 1,5 Sekunden ein und für 800ms aus zu schalten, kannst du auch den Befehl millis() verwenden. Der Befehl millis() gibt die Anzahl der Millisekunden seit dem Start des Arduino-Sketches zurück.
Der folgende Code verwendet den Befehl millis(), um das Relais wiederholend für 1,5 Sekunden ein und für 800ms aus zu schalten:
// Definiere die Pins, die du verwendest
int relaisPin = 13;
// Setup-Funktion
void setup() {
// Lege den RelaisPin als Ausgang fest
pinMode(relaisPin, OUTPUT);
}
// Loop-Funktion
void loop() {
// Speichere die aktuelle Zeit
unsigned long currentMillis = millis();
// Wenn die aktuelle Zeit seit dem letzten Einschalten des Relais 1,5 Sekunden beträgt, schalte es ein
if (currentMillis - previousMillis >= 1500) {
digitalWrite(relaisPin, HIGH);
previousMillis = currentMillis;
}
// Wenn die aktuelle Zeit seit dem letzten Ausschalten des Relais 800ms beträgt, schalte es aus
if (currentMillis - previousMillis >= 800) {
digitalWrite(relaisPin, LOW);
}
}
Verwende Code mit Vorsicht. Weitere Informationen
Dieser Code funktioniert ähnlich wie der erste Code, aber er verwendet den Befehl millis(), um die Zeit zu messen, die seit dem letzten Einschalten des Relais vergangen ist.
Hier ist eine Erklärung des Codes:
Die setup()-Funktion wird einmal ausgeführt, wenn der Arduino gestartet wird. Hier legen wir den RelaisPin als Ausgang fest.
Die loop()-Funktion wird endlos wiederholt. Hier speichern wir die aktuelle Zeit in der Variablen currentMillis. Dann prüfen wir, ob die aktuelle Zeit seit dem letzten Einschalten des Relais 1,5 Sekunden beträgt. Wenn ja, schalten wir das Relais ein. Wenn die aktuelle Zeit seit dem letzten Ausschalten des Relais 800ms beträgt, schalten wir das Relais aus.
Dieser Code ist etwas komplexer als der erste Code, aber er ist auch flexibler. Mit dem Befehl millis() können wir beliebige Zeitintervalle messen.
!!!! Achtung: Der 2. Code geht so nicht. Er enthält Fehler, zeigt aber in die richtige Richtung !!!