HIGH/LOW beim Starten

Hi, Ich wollte fragen ob jemand mir weiterhelfen könnte bei meinem Problem. Das Problem ist das beim Starten des Arduino UNO am PIN 4,5 HIGH anliegt und somit das Relay Schaltet (Am Board hängt eine 8 Relay Karte und ein IR Empfänger). Ich möchte das beim Starten LOW anliegt und mit der IR Fernbedienung “Ein bzw. AUS” (mit einem Knopf auf der Fb) Schalten kann (das Ein/Aus Schalten funktioniert)

Vielen Dank im voraus.

Der Sketch:

#include <IRremote.h>
const byte Relay3=4;
const byte Relay4=5;

const byte RECV_PIN = 7;
 
int togglestate = 0;

IRrecv irrecv(RECV_PIN);

decode_results results;
 
void setup() {
 pinMode(Relay3, OUTPUT);
 pinMode(Relay4, OUTPUT);
 irrecv.enableIRIn();
 Serial.begin(9600);
}
 
void loop(){
  
  if (irrecv.decode(&results)) {

   switch(results.value){
        case 16724175: 
        if(togglestate==0){
        digitalWrite(5, HIGH);
        togglestate=1;
        }
        else {
        digitalWrite(5, LOW);
        togglestate=0;
        }
        break;
        
    }
    irrecv.resume();

                                                                                    
switch(results.value){
        case 16718055:
        if(togglestate==0){                                                                                                                 
        digitalWrite(4, HIGH);
        togglestate=1;
        }
        else {
        digitalWrite(4, LOW);
        togglestate=0;
        }
        break;
        
    }
    irrecv.resume();
  }
}

Hallo,

probiere mal folgendes

void setup()
{
 digitalWrite(Relay3, LOW);
 digitalWrite(Relay4, LOW);
 pinMode(Relay3, OUTPUT);
 pinMode(Relay4, OUTPUT);
 irrecv.enableIRIn();
 Serial.begin(9600);
}

Bist du sicher, dass beim Start HIGH anliegt ?

Was für ein Relais verwendest du ? Die gängigen Relaismodule benötigen zum Schalten (anziehen) ein LOW am Arduino Pin.

... aber auch dort hat Es sich etabliert, daß man den Pin ERST setzt und DANN auf Ausgang schaltet.

Damit man nicht immer umdenken muß, gibt's bei mir dafür zwei neue Variablen

const bool _an=LOW; const bool _aus=!_an;

Dort trägt man ein, welchen Pin-Zustand man für ein AN haben will - der AUS-Zustand ist dann das Gegenteil davon. Im Sketch kann ich dann _AN schreiben und muß mir keinen Kopf machen, ob's ein Relais-Modul (zumeist LOW-Aktiv),ein 'normales' Relais, oder ein SSR (bisher HIGH-Aktiv vorgefunden) ist - auch muß ich nur ein Wörtchen im Sketch austauschen und schon drehen sich die Pins, bei gleichem Sketch, um.

Habe meinem Relais-Knoten (CAN Hausbus) die Funktionalität mitgegeben, nicht nur die Pin-Ausgänge an7aus zu schalten, sondern auch, welcher Zustand für welchen Pin AN ist im Betrieb anzupassen - wenn z.B. ein Relais verreckt oder wegen sonst was getauscht werden will.

MfG

HotSystems: Bist du sicher, dass beim Start HIGH anliegt ?

Was für ein Relais verwendest du ? Die gängigen Relaismodule benötigen zum Schalten (anziehen) ein LOW am Arduino Pin.

Ich benutze die AZDelivery 8-Relais Modul Karte

Doc_Arduino: Hallo,

probiere mal folgendes

void setup()
{
 digitalWrite(Relay3, LOW);
 digitalWrite(Relay4, LOW);
 pinMode(Relay3, OUTPUT);
 pinMode(Relay4, OUTPUT);
 irrecv.enableIRIn();
 Serial.begin(9600);
}

Funktioniert nicht die Relais schalten trotzdem

postmaster-ino: ... aber auch dort hat Es sich etabliert, daß man den Pin ERST setzt und DANN auf Ausgang schaltet.

Damit man nicht immer umdenken muß, gibt's bei mir dafür zwei neue Variablen

const bool _an=LOW; const bool _aus=!_an;

Dort trägt man ein, welchen Pin-Zustand man für ein AN haben will - der AUS-Zustand ist dann das Gegenteil davon. Im Sketch kann ich dann _AN schreiben und muß mir keinen Kopf machen, ob's ein Relais-Modul (zumeist LOW-Aktiv),ein 'normales' Relais, oder ein SSR (bisher HIGH-Aktiv vorgefunden) ist - auch muß ich nur ein Wörtchen im Sketch austauschen und schon drehen sich die Pins, bei gleichem Sketch, um.

Habe meinem Relais-Knoten (CAN Hausbus) die Funktionalität mitgegeben, nicht nur die Pin-Ausgänge an7aus zu schalten, sondern auch, welcher Zustand für welchen Pin AN ist im Betrieb anzupassen - wenn z.B. ein Relais verreckt oder wegen sonst was getauscht werden will.

MfG

Funktioniert ebenso nicht :(

einfachjannik: Ich benutze die AZDelivery 8-Relais Modul Karte Funktioniert nicht die Relais schalten trotzdem

Schalten sie dauerhaft, oder "klackern" sie nur kurz beim Starten? Wenn sie dauerhauft schalten, nimm einfach den anderen Kontakt am Ausgang der Relais.

Moko: Schalten sie dauerhaft, oder "klackern" sie nur kurz beim Starten? Wenn sie dauerhauft schalten, nimm einfach den anderen Kontakt am Ausgang der Relais.

Wenn der Arduino mit Spannung versorgt wird schalten die beiden Relais direkt und wird mit der Roten Led an der Relai Karte Signaliesiert und Klackt einmal somit sind die Relais in geschalteten zustand was ich aber nicht möchte

drück mal strg-t in der IDE zum formatieren.

Dann schaust dir bitte mal das an, wie man ein switch case formuliert.

https://www.w3schools.com/cpp/cpp_switch.asp

Was erwartest du dir vom else? (!)

wenns immer noch nicht klappt, poste einen neu formartierten, korrigierten Sketch.

... Funktioniert nicht ... ... Funktioniert ebenso nicht ...

Antwort: Dann mach's richtig Dann mach's halt eben richtig

Du merkst ... So kommen wir nicht zusammen. Meine Ausführung soll Dir nur sagen, daß ich bei mir den Kram an EINER Stelle festlege - wenn der darunter liegende Sketch nicht lauffähig ist, funktioniert's damit auch nicht besser. Aber, wenn der Eimer läuft, habe ich den Ziel-Pin mit EINER Änderung woanders hingepackt - bei Dir sind Das einige Zeilen mehr und außerdem wild im Sketch verteilt - schnell hat man EINE davon übersehen und schon klappt wieder nur die Hälfte - und selbst Das nur sporadisch.

MfG

einfachjannik: Ich benutze die AZDelivery 8-Relais Modul Karte

Wenn es die "8-Relais Modul 5V mit Optokoppler Low-Level-Trigger für Arduino" Karte ist, dann hast Du meines Erachtens zwei Fehler in Deinem Programm, der erste bei der Initialisierung, der zweite bei der Auswertung.

Erst die Initialisierung: Wie verhalten sich die Relais bei diesem Programm?

const byte Relay3 = 4;
const byte Relay4 = 5;

void setup() {
  // nach dem Einschalten oder Reset sind die Pins hochohmig, kein relevanter Strom fließt.
  digitalWrite(Relay3, HIGH);
  digitalWrite(Relay4, HIGH);
  pinMode(Relay3, OUTPUT);
  pinMode(Relay4, OUTPUT);
}

void loop() {}

einfachjannik: Ich benutze die AZDelivery 8-Relais Modul Karte

Funktioniert nicht die Relais schalten trotzdem

Funktioniert ebenso nicht :(

Du bist echt der Profi.

Deine Fehlermeldungen sind absolut dass was wir hier brauchen.

Geht es evtl. mal etwas genauer ? Z.B. einen Link deiner Relais, dann wissen wir genau welch du hast.

Bisher lässt du uns hier sauber raten. Danke dafür.

AZ-Delivery, dann gibt es da bestimmt auch ein Gratis-EBook, das Du dir runterladen kannst. Ist als PDF. Da drin findest Du alle Infos zu Deiner Relais-Karte, inkl. Anschlussplan und Beispielcode. Ist sehr zu empfehlen.

LG Stefan