1-Kanal-Relais-Modul, 5V Relay-Module mit Status-LEDs für Arduino Hängt sich auf

Hallo,

ich habe eine Türöffneranlage gebaut mit ein (RFID) das ist das Code welchen ich bei meinem

#include <SPI.h> // SPI-Bibliothek einbinden
#include <MFRC522.h> // RFID-Bibliothek einbinden
#define SS_PIN 10 // Konfigurierbarer Pin (SDA am Modul)
#define RST_PIN 9 // Konfigurierbarer Pin
#define relaypin 2 // Pin der LED deklarieren

MFRC522 mfrc522(SS_PIN, RST_PIN); // MFRC522 Instanz starten

void setup()
{
  Serial.begin(9600); // Serielle Verbindung initalisieren
  SPI.begin();
  mfrc522.PCD_Init();
  pinMode (relaypin, OUTPUT); // digitaler Pin der Led wird als Output deklariert
}

void loop()
{
  if ( ! mfrc522.PICC_IsNewCardPresent()) // Suche nach neuer Karte...
  {
    return; // Gehe weiter...
  }

  if ( ! mfrc522.PICC_ReadCardSerial()) // Wähle RFID-Transponder
  {
    return; // Gehe weiter...
  }

  Serial.print("Die UID des RFID-TAGS lautet:"); // Schreibe auf den seriellen Monitor
// Auslesen der UID
  String rfid = "";
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    rfid += mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ";
    rfid += String(mfrc522.uid.uidByte[i], HEX);
  }
    rfid.trim(); // entfernt Leerzeichen vor und nach der UID
    rfid.toUpperCase(); // Großschreibung der UID
  {
    Serial.print(rfid); // Zeige UID des RFID-Tags im Seriellen Monitor
    Serial.println(); // Zeilenumbruch
  }

  if (rfid == "05 C0 6D 9B") // Wenn die richtige Karte erkannt wurde...
  {

    digitalWrite (relaypin, LOW); // ...dann soll die LED leuchten...
    delay (5000); // 5 Sekunden Verzögerung
    digitalWrite (relaypin, HIGH); // … und wieder ausgehen.

  }
}

Setze mein Problem Falls ich den Chip davor halte die Tür auf aber nur einmal danach geht es nicht mehr! Danach muss ich es neu starten dann geht es wieder einmal

Den Öffner benutze ich: Elektrischer Türöffner PESO 300 a 6-12 Volt mit Schließblech 110x25 und Entriegelungshebel

Den Relay benutze ich: 1-Kanal-Relais-Modul, 5V Relay-Module mit Status-LEDs für Arduino, Genuino

Die Spannung ist 12 Volt

Ich habe bisher zwar noch nicht mit dem RFID gearbeitet, aber die ersten beiden if-Abfragen würde ich testweise entfernen.
Die haben im Normalfall in der Loop eigentlich nichts zu suchen.

Okay werde ich mal machen!

Kann das sein die Relay-Module kaputt ist warum es nicht geht?

Ohne Strom geht alles nur wenn ich auf das Teil Strom drauf mache geht es nur einmal??

manuel20134:
Okay werde ich mal machen!

Kann das sein die Relay-Module kaputt ist warum es nicht geht?

Ohne Strom geht alles nur wenn ich auf das Teil Strom drauf mache geht es nur einmal??

Ahh...ok, dann ist das Problem ein anderes.

Was für ein Relais-Modul verwendest du ?

Bitte einen Link posten.
Hyperlink keine URL.

Hast du den Türöffner schon dran ?
Du bekommst vermutlich dadurch Störungen wenn der öffnet.
Schließe mal eine Freilaufdiode parallel zum Türöffner.
Aber nur wenn du Gleichspannung verwendest.

Ich benutze das hier: 1-Kanal-Relais-Modul, 5V Relay-Module mit Status-LEDs für Arduino, Genuino

Ich benutze ein Solarladergler und da habe ich das angeschlossen.

Ja ich habe das Türschloss schon eingebaut!

Das Relaismodul ist ok und hat eine Freilaufdiode.
Dann nimm dein Türöffner mal ab und teste dann.

Was passiert, wenn du eine ungültige Karte dranhälst und dann wieder die richtige?

Da passiert nix das Schloss habe ich auch schon ausgebaut aber es geht trotzdem nicht!

Das müsste doch eigentlich gehen oder gibts da auch eine andere Möglichkeit mit man das auch umsetzen kann?

Dann solltest du mal debug Ausgaben in den Sketch einbauen, um zu sehen, was passiert und wo es dann hängt

Dann verstehe ich diese Aussage

manuel20134:
Ohne Strom geht alles nur wenn ich auf das Teil Strom drauf mache geht es nur einmal??

von dir nicht.

Was machst du stromlos ?
Auch den Arduino ?

Und mit deinen "wenigen" Erfahrungen solltest du klein anfangen.

Hast du schon mal versucht den Türöffner per Taster am Arduino zu öffnen.

Mit kleinen Schritten kommst du sicher auf dein Problem.

Und poste uns mal ein Schaltbild, dann wissen auch wir, wie du alles angeschlossen hast.

Edit:
Welche Spannung und welchen Strom liefert der Solarregler und hast du da alles angeschlossen ?

Okay vielen Dank kannst du bitte sagen wie das geht?
Ich bin noch Anfänger!

manuel20134:
Okay vielen Dank kannst du bitte sagen wie das geht?
Ich bin noch Anfänger!

Das ist dein Problem.

Lerne die Basics und teste alle Beispiele in der IDE, dann siehst du wie es geht und wie man Fehler einkreist.

Was mir auffällt: Fast immer sind die Relais-Module "active low", das bedeutet, das Relais schaltet wenn der Steuerpin auf LOW geht.
In deinem Code ist das zwar im letzten Teil realisiert, aber der Relaispin ist ja schon die ganze Zeit LOW - seit Setup ausgeführt wurde.
Ich würde Setup mal ändern in:

void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  digitalWrite (relaypin, HIGH);    // diese Zeile ist neu
  pinMode (relaypin, OUTPUT);
}

Damit ist der Relays-Pin HIGH und das Relais schaltet erst wenn die Bedingung "Richtige Karte" erfüllt ist.

Ich hab zwar schon öfter mit RFIDs gearbeitet, aber immer mit einer anderen Library, nämlich der von Adafruit (Beispiele hier: Overview | Adafruit PN532 RFID/NFC Breakout and Shield | Adafruit Learning System ).
Und die Beispiele haben immer problemlos funktioniert. Aber möglicherweise verwendest du eine andere Hardware (MFRC522 statt 532).

Vielen Dank jetzt geht es!

Jetzt habe ich noch eine Frage ich möchte gerne mehrere Karten benutzen können
wie muss ich das in den Code einstellen?

if (rfid == "05 C0 6D 9B") // Wenn die richtige Karte erkannt wurde...

Dann setzt du in der if-Abfrage ein oder "||" ein.

Und was hast du geändert, dass es jetzt funktioniert ?

Ich habe alles nochmal neu verkabelt dann ging es Gott sei Dank

Meinst du so hier?
if (rfid == "06 C0 6D 7B" == "06 C0 6D 7B") // Wenn die richtige Karte erkannt wurde...

manuel20134:
Ich habe alles nochmal neu verkabelt dann ging es Gott sei Dank

Meinst du so hier?
if (rfid == "06 C0 6D 7B" == "06 C0 6D 7B") // Wenn die richtige Karte erkannt wurde...

Wo ist denn dein "oder" ?

If ( rfid == "12345678" || rfid == "22334455" )

HotSystems:
Dann setzt du in der if-Abfrage ein oder "||" ein.

Und was hast du geändert, dass es jetzt funktioniert ?

Was meintest du damit: Dann setzt du in der if-Abfrage ein oder "||" ein.

Und was hast du geändert, dass es jetzt funktioniert ?
Wie gesagt ich habe alles neu verkabelt!!

manuel20134:
Was meintest du damit: Dann setzt du in der if-Abfrage ein oder "||" ein.

Es ist jetzt wirklich an der Zeit, dass du dir die Grundlagen ansiehst.
Das kann man alles sehr schön nachlesen.
In den Beispielen der IDE oder im Web.
Einfach mal googeln.

HotSystems:
Dann setzt du in der if-Abfrage ein oder "||" ein.

Und was hast du geändert, dass es jetzt funktioniert ?

Was meintest du damit : Dann setzt du in der if-Abfrage ein oder "||" ein.

Und was hast du geändert, dass es jetzt funktioniert ?

Wie gesagt ich habe alles neu verkabelt!!