- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 10 von 12

Thema: Arduino Uno + RFID Aktion halten bis zum nächsten Kontakt

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    04.10.2016
    Ort
    Essen
    Alter
    40
    Beiträge
    6
    Vielen lieben dank i_make_it, klappt super.
    Ceos, das habe ich ja versucht:
    Code:
     if (2==LOW) {
      digitalWrite(2, HIGH);
    }
    
    if (2==HIGH) {
      digitalWrite(2, LOW);
    }
    Jetzt hatte ich meinen alten Sketch mit 3 verschiedenen Karten gehabt und 3 verschiedenen LED´s.

    Code:
    #include <SPI.h>
    #include <MFRC522.h>
    #define SS_PIN 10
    #define RST_PIN 9
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    
    void setup()
    {
    Serial.begin(9600);
    SPI.begin();
    mfrc522.PCD_Init();
    pinMode (2, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
    pinMode (3, OUTPUT); // Der Pin 3 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
    pinMode (4, OUTPUT); // Der Pin 3 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
    }
    
    void loop()
    {
    if ( ! mfrc522.PICC_IsNewCardPresent())
    {
    return;
    }
    
    if ( ! mfrc522.PICC_ReadCardSerial())
    {
    return;
    }
    
    long code=0;
    
    for (byte i = 0; i < mfrc522.uid.size; i++)
    {
    code=((code+mfrc522.uid.uidByte[i])*10);
    }
    
    Serial.print("Die Kartennummer lautet:");
    
    Serial.println(code);
    
    // Ab hier erfolgt die erweiterung des Programms.
    
    if (code==1232922) // Wenn der Zahlencode 1232922 lautet...
    
    { // Programmabschniss öffnen
    
    digitalWrite (2, HIGH); // ...dann soll die LED an Pin 2 leuchten...
    
    delay (2000); // für 5 Sekunden
    
    digitalWrite (2, LOW); // … und danach wieder aus gehen.
    
    } // Programmabschnitt schließen
    
    if (code==1232923) // Wenn der Zahlencode 1232923 lautet...
    
    { // Programmabschniss öffnen
    
    digitalWrite (3, HIGH); // ...dann soll die LED an Pin 2 leuchten...
    
    delay (2000); // für 5 Sekunden
    
    digitalWrite (3, LOW); // … und danach wieder aus gehen.
    
    } // Programmabschnitt schließen
    if (code==1232924) // Wenn der Zahlencode 1232924 lautet...
    
    { // Programmabschniss öffnen
    
    digitalWrite (4, HIGH); // ...dann soll die LED an Pin 2 leuchten...
    
    delay (2000); // für 5 Sekunden
    
    digitalWrite (4, LOW); // … und danach wieder aus gehen.
    
    } // Programmabschnitt schließen
    
    } // Sketch abschließen
    Jetzt wollte ich deinen Teil aus dem Sketch kopieren, damit ich wieder alle 3 ansteuern kann mit verschiedenen Karten.
    Code:
    #include <SPI.h>
    #include <MFRC522.h>
    #define SS_PIN 10
    #define RST_PIN 9
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    
    int ledtogglestate = LOW; //Blink LED State
    
    
    void setup()
    {
      Serial.begin(9600);
      SPI.begin();
      mfrc522.PCD_Init();
      pinMode (2, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
      pinMode (3, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
      pinMode (4, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
    
    }
    
    void loop()
    {
      if ( ! mfrc522.PICC_IsNewCardPresent())
      {
        return;
      }
      if ( ! mfrc522.PICC_ReadCardSerial())
      {
        return;
      }
      long code=0;
      for (byte i = 0; i < mfrc522.uid.size; i++)
      {
        code=((code+mfrc522.uid.uidByte[i])*10);
      }
      Serial.print("Die Kartennummer lautet:");
      Serial.println(code);
    // Ab hier erfolgt die erweiterung des Programms.
      if (code==1232922) // Wenn der Zahlencode 1232922 lautet...
      {
        if (ledtogglestate == LOW){
          ledtogglestate = HIGH;
        }else{
          ledtogglestate = LOW;
        }
      }  
      digitalWrite(2, ledtogglestate);
      
    
    // Ab hier erfolgt die erweiterung des Programms.
      if (code==1232923) // Wenn der Zahlencode 1232923 lautet...
      {
        if (ledtogglestate == LOW){
          ledtogglestate = HIGH;
        }else{
          ledtogglestate = LOW;
        }
      delay(500);
      }  
      digitalWrite(3, ledtogglestate);
      
    
      // Ab hier erfolgt die erweiterung des Programms.
      if (code==1232924) // Wenn der Zahlencode 1232924 lautet...
      {
        if (ledtogglestate == LOW){
          ledtogglestate = HIGH;
        }else{
          ledtogglestate = LOW;
        }
      }  
      digitalWrite(4, ledtogglestate);
      delay(500);
      
    } // Sketch abschließen
    Doch dann macht er erst die LED 2 an, dann mit Delay 3, danach mit Delay LED 4.
    Wie kann ich das jetzt einstellen das ich jede LED mit einer anderen Karte ansteuern kann???

    Ich habe übrigens noch ein Delay eingefügt, das ich danna uch Zeit habe die Karte zu entfernen.
    Jedesmal wenn ich die Karte drüber gezogen habe ging die LED an/aus/an/aus bis das ich die Karte entfernt hatte.
    Der Sketch sieht jetzt so aus:
    Code:
    #include <SPI.h>
    #include <MFRC522.h>
    #define SS_PIN 10
    #define RST_PIN 9
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    
    int ledtogglestate = LOW; //Blink LED State
    
    
    void setup()
    {
      Serial.begin(9600);
      SPI.begin();
      mfrc522.PCD_Init();
      pinMode (2, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
      pinMode (3, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
      pinMode (4, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)
    
    }
    
    void loop()
    {
      if ( ! mfrc522.PICC_IsNewCardPresent())
      {
        return;
      }
      if ( ! mfrc522.PICC_ReadCardSerial())
      {
        return;
      }
      long code=0;
      for (byte i = 0; i < mfrc522.uid.size; i++)
      {
        code=((code+mfrc522.uid.uidByte[i])*10);
      }
      Serial.print("Die Kartennummer lautet:");
      Serial.println(code);
    // Ab hier erfolgt die erweiterung des Programms.
      if (code==1232922) // Wenn der Zahlencode 1232922 lautet...
      {
        if (ledtogglestate == LOW){
          ledtogglestate = HIGH;
        }else{
          ledtogglestate = LOW;
        }
      }  
      digitalWrite(2, ledtogglestate);
    delay(1000);  
    } // Sketch abschließen
    MFG

    Black Zero
    Geändert von blackzero23 (04.10.2016 um 13:30 Uhr)

Ähnliche Themen

  1. Mit Taster von einem Loop zum nächsten springen
    Von Bow-Hunter im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 21
    Letzter Beitrag: 29.09.2014, 10:02
  2. Problem beim Lesen von Mifare RFID Tags mit dem Arduino NFC Shield
    Von Jonas15 im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 02.04.2012, 18:58
  3. tastendruck ein, beim nächsten druck wieder aus?
    Von bigeggmc im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 23.03.2006, 12:00
  4. und auf zum nächsten: Spannung messen...
    Von boeseTURBO-CT im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 19.05.2004, 16:26
  5. 32-Bit RISC-Mikrocontroller der nächsten Generation
    Von Frank im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 1
    Letzter Beitrag: 27.03.2004, 13:09

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress