კოდის დაბლოკვა atmega8 სქემაზე. უსაფრთხოების განგაშის წრე AVR მიკროკონტროლერებზე კომბინირებული დაბლოკვით. ჩემი აღნაგობის შესახებ

The მიკროკონტროლერზე კომბინირებული საკეტიაწყობილია საკმაოდ მარტივ AVR ATtiny13 მიკროკონტროლერზე. მისი გამოყენება შესაძლებელია სხვადასხვა სათავსოებზე წვდომის შესაზღუდად, ავტოფარეხის კარებისა და სახლის კარების ჩაკეტვისთვის, აგრეთვე სხვადასხვა მოწყობილობების ჩართვისთვის, რომლებიც შეზღუდვას საჭიროებს.

მოქმედების პრინციპი

მიკროკონტროლერზე საკეტის მოქმედება ეფუძნება სამი ნომრის ალტერნატიულ შეყვანას. თითოეული რიცხვის ზომა შეიძლება იყოს 0-დან 255-მდე. ეს თავის მხრივ ზრდის კომბინირებული საკეტის საიდუმლოების დონეს სხვა საკეტებთან შედარებით, რომლებშიც თითოეულ საიდუმლო რიცხვს აქვს ზომა 0-დან 9-მდე.

თუ ამ სამი რიცხვის შეყვანილი თანმიმდევრობა ემთხვევა სამ რიცხვს, რომლებიც შეყვანილია კომბინირებული საკეტის მიკროკონტროლერის მეხსიერებაში, მაშინ გამომავალზე გამოჩნდება საკონტროლო სიგნალი (log.1) (პინი 3), HL4 LED გამოჩნდება. აანთეთ 15 წამის განმავლობაში, რაც მიუთითებს შეყვანის სისწორესა და ფუნქციონირებაზე, რელე K1 აკონტროლებს საკეტის ამძრავს. 15 წამის შემდეგ, ჟურნალი გამოჩნდება მიკროკონტროლერის მე-4 პინზე. 0 და საკეტი დაუბრუნდება თავდაპირველ ლოდინის მდგომარეობას.

კომბინირებული საკეტის მუშაობას აკონტროლებენ მხოლოდ ორი ღილაკი, რომელსაც ხელმძღვანელობს მხოლოდ LED მითითებით. უფრო მეტიც, საიდუმლო კოდის შეყვანა ხორციელდება მხოლოდ ერთი ღილაკით SB2, რომელიც მდებარეობს საკეტის გარე პანელზე. მეორე ღილაკი SB1 არის პროგრამირებისთვის და ის განთავსებულია თავად დაფაზე.

კოდის დაბლოკვის კონტროლის ნაბიჯები

  • სამი კოდის ნომრის შეყვანა მიკროკონტროლერის არასტაბილურ მეხსიერებაში.

მოდით შევხედოთ ამას კონკრეტული მაგალითით. ვთქვათ, ჩვენ უნდა დავაყენოთ შემდეგი საიდუმლო კოდი: პირველი ციფრი არის 8, მეორე ციფრი არის 12, მესამე ციფრი არის 9. ამისთვის ვაწვდით მოწყობილობას ელექტროენერგიით, შემდეგ ვაჭერთ და ვაჭერთ ორივე ღილაკს (SB1 და SB2). ). ამის შემდეგ გაათავისუფლეთ SB1 ღილაკი და როგორც კი HL1 LED დაიწყებს ციმციმს, გაათავისუფლეთ SB2 ღილაკი. ამ მანიპულაციების შემდეგ, LED HL1 განათდება მუდმივად, ხოლო LED HL2 და HL3 არ აინთება. ეს LED მდგომარეობა მიუთითებს, რომ მოწყობილობა გადავიდა პროგრამირების რეჟიმში.

ახლა, პირველი ნომრის ჩასაწერად, უნდა დავაჭიროთ SB2 ღილაკს და სამივე LED დაიწყებს ციმციმს. თქვენ უნდა დათვალოთ ციმციმები (ჩვენს შემთხვევაში ეს არის 8) და გაათავისუფლოთ ღილაკი. ამის შემდეგ, შეყვანილი ნომრის სისწორის დასადასტურებლად, LED ნათურები ანათებენ ერთსა და იმავე რაოდენობას (8-ჯერ). ესე იგი, პირველი ნომერი ჩაწერილია. შემდეგი, HL2 LED ანათებს, შეგვახსენებს, რომ უნდა ჩავწეროთ მეორე ნომერი.

ჩვენ ვაკეთებთ ზუსტად ისევე, როგორც პირველი ნომრის ჩაწერას: დააჭირეთ და დააჭირეთ ღილაკს SB2 და დათვალეთ LED ციმციმები (ჩვენს მაგალითში ეს არის 12), გაათავისუფლეთ ღილაკი და შეამოწმეთ ჩანაწერის სისწორე განმეორებითი ციმციმების გამოყენებით. შემდეგ HL3 LED ანათებს მესამე ნომრისთვის და იგივე პროცედურას ვიმეორებთ მესამე ნომრისთვის (ნომერი 9).

ამის შემდეგ სამივე ნომერი ჩავწერეთ მიკროკონტროლერის მეხსიერებაში და პროგრამირების რეჟიმიდან გასასვლელად უნდა დააჭიროთ SB1 ღილაკს.

  • აკრიფეთ საიდუმლო კოდი

მოდი ამასაც შევხედოთ მაგალითით. მანამდე ჩვენ ჩავწერეთ საიდუმლო კოდი 8-12-9. შესასვლელად, ჯერ დააჭირეთ ღილაკს SB1 და გაათავისუფლეთ იგი HL1 LED-ის აანთებისთანავე, რითაც ჩვენი საკეტი გადადით კოდის შეყვანის რეჟიმში. HL1 LED-ის სიკაშკაშე მიუთითებს, რომ თქვენ უნდა შეიყვანოთ პირველი ციფრი. რიცხვების შეყვანის პროცედურა მსგავსია პროგრამირების დროს რიცხვების შეყვანის. ანუ SB1 ღილაკზე დაჭერით ვითვლით საჭირო რაოდენობას, რის შემდეგაც ვაშვებთ ღილაკს და აკრიფეთ აკრეფილი ციფრის დადასტურებას LED-ების ციმციმებით. შემდეგ გადავდივართ მეორე და მესამე ციფრებზე.

თუ საიდუმლო კოდის სამივე ციფრი სწორად არის შეყვანილი, რელე იმუშავებს და HL4 LED ჩაირთვება 15 წამის განმავლობაში, HL1, HL2, HL3 LED-ები ანათებენ შუქის რეჟიმში.

ნებადართულია საიდუმლო კოდის შეყვანის სამი მცდელობა. თუ კოდი არასწორად არის შეყვანილი მესამედ, შეყვანის შესაძლებლობა იბლოკება 2,5 წუთის განმავლობაში. ამ დროის გასვლის შემდეგ, საკეტი მზად იქნება კოდის ხელახლა შესაყვანად.

მიკროკონტროლერის დაპროგრამებისას უნდა დააყენოთ შემდეგი საკრავები:

  • CKDIV8=0
  • BODLEVEL0 = 0
  • SPMEN = 0

(1.3 Mb, გადმოწერილი: 1,566)

ორდონიანი უსაფრთხოების სისტემის სქემატური დიაგრამა, რომელიც აგებულია ATMega სერიის AVR მიკროკონტროლერების გამოყენებით. უსაფრთხოების 1 დონე - კომბინირებული საკეტი. უსაფრთხოების მე-2 დონე - დაცვის მოწყობილობა. სისტემაში ჩართული ორი ფუნქციური დაფა ეფუძნება ATmega 8535 მიკროკონტროლერებს.

სტრუქტურული სქემა

მიკროკონტროლერები (AVR, MCS-51 და ა.შ. ოჯახები) თავისი არქიტექტურით, პროგრამული და აპარატურის რესურსებით, როგორიცაა ციფრული კუბები, იდეალურია უსაფრთხოების სხვადასხვა მოწყობილობების, სიგნალიზაციის, კომბინირებული საკეტების და ა.შ.

ბრინჯი. 1. უსაფრთხოების სისტემის ბლოკ-სქემა.

სისტემას (ნახ. 1) აქვს ორი ძირითადი კომპონენტი: კომბინირებული საკეტი A2 და უსაფრთხოების მოწყობილობა A1. უსაფრთხოების მოწყობილობა A1-ს აქვს 24 დამოუკიდებელი შეყვანის ხაზი, რომლებზედაც დაკავშირებულია ლიმიტის გადამრთველები S1...S24. ეს გადამრთველები აკონტროლებენ ფანჯრების სტატუსს 01...05, კარები D1, ლუქები L1, L2.

ზემოაღნიშნული საკონტროლო ობიექტების რაოდენობა შეიძლება განსხვავდებოდეს და უკავშირდება თითოეულ კონკრეტულ შენობას ან დაცულ პერიმეტრს.

გამოყენებული უსაფრთხოების მოწყობილობების რაოდენობა A1 და კომბინირებული საკეტები A2 ასევე არანაირად არ არის შეზღუდული და განისაზღვრება უსაფრთხოების პირობებით, დაცვის ხარისხით, შენობების, შენობების მახასიათებლებით და ა.შ. ცხადია, რომ ლიმიტი გადამრთველები S1... S24-ს შეუძლია აკონტროლოს ის კარები, ლუქებზე წვდომა, რომლებზეც წვდომა შეზღუდულია კოდის საკეტით (ან კომბინირებული საკეტებით) A2. კომბინირებული საკეტის სქემატური დიაგრამა ნაჩვენებია ნახ. 2.

სქემატური დიაგრამა

განვიხილოთ უსაფრთხოების მოწყობილობის მუშაობა. გარე (დისტანციური) ელემენტები მოწყობილობასთან მიმართებაში არის 24 ლიმიტის გადამრთველი (S1...S24), რომელიც საშუალებას გაძლევთ აკონტროლოთ 24 ობიექტის მდგომარეობა (მაგალითად, კარი). ერთი ლიმიტის გადამრთველი აკონტროლებს ერთი კარის სტატუსს. თუ კარი დახურულია, ლიმიტის შეცვლა ღიაა.

მომხმარებელს (ოპერატორს, დისპეჩერს) შეუძლია ვიზუალურად შეამოწმოს კარის სტატუსი ინდიკატორის სტატუსის მიხედვით.

თუ კარი ღიაა, ლიმიტის გადამრთველი დახურულია. ინდიკატორი პერიოდულად ანათებს. თუ კარი დახურულია, ლიმიტის შეცვლა ღიაა. ინდიკატორი არ არის ანთებული (ჩაქრება). ლიმიტი გადამრთველი S1 დამონტაჟდეს No1 კარში. ლიმიტი S2 დამონტაჟდეს No2 კარში და ა.შ.

თუ კარი No1 ღიაა, HL2 ინდიკატორი პერიოდულად ციმციმებს (თუ No1 კარი დაკეტილია, HL2 ინდიკატორი გამორთულია). თუ კარი No2 ღიაა, მაშინ HL3 ინდიკატორი პერიოდულად ციმციმებს (თუ No1 კარი დაკეტილია, HL3 ინდიკატორი გამორთულია) და ა.შ.

ავტორი არ შეჩერდება ლიმიტის გადამრთველის ინსტალაციის რომელიმე კონკრეტულ დიზაინზე, ისევე როგორც თავად მოწყობილობის დიზაინზე. მოწყობილობის მონიტორინგისა და კონტროლის ინტერფეისში შედის: გადამრთველი SA1, SA2, ინდიკატორები HL1...HL25. სტრუქტურულად, მიზანშეწონილია ყველა ზემოთ ჩამოთვლილი ელემენტის განთავსება ცალკე მართვის პანელზე.

ბრინჯი. 2. უსაფრთხოების სისტემის კომბინირებული საკეტის სქემატური დიაგრამა.

მოწყობილობის მართვის ინტერფეისის ელემენტებს აქვთ შემდეგი მიზნები:

  • SA1 (SECURITY) - განგაშის გადამრთველი. როდესაც ეს გადამრთველი დაყენებულია „ON“ პოზიციაზე, მოწყობილობა შეიარაღებულია. მოწყობილობა შეიარაღებულია ~ 10 წამის შემდეგ. იმ მომენტიდან, როდესაც გადამრთველი SA1 დაყენებულია "ON" პოზიციაზე "OFF" პოზიციიდან. შეიარაღების შემდეგ, განგაში ამოქმედდება ~ 10 წამში ნებისმიერი ლიმიტის გადამრთველი S1...SA24 დახურვის მომენტიდან.
  • SA2 - მდუმარე გადამრთველი. ეს გადამრთველი მუშაობს მხოლოდ კარის სტატუსის მონიტორინგის რეჟიმში. გადამრთველი SA1 უნდა იყოს დაყენებული "OFF" პოზიციაზე. როდესაც SA2 გადამრთველს დააყენებთ „ON“ პოზიციაზე, როცა რომელიმე კარს ხსნით პიეზოელექტრული ემიტერი BA1, მაშინვე გამოსცემს ხმოვან სიგნალს, რომელიც გრძელდება ~ 2 წამი. თუ ეს გადამრთველი არის "OFF" პოზიციაზე, მაშინ როდესაც კარი გაიხსნება, მხოლოდ შესაბამისი ინდიკატორი პერიოდულად ანათებს, პიეზოელექტრული ემიტერი BA1 გამორთული იქნება.
  • HL1 - უსაფრთხოების რეჟიმის გააქტიურების მაჩვენებელი. თუ მოწყობილობა "უსაფრთხოების" რეჟიმშია, ეს მაჩვენებელი ჩართულია, თუ "კარის სტატუსის კონტროლი" რეჟიმში, ეს მაჩვენებელი გამორთულია.

განგაში ჩართულია - ეს ნიშნავს: რელე K1 მუდმივად ჩართულია. ამ რელეს 5 და 6 ქინძისთავები, ასევე 2 და 3 დახურულია. პიეზოელექტრული ემიტერი BA1 - ირთვება და გამორთულია ~ 1 წამის პერიოდით. განგაშის გამორთვისთვის გადამრთველი SA1 უნდა იყოს დაყენებული „OFF“ პოზიციაზე.

განვიხილოთ მოწყობილობის მიკროსქემის ძირითადი ფუნქციური კომპონენტები. მოწყობილობის საფუძველია DD1 მიკროკონტროლერი, რომლის მუშაობის სიხშირე დგინდება გენერატორის მიერ გარე რეზონატორით ZQ1 10 MHz.

ბრინჯი. 3. უსაფრთხოების მოწყობილობის სქემატური დიაგრამა მიკროკონტროლერზე.

მიკროკონტროლერის DD1 PD პორტთან დაკავშირებულია SA1, SA2 გადამრთველები პიეზოელექტრული ემიტერი BA1, ინდიკატორი HL1 და გასაღები ტრანზისტორებზე VT1, VT2 სარელეო K1 სამართავად. ლიმიტის გადამრთველები S1...S24 და ინდიკატორები HL2...HL25 დაკავშირებულია მიკროკონტროლერის DD1 PB, RA, PC პორტებთან.

ამ ინდიკატორების სიმძლავრე მიეწოდება VT3 ტრანზისტორის გადამრთველის საშუალებით, რომელიც კონტროლდება DD1 მიკროკონტროლერის 21 ქინძისთავიდან. რეზისტორები R10...R17, R20...R27, R28...R35 არის დენის შეზღუდვა ინდიკატორებისთვის HL2...HL25. რეზისტორი R8 არის დენის შეზღუდვა HL1 ინდიკატორისთვის.

რელე K1 კონტროლდება შესაბამისად DD1 მიკროკონტროლერის 14 პინიდან. მიწოდების ძაბვა +12 V და +5V მიეწოდება მოწყობილობას XI კონექტორიდან. კონდენსატორი C5 ფილტრავს ტალღებს +5 V დენის წრეში. დამბლოკავი კონდენსატორები C4 განლაგებულია მიკროკონტროლერ DD1-ის ელექტრომომარაგების წრის გასწვრივ.

მოწყობილობის მუშაობის ალგორითმში შეიძლება გამოიყოს ორი ოპერაციული რეჟიმი: კარის სტატუსის მონიტორინგის რეჟიმი და უსაფრთხოების რეჟიმი. განვიხილოთ მოწყობილობის მუშაობის ალგორითმი კარის სტატუსის მონიტორინგის რეჟიმში. შეინახეთ დაცული ობიექტის ყველა კარი დახურული. გადამრთველი SA1 არის "OFF" პოზიციაზე.

გადამრთველი SA2 არის "ON" პოზიციაზე. მოწყობილობას ელექტროენერგიის მიწოდების შემდეგ, ინიციალიზაციის დროს, ჟურნალები იწერება DD1 მიკროკონტროლერის PB, RA, PC პორტების ყველა ბიტზე. 1. ტრანზისტორებზე VT1...VT2 ჩამრთველები დახურულია, ინდიკატორი -HL1 გამორთულია.

ინდიკატორები HL2...HL25 ჩაქრება. ლიმიტის გადამრთველები S1...S24 ღიაა. პერიოდული სიგნალი (კვადრატული ტალღა) დაახლოებით 1 წმ პერიოდით წარმოიქმნება DD1 მიკროკონტროლერის 21 პინიდან. თუ გააღებთ No1 კარს, S5 ჩამრთველი ჩაირთვება.

HL2 ინდიკატორი პერიოდულად ანათებს ~ 1 წამის განმავლობაში. პიეზოელექტრული ემიტერი BA1 გამოიმუშავებს ხმოვან სიგნალს, რომელიც გრძელდება ~ 3 წამი.

თუ გააღეთ No2 კარი, ჩაირთვება ლიმიტის გადამრთველი S6. HL2 ინდიკატორი პერიოდულად ანათებს ~ 1 წამის განმავლობაში. პიეზოელექტრული ემიტერი BA1 გამოიმუშავებს ხმოვან სიგნალს, რომელიც გრძელდება ~ 2 წამი და ა.შ. თუ გადამრთველს SA2 დააყენებთ „ON“ პოზიციაზე, მაშინ როცა რომელიმე ლიმიტი გადამრთველი დახურულია (როდესაც რომელიმე კარი იხსნება), შესაბამისი ინდიკატორი იქნება მხოლოდ თვალის დახამხამება.

მოდით განვიხილოთ მოწყობილობის მუშაობა უსაფრთხოების რეჟიმში. შეინახეთ დაცული ობიექტის ყველა კარი დახურული. გადამრთველი SA1 დაყენებულია „OFF“-ზე.

მოწყობილობა გადადის უსაფრთხოების რეჟიმში ~ 10 წამის შემდეგ SA1 გადამრთველის „ON“ პოზიციაზე დაყენებიდან. ამ დროის განმავლობაში აუცილებელია ყველა კარის დაკეტვა და დაცული ობიექტის დატოვება. ნათელია, არის თუ არა დაცული ობიექტის პერიმეტრი საკმარისად დიდი და 10 წამში. შეუძლებელია ყველა კარის დახურვა, მაშინ ობიექტის შეიარაღებამდე ყველა კარი უნდა დაიხუროს.

თუ უსაფრთხოების რეჟიმში რომელიმე ლიმიტი გადამრთველი S1...S24 ჩართულია (ნებისმიერი კარი ღიაა), მაშინ მიკროკონტროლერის PB, PA, PC პორტების შესაბამის გამოსავალზე იქნება 0 ლოგიკური დონის სიგნალი. DD1. შემდეგ ~ 10 წამის შემდეგ. ხმოვანი სიგნალიზაცია ჩაირთვება (პიეზოელექტრული ემიტერი BA1). ამ შემთხვევაში, პინ 14-ზე მიკროკონტროლერი DD1 დააყენებს დონეს log.0-ზე (რელე K1 ჩაირთვება).

თუ "მეგობარი" შეაღწევს დაცულ ობიექტს, მაშინ მან უნდა დააყენოს SA1 გადამრთველი "OFF" პოზიციაზე ~ 10 წამში, წინააღმდეგ შემთხვევაში მაღვიძარა ჩაირთვება. ნათელია, რომ SA1 გადამრთველზე წვდომა შეზღუდული უნდა იყოს.

თუ "უცხო" შედის დაცულ ობიექტში (ღია კარიდან), მაშინ მას სჭირდება ~ 10 წამი. იპოვეთ SA1 გადამრთველი და დააყენეთ ის "OFF" პოზიციაზე. სიგნალიზაცია ასევე ჩაირთვება, თუ რომელიმე ლიმიტი გადამრთველი S1...S24 ჩაირთვება მცირე ხნით (მაგალითად, დახურეთ და სასწრაფოდ დახურეთ კარი). სარელეო კონტაქტები K1 შეიძლება გამოყენებულ იქნას საკონტროლო სქემების დახურვისთვის ან სხვადასხვა აქტივატორების გასააქტიურებლად, მაგალითად, კარის ჩაკეტვის მექანიზმისთვის ან სირენის ჩართვისთვის.

ასამბლერში შემუშავებული პროგრამა იკავებს DD1 მიკროკონტროლერის პროგრამულ მეხსიერებას მხოლოდ დაახლოებით 0,4 კბ. დამატებითი ვარიანტებისთვის შეიძლება გამოყენებულ იქნას DD1 მიკროკონტროლერის გამოუყენებელი აპარატურა (ხაზები PD6, PD7) და პროგრამული უზრუნველყოფა (დაახლოებით 7,6 კბ).

მაგალითად, შეგიძლიათ დააინსტალიროთ რამდენიმე ღილაკი და დაამატოთ მოწყობილობის შეიარაღებისა და განიარაღების ფუნქცია წვდომის კოდის საშუალებით ან აკონტროლოთ სხვა აქტივატორები. პროგრამის გაგების შემდეგ, შეგიძლიათ შეცვალოთ პროგრამული უზრუნველყოფის მიერ დაყენებული მოწყობილობის პარამეტრები:

  • HL1 ინდიკატორის მოციმციმე პერიოდი;
  • კარის სტატუსის მონიტორინგის რეჟიმში პიეზოელექტრული ემიტერი BA1 ხმოვანი სიგნალის ხანგრძლივობა;
  • მოწყობილობის შეიარაღების დრო, ასევე განგაშის ჩართვის დაყოვნების დრო.

მოწყობილობა იყენებს რეზისტორებს S2-ZZN-0.125; ნებისმიერი სხვა იგივე გაფანტვის სიმძლავრით და 5%-იანი ცდომილება ექნება. კონდენსატორი C5 ტიპის K50-35. კონდენსატორი C1...C4 ტიპის K10-17a. კონდენსატორი C4 დამონტაჟებულია +5V წრესა და მიკროკონტროლერ DD1-ის საერთო გამტარს შორის. გადართეთ SA1...SA2 ტიპის MTD1 გადამრთველები.

რელე K1, ტიპი RES48B, ვერსია RS4.590.202-01. ეს რელეები, 12 ვ ოპერაციული ძაბვით (ან სხვა ოპერაციული ძაბვით), შეიძლება შეირჩეს თითოეული კონკრეტული შემთხვევისთვის, ჩართული მოქმედი დენის და ძაბვის გათვალისწინებით.

თქვენ შეგიძლიათ აირჩიოთ აბსოლუტურად ნებისმიერი ლიმიტის გადამრთველი თითოეული კონკრეტული შემთხვევისთვის. ეს შეიძლება იყოს PKN124 ტიპის ღილაკი, ან, მაგალითად, VPK2111 ტიპის წყალგაუმტარი ტრეკის ჩამრთველი. პიეზოელექტრული ემიტერი BA1-НРМ14АХ.

ტრანზისტორი VT1 - KT829A. ტრანზისტორები VT2, VT3 -KT3107E. ინდიკატორი HL1 - AL307AM, წითელი. HL1 ინდიკატორი შეიძლება შეიცვალოს ნებისმიერი სხვა, სასურველია მაქსიმალური წინა დენით 20 mA-მდე.

განვიხილოთ კომბინირებული საკეტის მოქმედება (შემდგომში საკეტი) ნახაზი 3-ის მიხედვით. მისი მუშაობის ალგორითმი საკმაოდ მარტივია: ჩაწერის რეჟიმში მიკროკონტროლერის EEPROM-ში შედის კოდი, რომელიც შედგება 4 ათწილადისაგან. ციფრები და იბეჭდება 7 ღილაკიან კლავიატურაზე. შემდეგი, შესამოწმებლად, ჩაწერილი კოდი იკითხება წაკითხვის რეჟიმში. ოპერაციულ რეჟიმში, საკეტი ელოდება კოდის შეყვანას.

მიკროკონტროლერი წერს შეყვანილ კოდს RAM-ში და ადარებს მას ბაიტი ბაიტი EEPROM-ში დაწერილ კოდს. თუ კოდები ემთხვევა, მიკროკონტროლერი აგზავნის სიგნალს ხუთი წამის განმავლობაში საკეტის გახსნის მექანიზმის ჩართვისთვის.

გარდა ამისა, კოდის აკრეფის პროცედურა შეიძლება იყოს ღია (აკრეფილი კოდი ნაჩვენებია ეკრანზე, თითოეულ დაჭერილ ღილაკს ენიჭება ნომერი ეკრანზე) და დახურული (კოდის აკრეფისას ეკრანზე გამოჩნდება იდენტური, წინასწარ განსაზღვრული სიმბოლოები. , თითოეულ დაჭერილ ღილაკს ენიჭება კონკრეტული სიმბოლო, მაგალითად).

ამ მიზნით საკეტში არის ცალკე ჩამრთველი. ეკრანზე გამოსახული 4-ციფრიანი კოდის ჩაწერის და მუშაობის რეჟიმში გასააქტიურებლად, უბრალოდ დააჭირეთ კლავიატურაზე არსებულ ნებისმიერ ღილაკს.

მოწყობილობის ინტერფეისი მოიცავს მასშტაბის, სიმბოლოების სინთეზირების ინდიკატორს HG1, ციფრული შვიდი სეგმენტის HG2...HG4 ინდიკატორის საჩვენებელ ერთეულს (ჩვენებას), გადამრთველს SA1-ს და კლავიატურას (ღილაკები S1...S8).

ღილაკები S1...S7 მითითებულია რიცხვებით "1"-დან "7"-მდე. ეს ღილაკები ადგენს შეყვანის კოდს.ღილაკი S8 (P) ციკლში აყენებს მუშაობის სამ რეჟიმს: „რეჟიმი No.1“, „რეჟიმი No2“, „რეჟიმი No3“. რეჟიმი No3 გააქტიურებულია რეჟიმი No1.

HG1 ინდიკატორის ელემენტი No1 ჩართულია No1 რეჟიმში მუშაობისას”, HG1 ინდიკატორის No2 ელემენტი ჩართულია No2 რეჟიმში მუშაობისას და ელემენტი No3 ჩართულია შესაბამისად. No3 რეჟიმში მუშაობისას. 5-ციფრიან ეკრანზე (ორმაგი ციფრული ინდიკატორი HG2, HG3 აჩვენებს შეყვანილ კოდს. ინდიკატორი HG4 აჩვენებს სიმბოლოებს „3“ (როდესაც საკეტი დახურულია) და „0“ (დაბლოკვისას). ღიაა).

გადამრთველი SA1 აყენებს კოდის ჩვენების რეჟიმს მოწყობილობის ეკრანზე. თუ ეს გადამრთველი არის პოზიციაზე "1", მაშინ კლავიატურაზე მითითებული კოდი ნაჩვენებია მოწყობილობის ეკრანზე. თუ პოზიციაზე "2" (დამალული რეჟიმი), მაშინ კოდის აკრეფისას სიმბოლოები ნაჩვენებია თითოეულ ციფრზე მოწყობილობის ეკრანზე.

No 1 რეჟიმში (ოპერაციული რეჟიმი) საკეტი მზად არის შეიყვანოს კოდი საკეტის გასახსნელად (თუ, რა თქმა უნდა, კოდი ადრე იყო ჩაწერილი EEPROM-ში). კოდის აკრეფამდე ეკრანზე გამოდის კოდი 0000. ჩართულია HG1 ინდიკატორის No1 ელემენტი (HG1 ინდიკატორის სხვა ელემენტები გამორთულია).

HG4 ინდიკატორი აჩვენებს სიმბოლოს "3" (დახურულია). S1...S7 ღილაკების გამოყენებით აკრიფეთ 4-ნიშნა კოდი. აკრეფილი კოდი ნაჩვენებია ეკრანზე. S1...S7 რომელიმე ღილაკზე დაჭერის შემდეგ მიკროკონტროლერი წერს მიღებულ 4-ბიტიან კოდს RAM-ში და იწყებს RAM-ში დაწერილი კოდის და EEPROM-ში დაწერილი კოდის შემოწმებას. კოდები შედარებულია ბაიტი ბაიტით.

თუ შედარება წარმატებული იყო, მიკროკონტროლერი აგზავნის სიგნალს საკეტის გახსნის ამძრავზე. HG1 ინდიკატორის ნომერი 4 ელემენტი ჩართულია ხუთი წამით, HG4 ინდიკატორი აჩვენებს სიმბოლოს „O“ (ღია) და ჟურნალი დაყენებულია. 0 პინ 21-ზე.

ხუთი წამის შემდეგ, HG1 ინდიკატორის #4 ელემენტი გამორთულია და ჟურნალი დაყენებულია პინ 21-ზე. 1. ეკრანზე კვლავ გამოჩნდება კოდი 0000. HG4 ინდიკატორი კვლავ აჩვენებს სიმბოლოს „3“ (დახურულია).

No2 რეჟიმში (ჩაწერის რეჟიმი) საიდუმლო კოდი იწერება EEPROM-ში. ეკრანზე ნაჩვენებია კოდი 0000. HG1 ინდიკატორის ნომერი 2 ელემენტი ჩართულია. HG4 ინდიკატორი აჩვენებს სიმბოლოს "3" (დახურულია). გამოიყენეთ SI...S7 ღილაკები, რომ აკრიფოთ კოდი. აკრეფილი კოდი ნაჩვენებია ეკრანზე.

მიკროკონტროლერი წერს ეკრანზე გამოსახულ 4-ციფრიან კოდს EEPROM-ზე რომელიმე ღილაკის 51...57 დაჭერის შემდეგ. კოდის დაწერის შემდეგ ეკრანზე კვლავ გამოჩნდება კოდი 0000.

No3 რეჟიმში (ჩაწერილი კოდის გადამოწმების რეჟიმი) მოწმდება EEPROM-ში ჩაწერილი საიდუმლო კოდი. HG1 ინდიკატორის No3 ელემენტი ჩართულია. HG4 ინდიკატორი აჩვენებს სიმბოლოს "3" (დახურულია). EEPROM-ში ჩაწერილი კოდი ნაჩვენებია ეკრანზე.

ნათელია, რომ S8 ღილაკზე და SA1 გადამრთველზე წვდომა შეზღუდული უნდა იყოს. სტრუქტურულად, ამის გაკეთება არც ისე რთულია.

განვიხილოთ მოწყობილობის ძირითადი ფუნქციური კომპონენტები (ნახ. 3). მოწყობილობის საფუძველია DD1 მიკროკონტროლერი, რომლის მუშაობის სიხშირე დაყენებულია გენერატორის მიერ გარე რეზონატორით ZQ1 11,0592 MHz. მიკროკონტროლერის DD1 PD პორტი აკონტროლებს დინამიურ მითითებას.

დინამიური ჩვენება აწყობილია ტრანზისტორებზე VT1...VT5, ორმაგი, ციფრული, შვიდსეგმენტიანი HG2, HG3 და ერთი ციფრული ინდიკატორი HG4. რეზისტორები R7...R14 არის დენის შეზღუდვა ინდიკატორის სეგმენტებისთვის HG2...HG4. ზემოთ მოყვანილი ინდიკატორების ჩართვის კოდები, როდესაც დინამიური ჩვენება მუშაობს, იგზავნება DD1 მიკროკონტროლერის კომპიუტერის პორტში.

კლავიატურის ფუნქციონირებისთვის გამოიყენება DD1 მიკროკონტროლერის პინი 19 (PD5). HG1 მასშტაბის ინდიკატორის ელემენტები დაკავშირებულია DD1 მიკროკონტროლერის PB პორტის ქინძისთავებთან. რეზისტორები R2...R5 არის დენის შემზღუდველი ინდიკატორის ელემენტები HG1.

დენის ჩართვისთანავე, სისტემის აპარატურის გადატვირთვის სიგნალი მიკროკონტროლერ DD1-ისთვის წარმოიქმნება DD1 მიკროკონტროლერის 9 პინზე RC წრედის მეშვეობით (რეზისტორი R1, კონდენსატორი C3). ეკრანზე ნაჩვენებია კოდი 0000. ჩართულია HG1 ინდიკატორის No1 ელემენტი. HG4 ინდიკატორი აჩვენებს სიმბოლოს "3" (დახურულია).

+5V მიწოდების ძაბვა მიეწოდება მოწყობილობას XI კონექტორიდან. კონდენსატორი C5 ფილტრავს ტალღებს +5 V დენის წრეში. დამბლოკავი კონდენსატორი C4 მდებარეობს DD1 კვების სქემის გასწვრივ.

ძალიან მოკლედ პროგრამის შესახებ. პროგრამა იყენებს ორ შეფერხებას: გადატვირთვისა და TO ტაიმერის შეფერხებას, რომლის დამმუშავებელი იწყება TIM0 ეტიკეტით. გადატვირთვის ეტიკეტზე გადასვლისას ინიციალიზდება სტეკი, ტაიმერი, პორტები, ასევე პროგრამაში გამოყენებული დროშები და ცვლადები.

TO ტაიმერი წარმოქმნის გადინების შეფერხებებს (TOIE0 ბიტი დაყენებულია TIMSK რეესტრში). ტაიმერის საათის წინასწარ გაყოფის ფაქტორი დაყენებულია 64-ზე (ნომერი 3 იწერება TCCR0 რეესტრში).

მთავარ პროგრამაში შედის HG1 ინდიკატორის ელემენტები. ამ ინდიკატორის ჩართული ელემენტები, როგორც ზემოთ აღინიშნა, განსაზღვრავს საკეტის მიმდინარე ოპერაციულ რეჟიმს. TO ტაიმერის შეფერხების დამმუშავებელში ტარდება: პროცედურა კენჭისყრის ღილაკების S1...S8, დინამიური აღნიშვნის ფუნქციონირება, საიდუმლო კოდის EEPROM-ში ჩაწერა, საიდუმლო კოდის წაკითხვა EEPROM-დან, ორობითი რიცხვის გადაქცევა კოდი შვიდსეგმენტიანი მოწყობილობის ინდიკატორებზე ინფორმაციის ჩვენებისთვის, აგრეთვე დროის ინტერვალის ხანგრძლივობის ხუთი წამი, რომელიც საჭიროა სოლენოიდის აქტივატორის ჩართვისთვის.

დინამიური ჩვენების ეკრანის ბუფერი ორგანიზებულია მიკროკონტროლერის RAM-ში $61 მისამართიდან $70-მდე. ქვემოთ მოცემულია მისამართების სივრცის დეტალური განაწილება მიკროკონტროლერის RAM-ში.

  • $60 არის მიკროკონტროლერის ოპერატიული მეხსიერების საწყისი მისამართი.
  • $61...$64 - მისამართები, სადაც ინახება საკეტის გახსნის მითითებული კოდი და სიმბოლო „3“. ეს მისამართები ნაჩვენებია No1 რეჟიმში (ბუფერი No1).
  • $66...$69 - მისამართები, სადაც ინახება EEPROM-დან წაკითხული კოდი და სიმბოლო „3“. ეს მისამართები ნაჩვენებია No3 რეჟიმში (ბუფერი No2).
  • $6С...$70 - მისამართები, სადაც ინახება ფარული აკრეფის სიმბოლოები და სიმბოლო „3“. ეს მისამართები ნაჩვენებია No1 რეჟიმში (ბუფერი No3).

პროგრამაში ჩართული დროშები განთავსებულია რეგისტრებში R19 (flo) და R25 (flo1).

შემუშავებული ასამბლერის პროგრამა იკავებს დაახლოებით 1.2 KB პროგრამის მეხსიერებას. პროგრამის გაგების შემდეგ, მიკროსქემის მცირე ცვლილებებით, DD1 მიკროკონტროლერის უფასო ტექნიკის და პროგრამული რესურსების გამოყენებით, შეგიძლიათ, მაგალითად, გაზარდოთ ციფრების რაოდენობა ეკრანზე და ღილაკების რაოდენობა ან დაამატოთ ხმოვანი სიგნალიზაცია.

გამოიყენება C2-ZZN ტიპის რეზისტორები; შესაფერისია ნებისმიერი სხვა იგივე გაფანტვის სიმძლავრით და 5% შეცდომით. კონდენსატორები C1...C4, ტიპი - K10-17a, C5 - K50-35a. კონექტორი XI ტიპის WF-4. კონდენსატორი C4 დამონტაჟებულია +5V წრესა და მიკროკონტროლერ DD2-ის საერთო გამტარს შორის. პროტოტიპის შესამოწმებლად გამოიყენეს VDMZ-8 ტიპის SA1 გადამრთველი.

ბლოკის კორპუსში ინსტალაციისთვის შეგიძლიათ გამოიყენოთ, მაგალითად, MTZ ტიპის შეცვლა. ეკრანს აქვს მონიშნული ციფრი, რომელიც მიუთითებს სიმბოლოებს "3" და "O" (ინდიკატორი HG4) ინტერფეისის სხვა ციფრების ფონზე. ამიტომ, ამ კატეგორიისთვის შეირჩა შვიდსეგმენტიანი მწვანე HDSP-F501 ინდიკატორი და მწვანე DA56-11GWA ინდიკატორები HG2, HG3.

საკეტი და უსაფრთხოების მოწყობილობა არ საჭიროებს რაიმე კონფიგურაციას ან რეგულირებას. სწორად დამონტაჟების შემთხვევაში, ისინი დაუყოვნებლივ იწყებენ მუშაობას.

პროგრამების წყარო კოდი და firmware - ჩამოტვირთვა (8 KB).

შიშკინი ს.ვ RK-07-16.

ლიტერატურა:

  1. A. V. Belov ჩვენ ვქმნით მოწყობილობებს მიკროკონტროლერებზე.
  2. S.V. შიშკინი. მიკროკონტროლერზე დაფუძნებული კომბინირებული საკეტი. რ-10-2011წ.


ეს პროექტი შესანიშნავი ვარიანტი იქნება დამწყებთათვის გასამეორებლად; ის იყენებს 1602 LCD ეკრანს, 4x4 ღილაკების კლავიატურას და, რა თქმა უნდა, თავად კონტროლერს. გარდა ამისა, გამოყენებული იქნა რელე, ღილაკი და დენის კონექტორები, PLS ქინძისთავები, რამდენიმე ტრანზისტორი და წვრილმანი. სხვათა შორის, პროექტში დისპლეის სიკაშკაშე დარეგულირდება PWM მეთოდით.

ამ მოწყობილობის გამოყენება შესაძლებელია თითქმის ნებისმიერი ობიექტის დასაცავად, მომხმარებელმა უნდა შეიყვანოს სწორი პაროლი წვდომის მისაღებად. დაფა უკვე მოხერხებულად არის დაპროექტებული და რჩება მხოლოდ მისთვის ლამაზი ქეისის გაკეთება. პაროლი შეყვანილია კლავიატურაში ჩაშენებული 4x4 მატრიცის გამოყენებით. მთავარი LCD დისპლეის მოდული გამოიყენება მომხმარებლისთვის შეტყობინებების და მიმდინარე ინფორმაციის საჩვენებლად. როგორც კი სწორი პაროლი შეიყვანება, რელე იმუშავებს. ეს ასევე მითითებული იქნება რელესთან დაყენებული LED-ით. რელეს გამორთვისთვის საჭიროა კლავიატურაზე შესაბამისი ღილაკის დაჭერა.

ოთხნიშნა პაროლის შეყვანის შემდეგ, თქვენ უნდა დააჭიროთ ღილაკს "OK" (S8). ნებისმიერ დროს შეგიძლიათ დააჭიროთ ღილაკს გაუქმება (S12) კოდის გასასუფთავებლად (მაგალითად, არასწორი ნომრის შეყვანისას).

დაბლოკვის კოდი ადვილად შეიცვლება სპეციალური პაროლის „0000“ შეყვანით, ამ პაროლის შეყვანისთანავე მოწყობილობა გადადის პაროლის შეცვლის რეჟიმში. აქ თქვენ უნდა შეიყვანოთ ძველი პაროლი ნებართვის მისაღებად და შემდეგ შეიყვანოთ ახალი პაროლი, ეს ძალიან მარტივია.

LCD უკანა განათება ავტომატურად ითიშება მას შემდეგ, რაც სისტემა რამდენიმე წამის განმავლობაში ლოდინის რეჟიმში იქნება. უკანა განათება ძალიან შეუფერხებლად იკლებს, ისევე როგორც მობილურ ტელეფონებში. დისპლეი შეიძლება შეიცვალოს ნებისმიერი მსგავსით, მსგავსი კონტროლერით ან თუნდაც განსხვავებული რეზოლუციით, მთავარი რასაც გირჩევთ ყურადღება მიაქციოთ არის პინი, ზოგიერთ მოდელში ეკრანის პინი შეიძლება განსხვავდებოდეს. კონტროლერის პროგრამა დაწერილია C++-ში, მოყვება წყაროს კოდი, ასევე კონტროლერის ფირმვერი. მიკროკონტროლერი შეიძლება გამოყენებულ იქნას ნებისმიერი ინდექსით; ასო L ნიშნავს ენერგიის შემცირებას.

გამოყენებული რადიო კომპონენტების სია:

01 330 Ohm resistor (2 ცალი), R3, R5

02 4.7 kOhm რეზისტორი R2, R4, R6

03 200 Ohm რეზისტორი R1

04 0.1uF კერამიკული კონდენსატორი C1, C3, C4, C5

05 1N4007 დიოდი (2 ცალი), D1, D3

06 5 მმ LED-ები ნებისმიერი ფერის D4

07 მიკროკონტროლერი ATmega8L U1

08 ძაბვის სტაბილიზატორი 7805 U2

09 დენის კონექტორი CON1

10 PCB რელე RL1

11 ჩართვა/გამორთვის გადამრთველი SW1

12 DC სოკეტი X1

13 16×2 LCD დისპლეი LCD1

14 10 kOhm მორთვის რეზისტორი RV1

15 28 PIN საწოლი მიკროკონტროლერის IC-ისთვის

16 BC548 ტრანზისტორი (2 ც.) Q1, Q2

17 ღილაკი (16 ცალი)

ბეჭდური მიკროსქემის დაფის ფაილი LUT მეთოდით დასამზადებლად განთავსებულია ქვემოთ არქივში; დაბეჭდილი მიკროსქემის დაფა შეიძლება შესამჩნევად უფრო მცირე იყოს, თუ იყენებთ პატარა ღილაკებს, ან თუ კლავიატურას ცალკე დაფაზე გადაიტანთ. ნომრის ღილაკების აღება შესაძლებელია ძველი კომპიუტერის ან ლეპტოპის კლავიატურიდან.

ჩამოტვირთეთ PCB ფაილი, წყარო და firmware

ორიგინალური სტატია ინგლისურად (თარგმანი: Მოწინავესაიტისთვის cxem.net)

საღამო იყო, როცა ოფისის ზღურბლზე დაჟინებული, დიდი ზომის ქალი გამოჩნდა, რომელმაც ცნობილი ბრენდის კერძების ყიდვა შესთავაზა. მეორე დღეს მე მივიღე დავალება ჩემი უფროსისგან (აკა) დამეცვა მისი შემოქმედებითი ბუნება გაყიდვების წარმომადგენლების თავდასხმებისგან. ასე გაჩნდა პროექტის კოდური სახელწოდებით Hungry_Wall შექმნის იდეა. რა თქმა უნდა, ახლა არის მრავალი სერვისი, რომელიც ჩართულია შენობებში წვდომის კონტროლში. მაგრამ ბევრად უფრო საინტერესოა ელექტრონული საკეტის გაკეთება საკუთარი ხელით, განსაკუთრებით ჩემთვის, დამწყები პროგრამისტი და ელექტრონიკის ინჟინერი.

როგორც ამბობენ, მთავარია ტექნიკური მახასიათებლების სწორად შედგენა, ანუ რისი მიღება გვინდა შედეგად.

  1. შექმენით გასაღების ამოცნობის სისტემა.
  2. შეადარეთ გასაღები მონაცემთა ბაზას და თუ წარმოდგენილი გასაღების კოდი ემთხვევა მონაცემთა ბაზაში ჩაწერილს, გახსენით საკეტი.
  3. წაიკითხეთ მაგნიტური სენსორიდან კარის მდგომარეობის დასადგენად და თუ კარი ღიაა, დახურეთ საკეტი.
  4. გამოიყენეთ ტაიმერი, რის შემდეგაც საკეტი იხურება, თუ გადავიფიქრებთ შესვლის/გასვლის შესახებ. ეს შექმნილია იმისთვის, რომ თავიდან აიცილოს „მტრები“ საიდუმლო ბუნაგში ჩვენი განწყობის ცვლილების გამოყენებით.
  5. დარწმუნდით, რომ კარი გაიხსნება ოთახში მდებარე ღილაკის გამოყენებით.
  6. სამაგისტრო გასაღების წარდგენის შემდეგ მონაცემთა ბაზაში ახალი გასაღების ჩაწერა და, ბუნებრივია, თავად მასტერის ჩაწერა.
  7. გასაღების ამოღება მონაცემთა ბაზიდან (მახასიათებელი).
  8. ჩვენების სისტემა მეტი მიმზიდველობისთვის.

სამუშაოს ნახევარი შესრულებულია, რჩება მხოლოდ გეგმის განხორციელება აპარატურულ და პროგრამულ უზრუნველყოფაში. ამისათვის საჭიროა:

  1. ელექტრო საკეტი
  2. პროქსი (em-Marin) ბარათის წამკითხველი "CP-Z" IronLogic-ისგან
  3. გასაღებები ან ბარათები მონაცემთა ბაზაში ჩასაწერად
  4. ღილაკი
  5. კვების ბლოკი 12 ვ
  6. სხეული (ისე, რომ ყველაფერი მოწესრიგებული და ლამაზი იყოს)
  7. ელექტრონიკა – მიკროკონტროლერი ATmega 8, “cribX28”, სტაბილიზატორი KR1158EN5V, ტრანზისტორი IRLU 024 N, 6 KLEM 2 კონექტორი, 1 WF 3 კონექტორი (COM-პორტი), კონდენსატორი, LED-ები და რეზისტორები გემოვნებით.

დაფის განლაგება ნაჩვენებია დიაგრამა 1-ში.

დაფის შიდა ნაწილები ნაჩვენებია სურათზე 1.

დავალებული პრობლემების გადასაჭრელად, ყველა გამოყენებული მოწყობილობა იყოფა დიაგრამა 2-ში წარმოდგენილ ლოგიკურ ბლოკებად.

საკეტის ბლოკში შედის თავად ელექტრო საკეტი, ტაიმერი TimeOpen, რომელიც საშუალებას გაძლევთ დააყენოთ საკეტის გახსნის მაქსიმალური დრო და მაგნიტური სენსორი, რომელიც მიუთითებს კარის გაღებაზე და დახურვაზე. საკეტის ბლოკის შეყვანა არის ბრძანება საკეტის გახსნის შესახებ (Open), რომელიც მოდის საკეტისა და ღილაკის ბლოკებიდან. Oarlock ბლოკი შედგება წასაკითხი მოწყობილობისგან, მონაცემთა ბაზისგან და TimeMaster ტაიმერისაგან, რომელიც ადგენს მაქსიმალურ დროს მონაცემთა ბაზაში ჩასაწერად ახალი გასაღების გაგზავნისთვის. ბლოკში შესვლა ხორციელდება გასაღების ან მასტერის წარდგენით. ღილაკების ბლოკი შედგება ღილაკისაგან, რომელსაც შეუძლია მიიღოს 2 მდგომარეობა (დაჭერილი/არ დაჭერილი).

უკონტაქტო ბარათების წასაკითხად გამოიყენება IronLogic-ის „CP-Z Proxy Card Reader (em-Marin)“; მისი თავისებურება ის არის, რომ ის ამსგავსებს iButton-ს (1-wire), თუ მას პროქსი ბარათი მოჰყავთ. ეს საშუალებას გაძლევთ. საკეტის პროგრამირების გასამარტივებლად, თუმცა, უნდა გაითვალისწინოთ, რომ მკითხველის ამ ვერსიას აქვს საკუთარი წყალქვეშა საკომისიო.

მუშაობის პრინციპი ძალიან მარტივია. გასაღების წარდგენისას, მისი კოდი იკითხება და შედარებულია ბაზასთან. თუ გასაღები ნაპოვნია მონაცემთა ბაზაში, საკეტი იღებს Open ბრძანებას. აქ აუცილებელია საკეტის თავისებურების გათვალისწინება: გახსნა უნდა მოხდეს დაწკაპუნებით (გახსნა-დახურვა-გახსნა). ეს უზრუნველყოფს დაცვას საკეტის დაბლოკვისგან. როდესაც მასტერი წარმოდგენილია, პროგრამის ლოგიკა იცვლება. მისი არსებობა არანაირად არ მოქმედებს ციხის "განწყობაზე". იგი განიხილება, როგორც ერთგვარი თურქი სულთანი, რომელიც მზად არის დაარეგისტრიროს (მიწეროს EEPROM-ს) მისი შემდეგი ცოლი (გასაღები). იმათ. როდესაც გასაღები წარმოდგენილია (თუ ის ადრე არ იყო ჩაწერილი), მისი კოდი იწერება EEPROM-ში. აქ გასათვალისწინებელია, რომ მიკრუჰას მეხსიერება არარეზინისაა და, მაგალითად, ATmega 8-ისთვის არის 512 ბაიტი, რაც საშუალებას გაძლევთ ჩაწეროთ მაქსიმუმ 255 კლავიატურა (თუ შესანახად იყენებთ 2 ბაიტს. 1 გასაღები, როგორც ჩვენს შემთხვევაში). პირველივე წარმოდგენილი გასაღები ჩაწერილია, როგორც მთავარი. ღილაკზე დაჭერით ასევე იგზავნება Open ბრძანება საკეტში. ჩვენების სისტემა ჩვენს პროექტს უფრო ფერად და ინფორმატიულს ხდის. თუ წითელი დიოდი ჩართულია, გადასასვლელი იბლოკება, თუ მწვანეა, შეგიძლიათ წახვიდეთ! როდესაც ოსტატი ამაღლებულია, ორივე LED ანათებს.

მნიშვნელოვანია აღინიშნოს, რომ საკეტი იხსნება, როდესაც მასზე გამოიყენება ლოგიკური ერთეული (ანუ ძაბვა) და დახურულ მდგომარეობაშია, თუ ძაბვა არ არის გამოყენებული. ეს საშუალებას გაძლევთ დაბლოკოთ გადასასვლელი, თუ დაგავიწყდათ კომუნალური გადასახადის გადახდა და თქვენი ელექტროენერგია გამორთულია.

მთელი მოწყობილობის გარეგნობა ნაჩვენებია სურათზე 2. ყველაფერი საკმაოდ მოწესრიგებული და ლამაზია.

შეგიძლიათ ჩამოტვირთოთ წყაროები

გადავწყვიტე მეთამაშა 3x4 მემბრანული კლავიატურით, რომელიც დიდი ხნის წინ შევუკვეთე ჩინეთიდან. ამ კლავიატურას მრავალი სახეობა და სახეობა აქვს, ზოგი პლასტმასის კორპუსებში, ზოგი კი ფილმში. ჩემს 3x4 ვერსიას აქვს 7 პინი, 4x4 კლავიატურის პინი ნაჩვენებია ქვემოთ მოცემულ დიაგრამაზე, დიაგრამა არის ერთი ერთზე. განლაგება თითქმის იდენტურია 3x4 კლავიატურისა, გარდა იმისა, რომ "A,B,C,D" კლავიშების მარჯვენა მწკრივი აკლია.

3x4 კლავიატურის კავშირის დიაგრამა:

4x4 კლავიატურა დაკავშირებულია იმავე გზით, მეოთხე რიგი არის "A, B, C, D "აერთებს მიკროკონტროლერის PD7 პორტს.

პროგრამის საწყისი კოდი:

$regfile = "m8def.dat"
$კრისტალი = 1000000

"ჩვენების კონფიგურაცია
კონფიგურაცია Lcdpin=Pin, Rs=Portc.0, E=Portc.1, Db4=Portc.2, Db5=Portc.3, Db6=Portc.4, Db7=Portc.5
კონფიგურაცია LCD = 20 * 4
კურსორი გამორთულია
Cls

"კლავიატურის კონფიგურაცია
კონფიგურაცია Kbd = Portd, Debounce = 40, Delay = 100

"ცვლადები
Dim Key_char როგორც ბაიტი "დაჭერილი ღილაკის ნომერი
Dim Key_str როგორც სიმებიანი * კლავიატურაზე დაჭერილი კლავიშის სიმბოლო
ჩაბნელებული შედეგი როგორც სტრიქონი * 20" კლავიშების დაჭერის შედეგი
Deflcdchar 1, 32, 14, 10, 31, 27, 27, 14, 32"

მდებარეობა 1, 4
LCD Chr(1)

შედეგი = ""

„პროგრამის მთავარი ციკლი
Კეთება

Key_char = Getkbd() "როდესაც ღილაკი არ არის დაჭერილი, ფუნქცია ცვლადს უბრუნებს მნიშვნელობას 16

თუ Key_char<>16 შემდეგ „თუ ცვლადი არ არის 16-ის ტოლი, მაშინ დააჭირეთ ღილაკს
Key_str = Lookupstr(key_char , Keyboard_data) "ჩვენ ამოვიღებთ დაჭერილი კლავიშის სიმბოლოს მასივიდან
შედეგი = შედეგი + Key_str
Დაასრულე თუ

მდებარეობა 2, 3
LCD შედეგი "გვიჩვენებს დაჭერის შედეგს

ელოდება 100

თუ შედეგი = "123" მაშინ
მდებარეობა 2, 2
LCD "განბლოკვა"
დაელოდე 1
Goto Pizdec
სხვა
Დაასრულე თუ

თუ Key_str = "5" მაშინ
მდებარეობა 2, 2
LCD "RETURN"
დაელოდე 1
Goto Pizdec
სხვა
Დაასრულე თუ

მარყუჟი

კლავიატურა_მონაცემები:
მონაცემები "1" , "4" , "7" , "*" , "2", "5", "8", "0"
მონაცემები "3" , "6" , "9" , "#" , "A", "B", "C", "D"

Pizdec:
Დაბრუნების

კლავიშის დაჭერისას, სიმბოლოები იწყებენ გამეორებას; პროგრამა შეიძლება ოდნავ შეიცვალოს, თუ მაგალითში პირველი ხაზის ბოლოს დაამატებთ შემდეგ ხაზს:

Key_char = Getkbd()
თუ Key_char<>16 მაშინ
გადადით 1
Დაასრულე თუ

ამ გზით ჩვენ თავიდან ავიცილებთ სიმბოლოების გამეორებას გასაღების დაჭერისას. ჩვენ შეგვიძლია დავაჭიროთ ღილაკს მინიმუმ ერთი წუთით და იქნება მხოლოდ ერთი სიმბოლო.

როდესაც ჩართავთ მოწყობილობას, "დაბლოკვის" ხატი გამოჩნდება ზედა ხაზზე, ხოლო შეყვანილი სიმბოლოები ნაჩვენებია ქვედა ხაზზე.


ნაგულისხმევად, კოდის კოდი არის "123"; როგორც კი ამ კოდს შევიყვანთ (როგორც კი დავაჭერთ მესამე სწორ ღილაკს), "UNLOCK" გამოჩნდება ქვედა ხაზში.

ვფიქრობ, პროგრამის მოქმედების პრინციპი თქვენთვის გასაგებია, რჩება მხოლოდ პროგრამაში ცოტას დამატება, სწორი კოდის შეყვანის დროს გასააქტიურებელი პორტების დაზუსტება.

ვიდეო კომბინაციის ჩაკეტვის მოქმედებაში:

პროექტის ფაილები საწყისი კოდით (~ 15 კბ.)

კომბინირებული საკეტის მზა ვერსია:

ქვემოთ მოცემულია კომბინირებული საკეტის მზა სამუშაო დიაგრამა, კონფიგურირებული პორტებით ელექტრო დისკისა და LED-ების დასაკავშირებლად. ელექტრო დისკი შეიძლება დაუკავშირდეს მანქანას, ე.წ.

თუ PIN კოდი სწორად არის შეყვანილი, დისკი იმუშავებს 1 წამის განმავლობაში, საკმარისია თუ არა ეს დრო საკეტის მექანიზმის მუშაობისთვის (კარის გაღება)? დისკი ტრანზისტორის საშუალებით უკავშირდება პორტს PORTB.4. თუ PIN კოდის შეყვანის მცდელობისას არასწორად შეიტანეთ ნომერი, დააჭირეთ ღილაკს „ფუნტი“ და შეგიძლიათ ისევ დაიწყოთ კოდის შეყვანა...

როდესაც PIN კოდი სწორად არის შეყვანილი, საკეტი იხსნება და ეკრანზე გამოჩნდება „UNLOCK“.

Proteus პროექტი და firmware განთავსებულია არქივში ქვემოთ, საკეტის PIN კოდი მითითებულია არქივში firmware ფაილის სახელით.

avrproject.ru საიტის მასალებზე დაყრდნობით

Proteus პროექტი და firmware ფაილი (~16kb.)