RFİD relay ldr kontrol
  • Merhaba arkadaşlar bir projem hakkında bilgi alacaktım yardımcı olursanız sevinirim
    yapmak istediğim olay şu
    rfid okuyucuya kartı okkuttuğum zaman 1. role açılıp bekleyecek 1 saniye sonra 2. role açılıp o da 3 saniye bekleyip kapanacak tabi 1. rolemiz halen aktif durumda olacak aynı kartı tekrar okuttuğum da ise 1. 3. 4. roleleri kapatıp tekrar kart okuyana kadar bekleyecek kartı okkuttuğum zaman bu döngü devam edecek ek olarak ta kartı okuttuğum zaman ldr sensör aktif hale gelecek gece ise 3. roleyi açacak ardından 1 saniye bekleyip 4. roleyi açacak

    ben bu şekilde bir kod yazdım ama ne ldr çalışıyor ne de diğer fonksiyonlar kartı okutuyorum 1. role açılıyor güzel 2 saniye bekliyor 2. roleyi açıyor ama kartı roleleri kapatmak için tekrar okuttuğum da 2. role yine açılıp kapanıyor


    #include < SPI.h>
    #include < RFID.h>

    #define SS_PIN 10
    #define RST_PIN 9

    #define r1 4 //define switching pin
    #define r2 5
    #define r3 6
    #define r4 7
    RFID rfid(SS_PIN, RST_PIN);
    unsigned char cardRead[4]; // cardRead[x] where x is number of card uid segments.
    int sensorPin = A0; // select the input pin for ldr
    int sensorValue = 0;
    unsigned char master[4] = {32,172,221,25}; // master[x] where x is number of card uid segments. And the brackets: {card uid in dec}. This is where you define your unique card id.
    //unsigned char gaga[4] = {245, 269, 77, 263};

    unsigned char i;
    void allowed();
    void denied();
    void sensor();
    boolean pinState;

    void setup() {

    Serial.begin(9600);
    SPI.begin();
    rfid.init();
    pinMode(r1, OUTPUT);
    pinMode(r2, OUTPUT);
    pinMode(r3, OUTPUT);
    pinMode(r4, OUTPUT);
    digitalWrite(r1, HIGH);
    digitalWrite(r2, HIGH);
    digitalWrite(r3, HIGH);
    digitalWrite(r4, HIGH);
    pinState = digitalRead(r1);
    pinState = digitalRead(r2);
    }

    void loop()
    {
    if (rfid.isCard())
    {
    if (rfid.readCardSerial())
    {
    /* Reading card */
    Serial.println(" ");
    Serial.println("Card found");
    Serial.println("Card UID:");
    for (i = 0; i < 4; i++) /// change the "4" with the number of your uid segments. It is suggested that you check your uid before doing this
    {
    Serial.print(rfid.serNum[i]);
    Serial.print(" ");
    cardRead[i] = rfid.serNum[i];
    }
    Serial.println(); //verification of a card. Checking if card presented matches with the card described above.
    for (i = 0; i < 4; i++) /// change the "4" with the number of your uid segments
    {
    if (cardRead[i] != master[i])
    {
    break;
    }
    }
    if (i == 4) { /// change the "4" with the number of your uid segments
    allowed();
    }
    else {
    denied();
    }
    }
    }
    rfid.halt();
    }
    void sensor()
    {
    sensorValue = analogRead(sensorPin);
    if (r1, !digitalRead(r1))
    {
    if (sensorValue < 700)
    {
    digitalWrite(r2, HIGH);
    delay(1000);
    digitalWrite(r3, HIGH);
    }
    else
    {
    digitalWrite(r3, LOW);
    delay(1000);
    digitalWrite(r2, LOW);
    }
    if (r1, !digitalRead(r1))
    {
    digitalWrite(r3, HIGH);
    delay(1000);
    digitalWrite(r4, HIGH);
    }
    }
    }
    void allowed() //// do something in this loop that you want to do if allowed. In my case - I switch things.
    {
    Serial.println("All good");
    digitalWrite(r1,!digitalRead(r1)); // invert the pin status from previous pin status
    delay(2000);
    digitalWrite(r2, !digitalRead(r2));
    delay(3000);
    digitalWrite(r2, !digitalRead(r2));
    //pinState = !digitalRead(r1);
    //pinState = !digitalRead(r2);
    delay(1000); // always a good idea to make a delay
    }

    void denied() //// do something in this loop that you want to do if denied
    {
    Serial.println("Wrong card");
    delay(1000);
    }

    yardımlarınız için şimdiden teşekkür ediyorum.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook

Tagged

Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.