Jste zde

Kódový zámek

K jednoduchému zabezpečovacímu zařízení je vždy potřeba kódový zámek, pomocí kterého přepínáme stavy systému. Pochopitelně je možné jeho mnohem širší použití. Tento článek popisuje jednoduchou konstrukci kódového zámku s využitím mikrokontroléru PIC.

Základní vlastnosti

  • celni panelnapájecí napětí 8 – 25V ss
  • membránová klávesnice 4 x 3 tlačítek
  • proudový odběr do 100mA (při sepnutém relé)
  • implicitní kód: „1111“ # (při prvním zapnutí napájení s nenaprogramovanou EEPROM v mikrokontroléru )
  • změna kódu zadáním: „starý kód“ * “nový kód“ „nový kód“
  • zadání kódu: „kód“ #
  • zámek akceptuje pouze čtyřmístné kódy (se stávajícím firmware)
  • tlačítko „#“ slouží jako klávesa enter
  • tlačítko „*“ slouží pro změnu kódu
  • Kód je uložen v EEPROM mikrokontroléru, je tedy uchován i při výpadku napájení. Pokud zvolíte ochranu kódu při programování, není možné správný kód ze zařízení žádným způsobem vyčíst. Při zapomenutém kódu je jedinou možností smazání a přeprogramování mikrokontroléru.
  • Chybné zadání kódu je indikováno dlouhým tónem piezosirénky a trvalým svitem červené LED po dobu asi 10 sekund. Pokud je kód zadán třikrát po sobě chybně, klávesnice se na dobu 1 minuty zablokuje, bliká červená LED a piezosirénka se ozývá přerušovaným tónem.
  • Zároveň je zadání kódu omezeno časově, vypršení časového limitu mikrokontrolér chápe jako chybně zadaný kód.
  • Jsou li při zadávání nového kódu zadány dva rozdílné nové kódy je ponechán kód starý. Správné uložení nového kódu je indikováno třemi krátkými akustickými signály a zablikáním červené LED.
Schema zapojení
Schema zapojení

Popis zapojení

Jako řidicí prvek je použit mikrokontrolér PIC16F628A nebo starší typ PIC16F84A (viz Osazovací varianty). Jsou k němu připojeny indikační LED, přes tranzistory pak relé a piezosirénka.

Zdroj je řešen jednoduše, předpokládá se připojení stejnosměrného napětí. Na vstupu je jemná přepěťová ochrana v podobě transilu a také pojistka. Dále je zde stabilizátor 7805 v klasickém zapojení.

Výstupním prvkem je relé, které vždy se správně zadaným kódem změní stav. Sepnutý stav je indikován svitem zelené LED. Pokud je relé rozepnuto nesvítí žádná signálka. To je z důvodu, že zařízení bylo původně navrženo pro ovládání malé zabezpečovací ústředny prostřednictvím impedančně vyvážené smyčky a v zastřeženém stavu – relé rozepnuto – byl požadován minimální odběr. Z této aplikace je zde ponechán i rezistor R3 (typicky 1k), který sloužil jako vyvážení smyčky pro zabezpečovací ústřednu. Pokud chcete využít pouze kontakt relé, je možné tento rezistor nahradit propojkou. Tím je na svorkovnici vyveden přímo spínací kontakt relé pro volné použití (při dodržení maximálního spínaného proudu a napětí).

Popis připojení svorkovnice X1

(pohled na desku ze strany součástek, popis zleva doprava)

  1. napájení +Ucc 8 - 25V -
  2. spínač S1 - společný kontakt
  3. spínač S1 - rozpínací kontakt
  4. spínač S1 - spínací kontakt
  5. spínací kontakt relé
  6. zem (zároveň společný kontakt relé)
reseni hardware zamku
Prototyp kódového zámku

Osazovací varianty

Deska plošných spojů je připravena pro použití dvou typů mikrokontrolérů, - PIC16F628A a staršího PIC16F84(A). Pochopitelně doporučuji novější typ PIC16F628A. Rozdíl je v tom, že pokud chcete použít PIC16F84(A) je nutné osazovat krystal a přilehlé kondenzátory. PIC16F628A má vnitřní oscilátor – pro tento mikrokontrolér tedy neosazujte krystal Q1 a kondenzátory C4, C5.

deska zamku

Mechanická konstrukce

Zařízení je navrženo do krabičky KP45 s využitím průmyslově vyráběné samolepící membránové klávesnice (viz seznam součástek). Plošný spoj přesně zapadne do distančních výlisku na dně krabičky, někdy je vhodné vybrousit drobné drážky v místech plošného spoje, kde zapadá do výlisku v krabičce. LED diody jsou krátkými kablíky vyvedeny na čelní víko krabičky a zalepeny tak, aby bylo zachováno krytí skříňky (výrobce udává IP 65 po vložení gumového těsnění do drážky víčka, klávesnice má při správném nalepení také krytí IP65). Pro připojení vodičů je třeba vyvrtat otvor ve dně krabičky, případně použít průchodku. Spínač S1 slouží k indikaci otevření krabičky (TAMPER) pro nadřazený systém, např. zabezpečovací ústřednu a jeho kontakty jsou vyvedeny přímo na svorkovnici.

Poznámka: fotografie prototypu se zcela neshodují se zde prezentovaným zařízením, na kterém byly provedeny ještě drobné úpravy.

Osazovací_plán
Osazovací plán

Popis programu

Program pro mikrokontrolér je psán v C a přeložen v překladači HiTech PICC, jehož Lite verzi je možné stáhnout ze stránek výrobce www.htsoft.com . Jelikož jsem dosud pracoval pouze s asemblerem a jedná se o jeden z mých prvních projektů v C, mohou se zkušenému programátorovi zdát některé části programu přinejmenším těžkopádné. Leč, jak ukázaly praktické testy, program se chová stabilně. Program dávám k dispozici „tak jak je“ a můžete si ho stáhnout v sekci downloads. Pokud budete program ve větší míře upravovat nebo přidávat nové funkce, neváhejte ho poslat na moji emailovou adresu, rád ho zde zveřejním pro další zájemce. Program je přeložen pro PIC16F628A, pokud chcete použít PIC16F84(A), je třeba program překompilovat a provést malé úpravy v konfiguračním slově pro tento procesor.

Funkce programu není nijak složitá. Po zapnutí napájení je načten správný kód z EEPROM, pokud jde o první spuštění je uložen kód „1111“. Dále je periodicky je vyvoláváno přerušení od časovače TMR0 a v tomto přerušení je čtena maticová klávesnice. Zadaný kód se porovnává se správným a zároveň je realizováno časové omezení stisku kláves pomocí inkrementace 16bitového registru ve smyčce přerušení TMR0. Podle dalších požadavků (změna kódu, chybný kód ...) jsou volány příslušné funkce.

Konfigurace fuses procesoru je uložena přímo v programu, programátor se tedy nastaví sám. Pro programátory, které nepodporují automatické načtení fuses z hex souboru je třeba před programováním nastavit následující (pro PIC16F628A): __CONFIG(UNPROTECT&UNPROTECT&LVPDIS&BOREN&MCLREN&PWRTEN&WDTDIS&INTIO);

Seznam součástek

R1 10k
R2, R4 220R
R3 1k (volitelně, viz text)
R5, R6 4k7
RN1 odporová síť 4 x 4k7 A
C1, C2, C6 100n
C4, C5 15p (pouze pro PIC16F84(A), viz text)
C3 220uF/25V
D1 BY299
D2 Transil 1,5KE33CA
D3 LED 3mm červená
D4 LED 3mm zelená
D5 1N4148
T1, T2 BC547
IO1 7805
IO2 PIC16F628A (nebo 16F84(A) – viz text)
X1 WAGO255-742 6ks + bočnice 1ks
X2 AW08 (jednořadý sokl pro připojení klávesnice)
K1 RELEMP-05
S1 P-DM03S1PH
F1 MSF2-00,250 (pojistka radialni 250mA)
SP1 KPE242
Q1 4MHz nízký (pouze pro PIC16F84(A) – viz text)
Klávesnice TS 523 3042 , www.ttklavesnice.cz
Jan Půhoný
puhony@ hw.cz

Downloads&Odkazy

  • Program(C) a podklady pro výrobu zařízení(pdf) v archívu zip
  • Domovské stránky autora: www.puhy.eu
Hodnocení článku: