Şifreli kilit PIC16F628A. PIC16F628A mikrodenetleyici üzerindeki kod kilidi Pic üzerindeki kod kilidi

Elektronik kilitler var farklı şekiller, bu makale başka bir ilginç seçenek sunuyor. Bu tasarımın farkı klavyenin mikrodenetleyicinin yalnızca bir pinini kullanmasıdır. Hangi düğmeye basıldığını belirlemek için bir ADC kullanılır. Bu yöntem yalnızca yerleşik ADC'ye sahip mikrodenetleyiciler ile kullanılabilir; bu devrede PIC12F675 kullanılmıştır.

Nasıl çalışır

4 düğmeye belirli bir sırayla bastığınızda röle yaklaşık 5 saniye boyunca kilit devresini kapatacaktır. Ancak kodu şu şekilde programlamanız gerekir: LED yanana kadar KOD düğmesini basılı tutun. LED yandığında kodunuzu girin. Dördüncü rakamı girdikten sonra eeproma kod yazılacak ve sadece bu kod kullanılarak rölenin açılması mümkün olacaktır. Kodu girerken 10 kez hata yaparsanız alarmdan sorumlu ikinci röle açılacaktır.


ADC kullanarak düğme tanıma

Diyagramdan görülebileceği gibi klavye bir dizi düğme ve dirençten oluşur. Klavye yalnızca üç kabloyla bağlanır: +5V, toprak ve denetleyicinin pin 7'sine bağlı bir sinyal kablosu. Dirençler seri olarak bağlanır ve her bağlantı noktasının kendi voltajı vardır. Bir butona bastığımızda mikrodenetleyicinin 7 numaralı pinine belirli bir voltaj uyguluyoruz. Pin 7 bir giriş olarak yapılandırılmıştır ve kontrol cihazının ADC modülüne bağlanmıştır. PIC12F675 10 bitlik bir ADC’ye sahiptir ve değer aralığı 0 ile 1023 arasında değişmektedir. Yani 12 butonumuz varsa aralarındaki aralık 85 birimdir. "0" düğmesi 0-85, "1" düğmesi 86-170, "2" düğmesi 171-256... vb. aralığındadır.

Çeşitli amatör radyo literatüründe elektronik şifreli kilitler için birçok seçenek bulabilirsiniz.

Bir mikro denetleyici üzerindeki bu şifreli kilit devresinin bir özelliği, temelde yeni yöntem PIC12F675 mikrodenetleyicinin yalnızca bir bağlantı noktasını kullanarak tuş vuruşlarını okuma. Bu özellik yalnızca PIC12F675 mikro denetleyicimiz gibi analogdan dijitale dönüştürücü (ADC) modülü içeren mikro denetleyicilerle uygulanabilir.

Bu mikrodenetleyici, 0 ila 1023 dönüşüm aralığına sahip 10 bitlik bir ADC ile donatılmıştır. Yöntemin özü, klavyenin aslında R1-R12 dirençleri üzerindeki bir voltaj bölücü olmasıdır ve belirli bir klavye düğmesine bastığınızda, mikrodenetleyicinin 7 girişine, değeri yalnızca bu düğme için karakteristik olan bir voltaj sağlanır.

PIC12F675'te şifreli kilidin çalışması

4 haneli gizli kodu kaydetmek için öncelikle “KOD” butonuna basmanız ve LED yanana kadar basılı tutmanız gerekmektedir. Daha sonra gizli kodun 4 hanesini tek tek çevirmeniz gerekiyor. Girişin tamamlanmasının ardından, bu kod Mikrodenetleyicinin kalıcı belleğine yazılacaktır.

Şimdi bu kodu klavyeye yazarsanız röle 5 saniye boyunca açılacaktır. Gizli kod on kez yanlış girilirse bir alarm çalacaktır.

Yetkisiz kişilerin değerli bilgilere erişimini sınırlamaya yardımcı olacaktır şifreli kilit. Bu makalede, bir mikrodenetleyici üzerinde şifreli kilit uygulama seçeneklerinden biri verilmiştir.

Aşağıdaki şekil şifreli kilidin şemasını göstermektedir. Devrenin çekirdeği PIC16F628A mikrodenetleyicisidir. Temel komutları yürütmeye yönelik algoritma Şekil 2'de gösterilmektedir. Program kodu montaj dilinde yazılmıştır, bkz. CL\16F628ATEMP.ASM listesi. Cihaz tek tuşla kontrol edilmektedir. Düğmeye basıldığında cihazın çalışma modlarında sıralı bir değişiklik sağlanır. Düğmeye basma sesi bir piezo ses yayıcı tarafından sağlanır. Bilgileri görsel olarak görüntülemek için yerleşik denetleyiciye sahip bir ekran kullanılır.

PIC16F628A mikrodenetleyicisinin devre içi programlama ve hata ayıklama döngüsünün tamamı (entegre geliştirme ortamı), MPASM v5.22 derleyicisi (MPLAB IDE v8.15'te bulunur) ve MPLAB ICD 2 (devre içi hata ayıklayıcı - " kullanılarak gerçekleştirildi. Hata ayıklayıcı"). Yukarıda listelenen araçlara sahip olmayan ancak HEX dosyalarıyla çalışmak için kendi programı ve başka bir programcı olanlar için, ilgili projede 16F628ATEMP.HEX dosyasını bulabilirsiniz. Mikrodenetleyicinin teknik özellikleri web sitesinde bulunabilir.

Mikrodenetleyici DD1, bilgi girişi ve çıkışı için kullanılan RA0, RB0 – RB7, CCP1 fonksiyonel pinlerine sahiptir. Mikrodenetleyici DD1'in zorunlu sıfırlama işlevi yoktur; sıfırlama pimi, direnç R1 aracılığıyla pozitif besleme potansiyeline bağlanır. Saat frekansını oluşturmak için çip üzerinde bir RC osilatörü kullanılır.

Tact düğmesi SB1, akım sınırlama direnci R3 aracılığıyla RA0 pinine bağlanır. Depresif pozisyonda saat düğmesi SB1 direnci R7, düşük bir mantık seviyesini simüle eder. Mikrodenetleyici DD1, SB1 saat düğmesinin üç durumunu tanır:

  1. Basılmadı;
  2. Kısa süreliğine basıldı (1 saniyeden az);
  3. Basılı tutun (1 saniyeden fazla).

Piezo ses yayıcı P1, SB1 saat düğmesinin durumlarını ayırt etmeye yardımcı olur. Yani, durum 1'de ses üretilmez, durum 2'de mikro denetleyici durum 3'ü tanıyana kadar ses üretilir ve durum 3'te ses üretilmez.

HG1 likit kristal ekran bilgileri görüntülemek için kullanılır. Ekranın teknik özelliklerine web sitesinden ulaşılabilir. Karakter oluşturma işlevini uygulayan bir denetleyiciye sahiptir. Her biri on altı karakterden oluşan iki satırı görüntüler. Ekran, mikro denetleyicinin RB0, RB1, RB4 – RB7 pinleri aracılığıyla kontrol edilir. Veriler, RB4 – RB7 pinleri aracılığıyla yarım parçacıklar halinde yüklenir. "Mandal" - RB1. RB0 pinindeki sinyal kaydını seçiyoruz. R5 ve R6 dirençlerini kullanarak HG1 ekranının kontrastını ayarlıyoruz. Ekran arka ışığı, akım sınırlayıcı direnç R4 aracılığıyla güce bağlanır. HG1 ekranı, 3 x 15 mm pirinç ayırıcılar ve 3 x 6 mm vidalarla panele vidalanır.

RB2 üzerinde mantık oluşturarak açma veya kapama işlemini gerçekleştirirler. alan etkili transistör X1 terminal bloğuna bağlı elektrikli kilidi açıp kapatan VT1. Elektrikli kilit şu şekilde tasarlanmalıdır: çalışma gerilimi 9-15 V ve 1 A'dan fazla olmayan bir akım tüketir. Elektrikli kilide voltaj uygulandığında açılmalı, voltaj yoksa bloke edilecektir (kapanacaktır).

Çalışma sesi üretim frekansı 4 kHz olan bir piezo ses yayıcı P1, akım sınırlama direnci R2 aracılığıyla CCP1 pinine (PWM donanım uygulaması, frekans 4 kHz, görev döngüsü 2) bağlanır.

Cihaz, X2 konektörüne bağlı alternatif veya doğrudan voltaj kaynağından güç alır. Güç kaynağının nominal voltajı 9 - 15 V'dir. Güç kaynağının nominal akımı 1 A'dır. Güç kaynağını dengelemek için geleneksel bir devre kullanılır: bir diyot köprüsü VD1, bir doğrusal stabilizatör DA1, filtre kapasitörleri C1 - C4.

Cihaz –20 °C ile +70 °C arasındaki sıcaklık aralığında çalıştırılabilir.
Mikrodenetleyici on bir çalışma durumuna sahip olacak şekilde programlanmıştır.

  1. Cihaz açıldığında, kilit durumu ve kod verilerinin indirildiği kalıcı EEPROM veri belleği okunur. Cihaz, okuma kilidi durum kaydına göre elektrikli kilidi açar veya kapatır. Cihaz, kodlama istatistiklerini görüntüleyeceği bir duruma geçer; 2.
  2. Bu durumda cihazda “Stat. İstatistik." ve alt satırda kodlama istatistiklerini, yani kodlama sayısı ve kod çözme sayısını* görüntüler. İncelik düğmesine kısa veya basılı basıldıktan sonra, kilidin durumu hakkında kayıt tarafından yönlendirilen cihaz, kilit açıksa kodlama durumuna geçer, yani. 3 ve kilit kapalıysa kod çözme durumuna geçer; 4.
  3. Cihaz şu yazıyı gösteriyor: Kod Kodu" ve kodun girildiği duruma ("Kod Girişi" alt programı), yani 5. Kodlama sayısı sayacı artırılır. Cihaz, kilidin durumunu değiştirdiği, kapattığı bir duruma girer, yani. 9.
  4. Cihaz, ekranın üst satırında "D.code Kodunu Çöz" yazısını görüntüler ve kodun girildiği duruma ("Kod Girişi" alt programı), yani. 5. Kod çözme numarası sayacı artırılır. Cihaz, girilen kodu kalıcı EEPROM belleğinde saklanan kodla karşılaştırır. Kod eşleşirse, cihaz kilidin durumunu değiştirip kilidi açacak duruma geçer, yani. 10 ve eğer kod eşleşmiyorsa, hata bilgisini görüntüleyecek duruma geçer; on bir.
  5. Dört haneli kodun ilk hanesi ekranın alt satırında köşeli parantez içinde vurgulanır. Saat düğmesine kısaca basıldığında girilen rakamın** kaydı artırılır. Tact butonu 1 saniyeden uzun süre basılı tutulursa cihaz, kodun ikinci basamağının seçildiği duruma geçer; 6.
  6. Dört haneli kodun ikinci hanesi ekranın alt satırında köşeli parantez içinde vurgulanır. Saat düğmesine kısaca basıldığında girilen rakamın** kaydı artırılır. Tact butonu 1 saniyeden uzun süre basılı tutulursa cihaz, kodun üçüncü basamağının seçildiği duruma geçer; 7.
  7. Dört haneli kodun üçüncü hanesi ekranın alt satırında köşeli parantez içinde vurgulanır. Saat düğmesine kısaca basıldığında girilen rakamın** kaydı artırılır. Tact butonu 1 saniyeden uzun süre basılı tutulursa cihaz kodun dördüncü basamağının seçildiği duruma geçer, yani. 8.
  8. Dört haneli kodun dördüncü hanesi ekranın alt satırında köşeli parantez içinde vurgulanır. Saat düğmesine kısaca basıldığında girilen rakamın** kaydı artırılır. Taktik düğmesi 1 saniyeden uzun süre basılı tutulursa cihaz, "Kodu Girin" alt programının talep edildiği duruma geçer; 3 veya 4.
  9. Cihaz kilidi kapatır ve kilit durumunu ve kodunu kaydeder. Üst satırda “Kaydet Kaydet” yazısı görüntülenir. ve alt satırda dört haneli bir kod var. Daha sonra cihaz, kodlama istatistiklerini görüntüleyeceği bir duruma geçer; 2.
  10. Cihaz kilidi açar ve kilit durumunu ve kodunu kaydeder. Üst satırda “Kaydet Kaydet” yazısı görüntülenir. ve alt satırda dört haneli bir kod var. Daha sonra cihaz, kodlama istatistiklerini görüntüleyeceği bir duruma geçer; 2.
  11. Üst satırda şu yazı görüntülenir: Hata Hatası" ve alt satırda dört haneli bir kod var. (Fotoğraf 4) İncelik düğmesine kısa veya uzun basıldıktan sonra cihaz, kodlama istatistiklerini görüntüleyecek duruma geçer; 2.

*Sayaç taştıktan sonra (65535'ten fazla), sıfırlanır ve sayma yeniden başlar, bu da istatistiklerde bir hataya yol açar, yani kodlama sayısı, kod çözme sayısından daha fazla olabilir. Bu nedenle sayaçların sıfırlanması için cihazın enerjisinin kesilmesi tavsiye edilir.

**9 rakamı artırıldığında sıfırlanır.

Elbette, mikrodenetleyicinin EEPROM belleğinin devre içi okumaya karşı korunmasına rağmen (konfigürasyonda ayarlanmıştır), MPLAB ICD'yi kullanarak devre içi şifreyi okumak ve bulmak mümkün olmayacaktır ve bu nedenle açmak mümkün olmayacaktır. elektrikli kilit. Açmanın daha basit bir yolu var - elektrikli kilide doğrudan voltaj uygulamak. “Kodlu kilit” cihazının ve elektrikli kilidin yetkisiz kişilerin girişine karşı güvenilir bir şekilde korunması gerektiği sonucuna varıyorum. İÇİNDE serbest erişim bir düğme ve bir ekran bulunmalıdır.

Cihazın enerjisinin kesilebileceğini ancak kilit durumu ve kodun, kod girildikten sonra hala kalıcı EEPROM belleğinde saklandığını belirtmekte fayda var. Kod kalıcı EEPROM hafızasında saklanırken cihazın enerjisinin kesilmesi yasaktır.

Cihazın çalışmasında önemli bir ayrıntıya dikkat etmekte fayda var. Cihaz açıldığında, elektrikli kilidin kapalı durumunun kalıcı EEPROM hafızasında saklanmasına rağmen, elektrikli kilidi kısa süreliğine (1 saniyeden daha kısa bir süre için) açabilir. MPLAB IDE'de program kodunun yürütülmesini simüle ederken ben bu hata kimliği belirlenemedi. Kodun kalıcı EEPROM hafızasına kaydedilmesi sırasında beklenmedik bir şekilde cihazın enerjisi kesilirse, kod yanlış kaydedilebilir ve geri yüklenemeyebilir, bu durum mikrodenetleyicinin yeniden programlanmasına yol açacaktır. Bu nedenle, cihaza istikrarlı ve (veya) yedek güç kaynağı ihtiyacı hakkında öneri. GB1 – yedek güç kaynağı.

Üretim için dosyalar baskılı devre kartı klasöre bakın.

İÇİNDE bu cihaz Aşağıdaki parçalar değiştirilebilir. DIP18 paketinde 20 MHz çalışma saat frekansına sahip PIC16F628A-I/P-xxx serisinden mikrodenetleyici DD1. HG1 ekran WH1602x serilerinden herhangi birine uyacaktır. Gerilim dengeleyici DA1 yerli KR142EN5A (5 V, 1,5 A). Alan MOSFET transistörü Bir I-Pak paketindeki (TO-251AA) VT1 (N-kanalı), şemada belirtilen nominal değerin bir analogu uygundur. 4 kHz çalışma sesi oluşturma frekansına sahip Piezo ses yayıcı P1. VD1 diyot köprüsü 2Wxx serisinin herhangi birinden kullanılabilir. Güç konektörü X2, d=2,1 mm merkezi kontağı ile şemada gösterilene benzer. Nominal değeri 0,01 – 0,47 µF x 50 V olan polar olmayan kapasitörler C1 ve C2. Elektrolitik kapasitörler C3 ve C4 aynı kapasitif değere sahiptir ve voltaj şemada gösterilenden düşük değildir.

Radyo elemanlarının listesi

Tanım Tip Mezhep Miktar NotMağazanot defterim
GG1 MK PIC 8 bit

PIC16F628A

1 Not defterine
DA1 Doğrusal regülatör

L7805AB

1 Not defterine
VT1 MOSFET transistörü

IRLU024N

1 Not defterine
VD1 Diyot köprüsü

2W10

1 Not defterine
VD2 Doğrultucu diyot

1N5403

1 Not defterine
C1, C2 Kapasitör0,1 uF2 Not defterine
C3 470 uF 25 V1 Not defterine
C4 Elektrolitik kondansatör100 uF 10 V1 Not defterine
R1, R6 Direnç

10 kOhm

2 Not defterine
R2 Direnç

240Ohm

1 Not defterine
R3 Direnç

470Ohm

1 Not defterine
R4 Direnç

Cihaz, binaları, dolapları ve kasaları izinsiz açılmaya karşı korumak için tasarlanmıştır.

Tüm ayarlar ve kodlar mikro denetleyicinin kalıcı belleğinde saklanır.

Bu basit şema birçok radyo amatörünün yetenekleri dahilindedir.

Ve iyi düşünülmüş bir çalışma algoritması size bu devreyi kullanma zevkini verecektir.

Cihaz bir mikrodenetleyiciye dayanmaktadır PIC16F628A(Şekil 1'deki şemada DD1).

Güç uygulandıktan sonra, mikro denetleyici programı bağlantı noktalarını yapılandırır ve ayrıca referans voltaj kaynağını, PSI/karşılaştırma yakalama modülünü, zamanlayıcıları, karşılaştırıcıları ve donanım USART'ı kapatır - kilidin çalışması için bu modüllere gerek yoktur. Daha sonra klavye yoklaması başlar. İki bölümden oluşur. İlk düğmeler - SB3-SB14 - korunan nesnenin dışında bulunur. İkinci düğmeler - SB1, SB2 ve anahtar SA1 - iç mekanda bulunur. Klavyenin ilk kısmındaki SB3-SB 13 düğmeleri bir matris halinde birleştirilmiştir. SB 14 düğmesi matrise dahil değildir; programda herhangi bir arıza olması durumunda ve aşağıda tartışılacak olan diğer bazı durumlarda mikro denetleyicinin yeniden başlatılması amaçlanmaktadır.

SB1 "Aç" butonu iç mekanda kapının yakınına monte edilmiştir. Bastığınızda şifre girmeden kapıyı içeriden açabilirsiniz. SB2 - programı yeniden başlatma düğmesi; SB2 ve SB I düğmeleri paralel olarak bağlanır. Matris düğmelerine şu adlar atanmıştır: SB3 - “1”, SB4 - “4”, SB5 - “7”, SB6 - “Açık”. SB7 - "2", SB8 - "5", SB9 - "8", SB10 - "O", SB11 - "3", SB12 - "6". SB13 - "9". Kilit kapatma modunu seçmek için SAI geçiş anahtarını kullanın. Kod, sayı düğmelerine dönüşümlü olarak kısaca basılarak girilir. Basıncı onaylamak için piezo yayıcı HA1'den kısa bir ton sinyali duyulacaktır. transistör VT2 tarafından kontrol edilir.

Kapıyı açmadan önce, bitişik basışlar arasında 3 saniyeyi geçmeyecek duraklamalarla dört haneli bir kod girin. ve ardından 3 saniye içinde SB6 düğmesine kısaca basmanız gerekir. 2 saniye sonra, DD1 mikro denetleyicisinin RAO çıkışı yüksek bir seviyeye ayarlanacak, transistör VT1 açılacak ve kilit cıvatasını sıkıştırarak hareket ettirecek elektromıknatıs! çalışacak. Bahar gelecek ve kapı açılacak.

Bitişik basışlar arasındaki duraklama 3 saniyeyi aşarsa, azalan frekansta bir sinyal sesi duyulacaktır. Bu, programın yeniden çalışmaya başladığı ve kodun yeniden girilmesi gerektiği anlamına gelir. Diyot VD1, transistör VT1'i elektromıknatıs sargısı Y1'in kendi kendine indüksiyon voltajındaki bir dalgalanmadan korumak için tasarlanmıştır. Elektromıknatıs tetiklenmeden önce, sayısal tuşlara basıldığındakiyle aynı frekansta ancak daha uzun süreli bir sinyal duyulacak ve bu, kapının açıldığını işaret edecektir.

SA1 anahtarının kontakları açık olduğunda, elektromıknatıs kilidi kapatacaktır. kesin zaman(varsayılan - 12 sn). Bu süre mikrodenetleyici programlanırken ayarlanır. Denetleyiciye yüklenmesi gereken programda, EEPROM ile çalışma alanında, 0x06 adresli hücreye (arka arkaya yedinci), 0x01'den OxFF'ye 1 oranında bir sayı girmeniz gerekir. birim = 2,5 sn. Mümkün olan minimum duraklama 2,5 saniye, maksimum 10 dakikadır.

SA1 anahtarının kontakları kapalıysa, yani mikro denetleyici DD1'in RA4 girişi düşük bir seviyeye ayarlanmışsa, SB 14 düğmesine veya SB2'ye basıldıktan sonra kilit kapatılır. Transistör VT1 kapandıktan sonra elektromıknatısın enerjisi kesilecek ve kilit yayı cıvatayı geri itecek - kapı tekrar kilitlenecektir.

Kapıyı odanın içinden açmak için SB1 düğmesine basın ve 2 saniye süren bir ton sinyaliyle gösterilen elektromıknatıs etkinleştirilene kadar basılı tutun. Kapıyı istediğiniz zaman içeriden açabilirsiniz. Kapı açılmazsa SB2 tuşuna basmanız (programı yeniden başlatmanız) ve SB 1 tuşuna tekrar basmanız gerekir.

Kodu değiştirmek gerektiğinde, kapıyı açarken olduğu gibi önce eski kodu girin, ardından SB6 düğmesine kısa süre basmayın, üç ses duyulana kadar basılı tutun. Daha sonra hemen SB6 düğmesini bırakmalı, dört haneli yeni kodu girmeli ve girişi onaylamak için hemen SB6 düğmesine tekrar basmalısınız. Daha sonra, yeni kodun kabul edildiğini bildiren artan frekansta bir sinyal duyulacaktır. DD1 mikro denetleyicisinin kalıcı belleğinin ilk dört hücresinde saklanır.

Cihaz bir kilitleme sistemi ile donatılmıştır. Her yanlış kod girildiğinde kilit 1000 Hz'de iki ve 500 Hz'de bir bip sesi çıkaracaktır. Kontrolör, çalışan kayıtlarda yanlış kod varken SB6 düğmesine basmayı ve kodun beş hanesini girmeyi hata olarak değerlendirir. Art arda üç hatadan sonra, mikrodenetleyici DD1, RA2 çıkışını yüksek bir seviyeye ayarlayacaktır. Bu, alarm cihazını açacak olan transistör VT3'ü açacaktır. Bu cihaz bir siren veya telefon çevirici olabilir.

Aynı zamanda, klavye paneline takılı HL1 LED'i yanacak ve bu, klavye sorgulamanın (SA1 geçiş anahtarı ve SB1, SB2, SB14 düğmeleri hariç) devre dışı bırakıldığını gösterecektir. Bunu, alarm cihazının çalıştığı ve HL1 LED'inin yandığı on dakikalık bir duraklama takip eder. Bu süre zarfında kilit yalnızca içeriden açılabilir. SB 14 ve SB2 düğmelerine (mikrokontrolör programı yeniden başlatma düğmeleri) basarsanız, on dakikalık geri sayım yeniden başlayacaktır. Duraklatmadan sonra kontrolör, kodu girmek için yalnızca bir fırsat sağlayacak ve eğer yanlışsa, alarm cihazının etkinleştirilmesiyle on dakikalık duraklama tekrar tekrarlanacaktır. Ve bu, doğru kod girilene kadar devam edecektir. Kodun her doğru girilmesinde hata sayacı sıfırlanır.

Cihaz kaynağına güç verir doğru akım voltaj 10...15 V. 220 V şebekede elektrik kesintisi olması durumunda kilit aküden çalışmaya devam eder. Böyle bir güç kaynağının en basit versiyonunun şeması Şekil 2'de gösterilmektedir. 2.

Transformatör T1, şebeke voltajını 220 V'tan 15...20 V'a düşürür. Maksimum akım ikincil sargı transformatör 1,5 A'dan az olmamalıdır. DA1 - ayarlanabilir voltaj dengeleyici. Yapı direnci R2'nin direncini değiştirerek, DA1 dengeleyicisinin çıkışında, şarj edilmiş pil GB1'in şarj akımının 100...200 μA'yı aşmadığı bir voltaj ayarlanır. Ayrıca yüksek akım tüketimi sırasında Y1 elektromıknatısı tetiklendiğinde akımın büyük kısmı akümülatör pili DA1 dengeleyiciyi aşırı yüklememenizi sağlar. VD5 diyotu, girişinde voltaj eksikliği durumunda DA1 dengeleyiciyi korumak için tasarlanmıştır.

Akü 300...600 mA (kapasite - 7 Ah) akım sağlamalıdır. Stabilizatör DA1, 30...40 cm2 alana sahip bir soğutucu üzerine kurulmalıdır.

Klavye ayrı düğmelerden yapılabilir. Örneğin DIPTRONICS DSMW-66N uygundur. Ancak tuşlu bir telefondan veya hesap makinesinden hazır bir klavyeyi de kullanabilirsiniz. Kural olarak, böyle bir klavyeyi, düğmeleri uygun bir matriste birleştirerek bir cihaza kolayca bağlayabilirsiniz. HL1 LED'ini klavye paneli üzerine yerleştirmek de gereklidir.

Piezo emitör ZP serilerinden herhangi biri için uygundur. Elektromıknatıs Y1, teyp kayıt cihazının teyp tahrik mekanizmasından kullanılır, ancak herhangi biri uygundur, uygun boyuttadır ve maksimum sarma akımı 1,3 A'dan fazla değildir. Elektromıknatısın tükettiği akım 1 A'den fazla ise, daha sonra transistör VT1, 30.. .40 cm2 alana sahip bir soğutucu üzerine kurulmalıdır.

Firmware ile arşivle

Şifreli kilit, değerli eşyaların bulunduğu tesislere yetkisiz erişimi kısıtlamaya yardımcı olacaktır. Bu makalede PIC16F628A mikrodenetleyicisine şifreli kilit uygulama seçeneklerinden biri verilmiştir.

Aşağıdaki şekil şifreli kilidin şemasını göstermektedir. Devrenin çekirdeği PIC16F628A mikrodenetleyicisidir. Temel komutları çalıştırma algoritması Şekil 2'de gösterilmektedir. Program kodu montaj dilinde yazılmıştır, proje arşivinin CL\16F628ATEMP.ASM klasöründeki listeye bakın. Cihaz tek tuşla kontrol edilmektedir. Düğmeye basıldığında cihazın çalışma modlarında sıralı bir değişiklik sağlanır. Düğmeye basma sesi bir piezo ses yayıcı tarafından sağlanır. Bilgileri görsel olarak görüntülemek için yerleşik denetleyiciye sahip bir ekran kullanılır.

PIC16F628A mikro denetleyicisinin devre içi programlama ve hata ayıklamasının tam döngüsü, MPLAB IDE v8.15 (entegre geliştirme ortamı), MPASM v5.22 derleyicisi (MPLAB IDE v8.15'e dahil) ve MPLAB ICD 2 (in-) kullanılarak gerçekleştirildi. devre hata ayıklayıcı). Yukarıda listelenen araçlara sahip olmayan ancak HEX dosyalarıyla çalışmak için kendi programı ve başka bir programcı olanlar için, ilgili projede 16F628ATEMP.HEX dosyasını bulabilirsiniz.

Mikrodenetleyici DD1, bilgi girişi ve çıkışı için kullanılan RA0, RB0 – RB7, CCP1 fonksiyonel pinlerine sahiptir. Mikrodenetleyici DD1'in zorunlu sıfırlama işlevi yoktur; sıfırlama pimi, direnç R1 aracılığıyla pozitif besleme potansiyeline bağlanır. Saat frekansını oluşturmak için çip üzerinde bir RC osilatörü kullanılır.

Tact düğmesi SB1, akım sınırlama direnci R3 aracılığıyla RA0 pinine bağlanır. SB1 saat düğmesinin serbest konumunda, direnç R7 düşük bir mantık seviyesini simüle eder. Mikrodenetleyici DD1, SB1 saat düğmesinin üç durumunu tanır:

  1. Basılmadı;
  2. Kısa süreliğine basıldı (1 saniyeden az);
  3. Basılı tutun (1 saniyeden fazla).

Piezo ses yayıcı P1, SB1 saat düğmesinin durumlarını ayırt etmeye yardımcı olur. Yani, durum 1'de ses üretilmez, durum 2'de mikro denetleyici durum 3'ü tanıyana kadar ses üretilir ve durum 3'te ses üretilmez.

HG1 likit kristal ekran bilgileri görüntülemek için kullanılır. Ekranın teknik özelliklerine web sitesinden ulaşılabilir. Karakter oluşturma işlevini uygulayan bir denetleyiciye sahiptir. Her biri on altı karakterden oluşan iki satırı görüntüler. Ekran, mikro denetleyicinin RB0, RB1, RB4 – RB7 pinleri aracılığıyla kontrol edilir. Veriler, RB4 – RB7 pinleri aracılığıyla yarım parçacıklar halinde yüklenir. "Mandal" - RB1. RB0 pinindeki sinyal kaydını seçiyoruz. R5 ve R6 dirençlerini kullanarak HG1 ekranının kontrastını ayarlıyoruz. Ekran arka ışığı, akım sınırlayıcı direnç R4 aracılığıyla güce bağlanır. HG1 ekranı, 3 x 15 mm pirinç ayırıcılar ve 3 x 6 mm vidalarla panele vidalanır.

RB2 üzerinde mantık oluşturarak X1 terminal bloğuna bağlı elektrikli kilidi açıp kapatan alan etkili transistör VT1'in açılıp kapanmasını sağlarlar. Elektrikli kilit, 9-15 V çalışma voltajına göre tasarlanmalı ve 1 A'dan fazla akım tüketmemelidir. Elektrikli kilide voltaj uygulandığında, voltaj yoksa açılmalıdır; ).

Çalışma sesi üretim frekansı 4 kHz olan bir piezo ses yayıcı P1, akım sınırlama direnci R2 aracılığıyla CCP1 pinine (PWM donanım uygulaması, frekans 4 kHz, görev döngüsü 2) bağlanır.

Cihaz, X2 konektörüne bağlı alternatif veya doğrudan voltaj kaynağından güç alır. Güç kaynağının nominal voltajı 9 - 15 V'dir. Güç kaynağının nominal akımı 1 A'dır. Güç kaynağını dengelemek için geleneksel bir devre kullanılır: bir diyot köprüsü VD1, bir doğrusal stabilizatör DA1, filtre kapasitörleri C1 - C4.

Cihaz –20 °C ile +70 °C arasındaki sıcaklık aralığında çalıştırılabilir.
Mikrodenetleyici on bir çalışma durumuna sahip olacak şekilde programlanmıştır.

  1. Cihaz açıldığında, kilit durumu ve kod verilerinin indirildiği kalıcı EEPROM veri belleği okunur. Cihaz, okuma kilidi durum kaydına göre elektrikli kilidi açar veya kapatır. Cihaz, kodlama istatistiklerini görüntüleyeceği bir duruma geçer; 2.
  2. Bu durumda cihazda “Stat. İstatistik." ve alt satırda kodlama istatistiklerini, yani kodlama sayısı ve kod çözme sayısını* görüntüler. İncelik düğmesine kısa veya basılı basıldıktan sonra, kilidin durumu hakkında kayıt tarafından yönlendirilen cihaz, kilit açıksa kodlama durumuna geçer, yani. 3 ve kilit kapalıysa kod çözme durumuna geçer; 4.
  3. Cihaz, ekranın üst satırında “Kod Kodu” yazısını görüntüler ve kodun girildiği duruma (“Kod Girişi” alt programı), yani. 5. Kodlama sayısı sayacı artırılır. Cihaz, kilidin durumunu değiştirdiği, kapattığı bir duruma girer, yani. 9.
  4. Cihaz, ekranın üst satırında "D.code Kodunu Çöz" yazısını görüntüler ve kodun girildiği duruma ("Kod Girişi" alt programı), yani. 5. Kod çözme numarası sayacı artırılır. Cihaz, girilen kodu kalıcı EEPROM belleğinde saklanan kodla karşılaştırır. Kod eşleşirse, cihaz kilidin durumunu değiştirip kilidi açacak duruma geçer, yani. 10 ve eğer kod eşleşmiyorsa, hata bilgisini görüntüleyecek duruma geçer; on bir.
  5. Dört haneli kodun ilk hanesi ekranın alt satırında köşeli parantez içinde vurgulanır. Saat düğmesine kısaca basıldığında girilen rakamın** kaydı artırılır. Tact butonu 1 saniyeden uzun süre basılı tutulursa cihaz, kodun ikinci basamağının seçildiği duruma geçer; 6.
  6. Dört haneli kodun ikinci hanesi ekranın alt satırında köşeli parantez içinde vurgulanır. Saat düğmesine kısaca basıldığında girilen rakamın** kaydı artırılır. Tact butonu 1 saniyeden uzun süre basılı tutulursa cihaz, kodun üçüncü basamağının seçildiği duruma geçer; 7.
  7. Dört haneli kodun üçüncü hanesi ekranın alt satırında köşeli parantez içinde vurgulanır. Saat düğmesine kısaca basıldığında girilen rakamın** kaydı artırılır. Tact butonu 1 saniyeden uzun süre basılı tutulursa cihaz kodun dördüncü basamağının seçildiği duruma geçer, yani. 8.
  8. Dört haneli kodun dördüncü hanesi ekranın alt satırında köşeli parantez içinde vurgulanır. Saat düğmesine kısaca basıldığında girilen rakamın** kaydı artırılır. Taktik düğmesi 1 saniyeden uzun süre basılı tutulursa cihaz, "Kodu Girin" alt programının talep edildiği duruma geçer; 3 veya 4.
  9. Cihaz kilidi kapatır ve kilit durumunu ve kodunu kaydeder. Üst satırda “Kaydet Kaydet” yazısı görüntülenir. ve alt satırda dört haneli bir kod var. Daha sonra cihaz, kodlama istatistiklerini görüntüleyeceği bir duruma geçer; 2.
  10. Cihaz kilidi açar ve kilit durumunu ve kodunu kaydeder. Üst satırda “Kaydet Kaydet” yazısı görüntülenir. ve alt satırda dört haneli bir kod var. Daha sonra cihaz, kodlama istatistiklerini görüntüleyeceği bir duruma geçer; 2.
  11. Ekranın üst satırında “Hata Hatası”, alt satırında ise dört haneli bir kod görüntülenir. (Fotoğraf 4) İncelik düğmesine kısa veya uzun basıldıktan sonra cihaz, kodlama istatistiklerini görüntüleyecek duruma geçer; 2.

*Sayaç taştıktan sonra (65535'ten fazla), sıfırlanır ve sayma yeniden başlar, bu da istatistiklerde bir hataya yol açar, yani kodlama sayısı, kod çözme sayısından daha fazla olabilir. Bu nedenle sayaçların sıfırlanması için cihazın enerjisinin kesilmesi tavsiye edilir.

**9 rakamı artırıldığında sıfırlanır.

Mikrodenetleyicinin EEPROM belleği devre içi okumaya karşı korunduğundan (konfigürasyonda ayarlanmıştır), devredeki şifreyi okumak ve bulmak mümkün olmayacaktır ve bu nedenle elektrikli kilidi açmak mümkün olmayacaktır. Açmanın daha basit bir yolu var - elektrikli kilide doğrudan voltaj uygulamak. “Kodlu kilit” cihazının ve elektrikli kilidin yetkisiz kişilerin girişine karşı güvenilir bir şekilde korunması gerektiği sonucuna varıyorum. Düğme ve ekrana serbestçe erişilebilmelidir.

Cihazın enerjisinin kesilebileceğini ancak kilit durumu ve kodun, kod girildikten sonra hala kalıcı EEPROM belleğinde saklandığını belirtmekte fayda var. Kodun kalıcı EEPROM hafızasında saklanması sırasında cihazın enerjisinin kesilmesi yasaktır.

Cihazın çalışmasında önemli bir ayrıntıya dikkat etmekte fayda var. Cihaz açıldığında, elektrikli kilidin kapalı durumunun kalıcı EEPROM hafızasında saklanmasına rağmen, elektrikli kilidi kısa süreliğine (1 saniyeden daha kısa bir süre için) açabilir. MPLAB IDE'de program kodunun yürütülmesini simüle ederken bu hatayı tespit etmedim. Kodu EEPROM hafızasına kaydederken beklenmedik bir şekilde cihazın enerjisi kesilirse, kod yanlış kaydedilebilir ve geri getirilmesi mümkün olmayacaktır, bu da mikrodenetleyicinin yeniden programlanmasına yol açacaktır. Bu nedenle, cihaza istikrarlı ve (veya) yedek güç kaynağı ihtiyacı hakkında öneri. GB1 – yedek güç kaynağı.

Baskılı devre kartı oluşturmaya yönelik dosyalar klasörde bulunabilir.

Bu ünitede aşağıdaki parçalar değiştirilebilir. DIP18 paketinde 20 MHz çalışma saat frekansına sahip PIC16F628A-I/P-xxx serisinden mikrodenetleyici DD1. HG1 ekran WH1602x serilerinden herhangi birine uyacaktır. Gerilim dengeleyici DA1 yerli KR142EN5A (5 V, 1,5 A). Bir I-Pak paketindeki (TO-251AA) MOSFET alan etkili transistör VT1 (N-kanalı), şemada belirtilen nominal değerin bir analogu uygundur. 4 kHz çalışma sesi oluşturma frekansına sahip Piezo ses yayıcı P1. VD1 diyot köprüsü 2Wxx serisinin herhangi birinden kullanılabilir. Güç konektörü X2, d=2,1 mm merkezi kontağı ile şemada gösterilene benzer. Nominal değeri 0,01 – 0,47 µF x 50 V olan polar olmayan kapasitörler C1 ve C2. Elektrolitik kapasitörler C3 ve C4 aynı kapasitif değere sahiptir ve voltaj şemada gösterilenden düşük değildir.

Kod kilidi projesiyle arşivi indirin: 16F628Code_Lock.rar