Relais schaltet direkt durch

Sehr geehrte Mitglieder dieses Forums,

leider habe ich folgendes Problem. Mein Arduino Uno soll über ein Relais eine 230V LED schalten. Das Relais soll durch einen Industrie Tasterelement (Schließer) aktiviert werden. Ich verwende dabei einen Internen Pull Up Widerstand.
Der Arduino zeigt mir im Seriellen Monitor auch das Durchschalten an. (Durch den Pull Up Widerstand hat der Taster die Logik eines Öffners.)

Allerdings schaltet das Relais nach dem Anlegen der Versorgungsspannung an den Arduino sofort durch.

Kann mir da jemand helfen?
LG

Soll ich das Programm von deinem Foto abtippen und dir dann die Korrektur wieder als Foto zu schicken?

Warum machst du einen digitalRead(false)?
Das ist mit Sicherheit false.

1 Like

Manche Relais schalten bei LOW, dann mußt Du denen im setup erst ein HIGH geben und dann auf OUTPUT schalten. De Logik in loop mußt Du dann auch drehen.

Das kommt vom Bootloader, der das Booten verzögert.
Macht aber nix, ein pullup/down Widerstand am Eingang des Relais-Treibers sorgt für den gewünschten Signalpegel, bis der Arduino seinen Ausgang aktiviert hat.

Nöö!
Ist sicherlich ein Relais mit Optokoppler
Da fließt erst Strom, wenn der Pin aktiv low ist.
Ein Pullup ist darum flüssiger als Wasser.

Mal abwarten, wessen Kristallkugel besser ist :wink:

Unbenannt.pdf (10,3 KB)

1 Like

Kannst Du mir eine deine Lupe zukommen lassen? :rofl:

2 Likes

Und ich dachte schon, Du willst wissen, wie gimp funktioniert. :sweat_smile:

Hier der Code zum kopieren:
int taster = 4;
int Relais = 7;

void setup() {
pinMode(taster, INPUT_PULLUP);
pinMode(Relais, OUTPUT);
Serial.begin(9600);

// put your setup code here, to run once:
}

void loop() {
if (digitalRead(taster == LOW)) {
digitalWrite(Relais, HIGH);
}
Serial.println(digitalRead(taster));
}

Das Invertieren des Relais bringt nichts. Klar es schaltet nicht mehr direkt durch. Nun schaltet es gar nicht mehr...Obwohl der Taster seinen Zustand in LOW Ändert.

Du hast Dir selbst ein Ei gelegt und ich habe es nur weiterverwendet.
Schau Deinen Code an und schau meinen Code an.
Du wirst die entsprechende Stelle finden, die NOCH geändert werden muss.

Weshalb muss im schon Setup der Ausgang durchgeschaltet werden? Das ergibt für mich keinen Sinn. Ich bin eh noch Arduino Neuling.
(Es funktioniert auch nicht.)

Wenn ich mich mal selbst zitieren darf:

Die Logik in loop mußt Du dann auch drehen.

Wenn Du ein Modul kaufst, das bei LOW schaltet und bei HIGH nicht schaltet, dann mußt Du das in Deinem Programm entsprechend berücksichtigen.

Es ist übrigens durchaus üblich, daß LOW der aktive und HIGH der inaktive Zustand ist.

Im setup muss der PIN HIGH gezogen werden, weil das Relais auf LOW reagiert.
Wenn Du im setup meine Änderung drin hast und das relais nicht schaltet, hast Du das digitalWrite im loop() nicht angefasst und damit ändert sich der Pinzustand nicht.

Mach den mal und drücke die taste - und las sie wieder los.
schaltet das relais?
was gibt es für eine Ausgabe auf dem serMon, wennd as relais EIN ist und was, wenn das Relais AUS ist?

int taster = 4;
int Relais = 7;

void setup()
{
  pinMode(taster, INPUT_PULLUP);
  pinMode(Relais, OUTPUT);
  digitalWrite(Relais, HIGH);
  Serial.begin(9600);
  // put your setup code here, to run once:
}

void loop()
{
  digitalWrite(Relais, digitalRead(taster) );
  Serial.println(digitalRead(Relais));
  delay(50);
}

Was hast Du für ein relaismodul? => link reicht

1 Like

Funktioniert das Relais ohne Arduino? Oder schaltet es dann auch immer ein?

Ja, das ist LOW-aktiv. -> versuch menen code...

Kann man eigentlich conrad für deren abscheuliche website irgendeinen preis vergeben?

1 Like

Ich finde die Seite ganz gut. Die haben eine schöne Auswahl...
Das Relais schaltet jetzt beim Drücken des Tasters aus. Beim Loslassen wieder ein.

Ich muss auch sagen.: Ich programmiere lieber eine SPS als den Arduino. Das Textbasierte Programmieren ist nicht ganz meins.