Problem RFID-RD522 mit Schalter/Relais

Liebes Forum,

ich möchte mit dem RFID-RC522 ein Relais einschalten, wenn der korrekte Tag erkannt wurde und nach erneuter Tagnäherung das Relais wieder abschalten.

Hierzu habe ich eine Integer benutzt, welche mit 1 oder 0 beschrieben wird.
Jetzt schafft es mein Code derzeit, dass relais anzumachen, jedoch nicht mehr abzuschalten, wo ist der Fehler? Vielen lieben Dank im Voraus! :slight_smile:

relais_check = true;
    for (int j=0; j<4; j++) {
      if (mfrc522.uid.uidByte[j] != blue_uid[j]) {
        relais_check = false;
      }
    }
 
    if (relais_check) {
      if(ZustandRelais==0){
  ZustandRelais=1;
  }else{
  ZustandRelais=0;
}
Serial.println(ZustandRelais);
    }}
  if(ZustandRelais=1){
  digitalWrite(relais,LOW);
 }
 if(ZustandRelais=0){
  digitalWrite(relais,HIGH);
 }

Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Hey Tommy,

danke für den Tipp, habe es angepasst :slight_smile:

änder die Zeilen

timeforcoffee:

if(ZustandRelais=1){

if(ZustandRelais=0){

mal zu:

  if(ZustandRelais==1){
  if(ZustandRelais==0){

@Moko:

 if(ZustandRelais==1){
  if(ZustandRelais==0){
  ...
  }
 }

if (1 == 0) wird gern als dummy-if verwendet, wenn der Compiler es nicht bemerkt.

Aber so hat es timeforcoffee gar nicht gemeint. Der wollte eher

    digitalWrite(relais, !ZustandRelais);  // LOW falls ZustandRelais true, sonst HIGH

Guten Abend liebes Forum,

beide Antworten haben mir sehr geholfen und führen zum gewünschten Effekt einer funktionierenden Schaltung.

Daher vielen Dank an euch beide :slight_smile:

Ich werde sicher noch die ein oder andere Frage stellen müssen, sollte ich nach dem suchen nicht das passende gefunden haben.

Grüße,
Sebastian