Elektroda.pl
Elektroda.pl
X
Relpol przekaźniki
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

RFID - kontrola dostępu - zmiana sposobu otwierania drzwi.

18 Wrz 2017 12:03 945 6
  • Poziom 27  
    Witam,
    kolejny problem mam do rozwiązania :)
    Korzystam z gotowca RFID acces Control, który działa tak:
    1. przykładam kartę - zwiera przekaźnik 1 na 3s
    I to w zasadzie tyle, oczywiście jak zła karta to nic się nie dzieje.

    Chciałbym zmodyfikować program by:
    1. przykładam kartę - zwiera przekaźnik 1 na 3s
    2. przykładam kolejny raz kartę - zwiera przekaźnik 2 na 3s
    i dalej pętla, więc kolejne przyłożenie kart znowu zewrze przekaźnik 1.
    Poniżej kod:



    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Relpol przekaźniki
  • Relpol przekaźniki
  • Poziom 27  
    Ok, wszystko działa jak należny poza komendami wysyłanymi na port szeregowy ale to akurat zbędny szczegół :) Podziękowanie poszło, i naszła mnie jeszcze jedna myśl:
    1. jedno przyłożenie karty, odblokowanie rel1 na dany czas +trzeci przekaźnik na stałe do czasu:
    2. drugie przyłożenie karty, odblokowanie rel2 na dany czas +wyłączenie przekaźnika trzeciego (z opóźnieniem wyłączenia 3 przekaźnika dajmy na to na 5min, o ile w ciągu tych 5min będzie można przyłożyć znowu kartę i wywołać znowu pierwsze przyłożenie)
    ?
  • Pomocny post
    Poziom 28  
    Nie umiem arduino i zrobiłem na rejestrach dla UNO z megą 328/328p. Powinno działać. Dla mega wystarczy zmienić nazwy rejestrów w funkcjach startujących i zatrzymujących timer. Obsługa opóźnienia zrealizowana na timerze pierwszym.


    Kod: c
    Zaloguj się, aby zobaczyć kod
  • Poziom 27  
    To już przysiądę na spokojnie w domu i postaram sie rozpracować i dodać do mojego kodu :)
    Dzięki za pomoc, dam znać niebawem :)
    Dodano po 5 [godziny] 4 [minuty]:
    Ok, wszystko wygląda OK poza jednym szkopułem, przekaźnik 1 zapala się dosłownie na ułamek sekundy - czym zwiększyć czas trzymania ?
    Po części to rozwiązałem dodają delay przed timerstop, ale przez to załacza sie przekaźnik 3 chwile po wyłączeniu sie przekaźnika numer 1, może nie potrzebnie uzyłem delay bo jest w kodzie gdzieś funkcja odpowiadająca za to ?

    Code:
    /////////////////////////////////////////  Access Granted    ///////////////////////////////////
    
    void granted ( uint16_t setDelay) {
    if(relay_switch){
      digitalWrite(relay, LOW); // Unlock door!
      delay(setDelay);
      timer_stop();
      digitalWrite(relay3,LOW);
      delay(setDelay); // Hold door lock open for given seconds
      digitalWrite(relay, HIGH); // Relock door
      relay_switch=!relay_switch;
    }
    else{
      digitalWrite(relay2, LOW); // Unlock door!
      timer_start();
      delay(setDelay); // Hold door lock open for given seconds
      digitalWrite(relay2, HIGH); // Relock door
      relay_switch=!relay_switch;
      }
    }   
  • Użytkownik usunął konto