एवीआर माइक्रोकंट्रोलर पर डिस्प्ले के साथ कोड लॉक। माइक्रोकंट्रोलर इलेक्ट्रॉनिक लॉक। डिवाइस का योजनाबद्ध आरेख

यह प्रोजेक्ट शुरुआती लोगों के लिए दोहराने के लिए एक उत्कृष्ट विकल्प होगा; इसमें 1602 एलसीडी डिस्प्ले, बटनों का 4x4 कीबोर्ड और निश्चित रूप से, नियंत्रक का उपयोग किया जाता है। इसके अलावा, एक रिले, एक बटन और पावर कनेक्टर, पीएलएस पिन, कुछ ट्रांजिस्टर और छोटी चीजों का उपयोग किया गया था। वैसे, प्रोजेक्ट में डिस्प्ले की चमक को PWM विधि का उपयोग करके समायोजित किया जाएगा।

इस उपकरण का उपयोग लगभग किसी भी वस्तु की सुरक्षा के लिए किया जा सकता है, उपयोगकर्ता को पहुंच प्राप्त करने के लिए सही पासवर्ड दर्ज करना होगा। बोर्ड को पहले से ही सुविधाजनक तरीके से डिज़ाइन किया गया है, और जो कुछ बचा है वह इसके लिए एक सुंदर केस बनाना है। पासवर्ड कीबोर्ड में निर्मित 4x4 मैट्रिक्स का उपयोग करके दर्ज किया जाता है। मुख्य एलसीडी डिस्प्ले मॉड्यूल का उपयोग उपयोगकर्ता को संदेश और वर्तमान जानकारी प्रदर्शित करने के लिए किया जाता है। जैसे ही सही पासवर्ड डाला जाएगा, रिले चालू हो जाएगा। इसका संकेत रिले के बगल में लगी एक एलईडी से भी मिलेगा। रिले को बंद करने के लिए, आपको कीबोर्ड पर संबंधित बटन दबाना होगा।

चार अंकों का पासवर्ड दर्ज करने के बाद, आपको "ओके" बटन (एस8) दबाना होगा। आप कोड साफ़ करने के लिए किसी भी समय रद्द करें बटन (S12) दबा सकते हैं (उदाहरण के लिए, कोई गलत संख्या दर्ज करते समय)।
लॉक कोड को एक विशेष पासवर्ड "0000" दर्ज करके आसानी से बदला जा सकता है, एक बार जब आप यह पासवर्ड दर्ज करते हैं, तो डिवाइस पासवर्ड परिवर्तन मोड में स्विच हो जाएगा। यहां आपको अनुमति लेने के लिए पुराना पासवर्ड डालना होगा और फिर नया पासवर्ड डालना होगा, यह बहुत आसान है।

सिस्टम के कुछ सेकंड के लिए स्टैंडबाय मोड में रहने के बाद एलसीडी बैकलाइट स्वचालित रूप से बंद हो जाती है। मोबाइल फोन की तरह ही बैकलाइट बहुत आसानी से मंद हो जाती है। डिस्प्ले को किसी भी समान, समान नियंत्रक या यहां तक ​​कि एक अलग रिज़ॉल्यूशन के साथ बदला जा सकता है, मुख्य बात जिस पर मैं आपको ध्यान देने की सलाह देता हूं वह है पिनआउट, कुछ मॉडलों में डिस्प्ले पिनआउट भिन्न हो सकता है; नियंत्रक के लिए प्रोग्राम C++ में लिखा गया है, स्रोत कोड, साथ ही नियंत्रक के लिए फर्मवेयर शामिल हैं। माइक्रोकंट्रोलर का उपयोग किसी भी इंडेक्स के साथ किया जा सकता है; अक्षर L का मतलब कम बिजली की खपत है।

विनिर्माण के लिए पीसीबी फ़ाइल संग्रह में नीचे स्थित है, यदि आप छोटे बटनों का उपयोग करते हैं, या यदि आप कीबोर्ड को एक अलग बोर्ड में ले जाते हैं तो मुद्रित सर्किट बोर्ड को उल्लेखनीय रूप से कम किया जा सकता है। नंबर कुंजियाँ किसी पुराने कंप्यूटर या लैपटॉप कीबोर्ड से ली जा सकती हैं।

फ़्यूज़:
उच्च=D9
कम=ई1

आप नीचे पीसीबी फ़ाइल, स्रोत और फ़र्मवेयर डाउनलोड कर सकते हैं

रेडियोतत्वों की सूची

पद का नाम प्रकार मज़हब मात्रा टिप्पणीदुकानमेरा नोटपैड
उ1 एमके एवीआर 8-बिट

ATmega8

1 ATmega8L नोटपैड के लिए
यू 2 रैखिक नियामक

एलएम7805

1 नोटपैड के लिए
Q1, Q2 द्विध्रुवी ट्रांजिस्टर

बीसी548

2 नोटपैड के लिए
डी1, डी3 दिष्टकारी डायोड

1एन4007

2 नोटपैड के लिए
डी2, डी4 नेतृत्व किया 2 नोटपैड के लिए
सी1, सी3-सी5 संधारित्र0.1 μF4 नोटपैड के लिए
सी2 इलेक्ट्रोलाइटिक संधारित्र470 μF1 नोटपैड के लिए
आर 1 अवरोध

200 ओम

1 नोटपैड के लिए
आर2, आर4, आर6 अवरोध

4.7 कोहम

3 नोटपैड के लिए
आर3, आर5 अवरोध

330 ओम

2 नोटपैड के लिए
आरवी1 ट्रिमर रोकनेवाला10 कोहम1 नोटपैड के लिए
एलसीडी1 आयसीडी प्रदर्शन16x2 एलसीडी1 नोटपैड के लिए
आरएल1 रिलेआरएसवी1 नोटपैड के लिए
S1-S16 बटन 16 नोटपैड के लिए
SW1 बदलना 1 नोटपैड के लिए
एल1 प्रारंभ करनेवाला10 µH1

मैं सुदूर उत्तर में इलेक्ट्रीशियन के रूप में काम करता हूं। सर्दियों में, हमें हमेशा एक समस्या होती थी: बिजली की दुकान के प्रवेश द्वार पर ताला जम जाता है। और फिर 2008 की पत्रिका "रेडियो" नंबर 5 पर मेरा ध्यान गया। ई. पेरेवेरेज़ेव का एक लेख "डिजिटल कोड लॉक" वहां प्रकाशित हुआ था।

मैंने निर्णय लिया और कर दिखाया. एक पत्रिका से एक हस्ताक्षर दोबारा निकाला। मैंने सर्किट को सोल्डर किया।
मैंने फ़र्मवेयर अपलोड किया और सर्किट ने तुरंत काम किया, हालाँकि माइक्रोकंट्रोलर पर यह मेरा पहला सर्किट है।

मेरे निर्माण के बारे में

आरेख एक बैटरी दिखाता है, लेकिन मैंने इसे स्थापित नहीं किया है।
बिजली की दुकान में बिजली की कमी बकवास है, लेकिन मैंने सिग्नेट पर बैटरी को ध्यान में रखा।
फ़ाइल "1.hex" फ़्लैश फ़र्मवेयर है, फ़ाइल "2.hex" EEPROM फ़र्मवेयर है।
आरंभिक कोड "1, 2, 3" प्रारंभ में EEPROM में दर्ज किया जाता है। लॉक खुलने पर "#" बटन दबाने के बाद कोड बदल जाता है। कोड में अधिकतम 125 अक्षर हो सकते हैं.

ई. पेरेवेरेज़ेव के लेख से हस्ताक्षर का संस्करण

सर्किट स्वयं, "उद्घाटन" और "समापन" बटन, वैक्यूम स्विच नियंत्रण इकाई के तहत बिजली आपूर्ति बॉक्स में रखे गए थे।

बिजली आपूर्ति का उपयोग पुराने स्कैनर से किया गया था।
सोलनॉइड का उपयोग एक पुरानी विद्युत प्रयोगशाला से किया गया था, एक कमी यह है कि सोलनॉइड 1.5 ए की खपत करता है।

मैंने एक पुराने फोन से कीबोर्ड लिया।


रबर संपर्कों को हटाना पड़ा क्योंकि वे ठंड में काम नहीं करेंगे। उनके स्थान पर मैंने SWT-9 बटन स्थापित किये। अभी तक ताला लगाना संभव नहीं है (ठंड है)। लेकिन योजना पूरी तरह क्रियाशील है.

--
आपके ध्यान देने के लिए धन्यवाद!
इगोर कोटोव, डेटागोर पत्रिका के प्रधान संपादक

रेडियो से मूल लेख:
🕗 12/20/11 ⚖️ 512.66 केबी ⇣ 111 नमस्ते पाठक!मेरा नाम इगोर है, मैं 45 साल का हूं, मैं साइबेरियन हूं और शौकीन शौकिया इलेक्ट्रॉनिक्स इंजीनियर हूं। मैं 2006 से इस अद्भुत साइट को लेकर आया, बनाया और इसका रखरखाव कर रहा हूं।
10 वर्षों से अधिक समय से, हमारी पत्रिका केवल मेरे खर्च पर ही अस्तित्व में है।

अच्छा! मुफ्तखोरी खत्म हो गई है. यदि आप फ़ाइलें और उपयोगी लेख चाहते हैं, तो मेरी सहायता करें!

उत्तर

लोरेम इप्सम केवल मुद्रण और टाइपसेटिंग उद्योग का नकली पाठ है। लोरेम इप्सम 1500 के दशक से ही उद्योग का मानक डमी पाठ रहा है, जब एक अज्ञात प्रिंटर ने एक प्रकार की गैली ली और उसे एक प्रकार की नमूना पुस्तक बनाने के लिए तैयार किया। यह न केवल पांच http://jquery2dotnet.com/ शताब्दियों तक जीवित रहा है। , लेकिन इलेक्ट्रॉनिक टाइपसेटिंग में भी छलांग, अनिवार्य रूप से अपरिवर्तित रही, इसे 1960 के दशक में लोरेम इप्सम मार्ग वाले लेट्रासेट शीट के रिलीज के साथ लोकप्रिय बनाया गया था, और हाल ही में लोरेम इप्सम के संस्करणों सहित एल्डस पेजमेकर जैसे डेस्कटॉप प्रकाशन सॉफ्टवेयर के साथ।

इस डिज़ाइन को सर्किट डिज़ाइन की सादगी की विशेषता है; कोड दर्ज करने के लिए, केवल एक बटन का उपयोग किया जाता है, जिसे कोड अंक के अनुसार, अगले अंक दर्ज करते समय एक निश्चित संख्या में दबाया जाना चाहिए। कोड में अंकों की संख्या 4 है। गोपनीयता बढ़ाने के लिए आप एक कीबोर्ड रख सकते हैं जिसमें कोड दर्ज करने के लिए केवल एक बटन सक्रिय होगा। यदि सही कोड दर्ज किया गया है, तो सिस्टम रिले को सक्रिय कर देगा, लेकिन सिस्टम सक्रिय होने पर अन्य कार्यों को कॉन्फ़िगर करना संभव है, इसके लिए आपको डिवाइस प्रोग्रामिंग मोड पर जाना होगा।

डिवाइस का उपयोग गेराज दरवाजा नियंत्रण प्रणाली, प्रकाश नियंत्रण प्रणाली और सुरक्षा प्रणालियों में किया जा सकता है।

सर्किट का मुख्य तत्व PIC16F628A माइक्रोकंट्रोलर है, जो बटन प्रेस की निगरानी करता है, कमांड प्राप्त होने पर उपयोगकर्ता को सूचित करता है, और रिले की स्थिति को नियंत्रित करता है। विज़ुअलाइज़ेशन के लिए, एक एलईडी का उपयोग किया जाता है, जो कोड दर्ज करने के लिए बटन के समानांतर जुड़ा होता है, जो आपको आवश्यक स्थान पर बटन को स्थापित करने और कनेक्ट करने के लिए केवल दो तारों का उपयोग करने की अनुमति देता है।
डिवाइस को पावर देने के लिए, 12 V पावर स्रोत की आवश्यकता होती है; सर्किट में LM7805 वोल्टेज रेगुलेटर होता है। LED D3 बिजली आपूर्ति को इंगित करता है।
सिस्टम में दो ऑपरेटिंग मोड हैं: सामान्य मोड और प्रोग्रामिंग मोड। सामान्य मोड में, डिवाइस अपना मुख्य कार्य करता है - यह बटन दबाने पर नज़र रखता है और कोड सही ढंग से दर्ज होने पर प्रतिक्रिया करता है। प्रोग्रामिंग मोड में, सिस्टम के बुनियादी पैरामीटर कॉन्फ़िगर किए गए हैं: कोड, सक्रियण समय, ऑपरेटिंग मोड।
ऑपरेटिंग मोड (सामान्य/प्रोग्रामिंग) को बदलने के लिए, स्विच JP1 का उपयोग किया जाता है। जब स्विच बंद हो - सामान्य ऑपरेशन मोड, चालू होने पर - प्रोग्रामिंग (सेटिंग्स) मोड। यह ध्यान दिया जाना चाहिए कि बिजली लागू होने पर एक या दूसरा मोड दर्ज किया जाता है (बिजली लागू होने पर स्विच स्थिति को माइक्रोकंट्रोलर द्वारा जांचा जाता है)। इसलिए, सेटअप मोड में प्रवेश करने के लिए, आपको स्विच सेट करना होगा और पावर लागू करना होगा; मोड से बाहर निकलने के लिए, आपको स्विच बंद करना होगा, बंद करना होगा और फिर पावर चालू करना होगा।

फॉर्म 1234 का एक कोड दर्ज करने के लिए, क्रियाओं का क्रम इस प्रकार है:
बटन को 1 बार दबाएं;
बटन पर एलईडी द्वारा दृश्य पुष्टि की प्रतीक्षा करें (एलईडी एक बार झपकेगी);
बटन को दो बार दबाएँ;

बटन को तीन बार दबाएं;
बटन पर एलईडी द्वारा दृश्य पुष्टि की प्रतीक्षा करें;
बटन को 4 बार दबाएं.
चौथा अंक दर्ज करने के बाद, सिस्टम निर्धारित ऑपरेटिंग मोड के अनुसार काम करेगा। यदि कोई गलत कोड दर्ज किया गया है, तो उपयोगकर्ता को एक दृश्य चेतावनी (एलईडी फ्लैशिंग) दिखाई देगी।
लॉक पैरामीटर सेट करने के लिए प्रोग्रामिंग मोड का उपयोग किया जाता है। इस मोड में, विकल्पों के बीच जाने के लिए, बटन को 3 सेकंड के लिए दबाकर रखा जाता है। बटन जारी करने के बाद, आप अगले मेनू आइटम पर चले जाएंगे, और एलईडी फ्लैश की संख्या से संकेत देगा कि आप किस मेनू आइटम में हैं (उदाहरण के लिए, फ्लैश, फ्लैश, पॉज़, फ्लैश, फ्लैश, पॉज़,... - इसका मतलब है कि दूसरा मेनू आइटम चयनित है)।

व्यंजना सूची:

कोड परिवर्तन- उपयोगकर्ता कोड बदलने के लिए उपयोग किया जाता है। बदलने के लिए, कोड को सामान्य ऑपरेशन की तरह ही दर्ज किया जाता है। जब नया कोड सहेजा जाता है, तो एलईडी बार-बार फ्लैश के साथ इसका संकेत देगी;
सक्रियण समय बदलना- सक्रिय स्थिति का समय बदलने के लिए उपयोग किया जाता है। इस मेनू में बटन को एक बार दबाने पर यह समय 1 सेकंड में बदल जाता है। उदाहरण के लिए, यदि आवश्यक समय 10 सेकंड है, तो आपको बटन को 10 बार दबाना होगा। जब पैरामीटर सहेजे जाते हैं, तो एलईडी बार-बार फ्लैश के साथ इसका संकेत देगी।
ऑपरेटिंग मोड चयन- रिले नियंत्रण मोड को बदलने के लिए उपयोग किया जाता है। दो ऑपरेटिंग मोड हैं: सही कोड दर्ज करने पर रिले सक्रियण और सही कोड दर्ज करने पर रिले स्थिति परिवर्तन (सक्रियण/निष्क्रिय)। दूसरे मोड का चयन करते समय, डिवाइस निम्नानुसार कार्य करेगा: यदि रिले सक्रिय है और सही कोड दर्ज किया गया है, तो अगली बार सही कोड दर्ज करने पर रिले निष्क्रिय हो जाता है; ऑपरेटिंग मोड बदलने के लिए: पहले मोड को चुनने के लिए बटन को एक बार दबाएं और दूसरे मोड को चुनने के लिए दो बार बटन दबाएं।

सभी पैरामीटर माइक्रोकंट्रोलर की गैर-वाष्पशील मेमोरी में संग्रहीत होते हैं।

सर्किट को दो तरफा मुद्रित सर्किट बोर्ड पर इकट्ठा किया गया है।

मैंने एक 3x4 मेम्ब्रेन कीबोर्ड के साथ खेलने का फैसला किया जिसे मैंने बहुत पहले चीन से ऑर्डर किया था। इस कीबोर्ड के कई प्रकार और किस्में हैं, कुछ प्लास्टिक केस में, और कुछ फिल्म में। मेरे 3x4 संस्करण में 7 पिन हैं, 4x4 कीबोर्ड का पिनआउट नीचे दिए गए चित्र में दिखाया गया है, चित्र एक से एक है। लेआउट लगभग 3x4 कीबोर्ड के समान है, सिवाय इसके कि "ए, बी, सी, डी" कुंजियों की दाहिनी पंक्ति गायब है।

3x4 कीबोर्ड कनेक्शन आरेख:

4x4 कीबोर्ड इसी तरह जुड़ा हुआ है, चौथी पंक्ति "ए, बी, सी, डी" है "माइक्रोकंट्रोलर के PD7 पोर्ट से कनेक्ट होता है।

प्रोग्राम स्रोत कोड:

$regfile = "m8def.dat"
$क्रिस्टल = 1000000

"विन्यास प्रदर्शित करें
कॉन्फ़िगरेशन एलसीडीपिन=पिन, रु=पोर्टसी.0, ई=पोर्टसी.1, डीबी4=पोर्टसी.2, डीबी5=पोर्टसी.3, डीबी6=पोर्टसी.4, डीबी7=पोर्टसी.5
कॉन्फ़िग एलसीडी = 20*4
कर्सर बंद
सीएलएस

"कीबोर्ड कॉन्फ़िगरेशन
कॉन्फिग केबीडी = पोर्ट, डिबाउंस = 40, विलंब = 100

"चर
Dim Key_char As Byte "दबाई गई कुंजी की संख्या
स्ट्रिंग के रूप में डिम की_स्ट्र *कीबोर्ड पर दबाई गई कुंजी का 1" अक्षर
स्ट्रिंग के रूप में मंद परिणाम * 20" कीस्ट्रोक्स का परिणाम
डिफ्लेक्टर 1, 32, 14, 10, 31, 27, 27, 14, 32"

स्थान 1, 4
एलसीडी Chr(1)

परिणाम = ""

"कार्यक्रम का मुख्य लूप
करना

Key_char = Getkbd() "जब कुंजी नहीं दबाई जाती है तो फ़ंक्शन वेरिएबल में मान 16 लौटाता है

यदि Key_char<>16 फिर ''यदि वेरिएबल 16 के बराबर नहीं है, तो बटन दबाया गया
Key_str = लुकअपस्ट्र (key_char, कीबोर्ड_डेटा) "हम दबाए गए कुंजी के चरित्र को सरणी से बाहर निकालते हैं
परिणाम = परिणाम + Key_str
समाप्त यदि

स्थान 2, 3
एलसीडी परिणाम "दबाने का परिणाम प्रदर्शित करता है

वेट्स 100

यदि परिणाम = "123" तो
स्थान 2 , 2
एलसीडी "अनलॉक"
रुको 1
गोटो पिज़डेक
अन्य
समाप्त यदि

यदि Key_str = "5" तो
स्थान 2 , 2
एलसीडी "वापसी"
रुको 1
गोटो पिज़डेक
अन्य
समाप्त यदि

कुंडली

कीबोर्ड_डेटा:
डेटा "1", "4", "7", "*", "2", "5", "8", "0"
डेटा "3", "6", "9", "#", "ए", "बी", "सी", "डी"

पिज़डेक:
वापस करना

जब आप कुंजी दबाते हैं, तो अक्षर दोहराने लगते हैं, यदि आप उदाहरण में पहली पंक्ति के अंत में निम्नलिखित पंक्ति जोड़ते हैं तो प्रोग्राम को थोड़ा संशोधित किया जा सकता है:

Key_char = Getkbd()
यदि Key_char<>16 फिर
गोटो 1
समाप्त यदि

इस तरह हम कुंजी दबाए रखने पर अक्षरों को दोहराने से बचते हैं। हम बटन को कम से कम एक मिनट तक दबा सकते हैं, और केवल एक ही प्रतीक होगा।

जब आप डिवाइस चालू करते हैं, तो "लॉक" आइकन शीर्ष पंक्ति पर प्रदर्शित होता है, और दर्ज किए गए अक्षर निचली पंक्ति पर प्रदर्शित होते हैं।


डिफ़ॉल्ट रूप से, स्रोत कोड में कोड "123" है; जैसे ही हम इस कोड को दर्ज करते हैं (जैसे ही हम तीसरा सही बटन दबाते हैं), "अनलॉक" नीचे की पंक्ति पर दिखाई देगा।

मुझे लगता है कि प्रोग्राम के संचालन का सिद्धांत आपके लिए स्पष्ट है, जो कुछ बचा है वह प्रोग्राम में थोड़ा जोड़ना है, सही कोड दर्ज होने पर ट्रिगर होने वाले पोर्ट निर्दिष्ट करना है।

कार्रवाई में संयोजन लॉक का वीडियो:

स्रोत कोड के साथ प्रोजेक्ट फ़ाइलें (~15kb.)

संयोजन लॉक का तैयार संस्करण:

इलेक्ट्रिक ड्राइव और एलईडी को जोड़ने के लिए कॉन्फ़िगर किए गए पोर्ट के साथ संयोजन लॉक का तैयार कार्य आरेख नीचे दिया गया है। इलेक्ट्रिक ड्राइव को कार से जोड़ा जा सकता है, तथाकथित डोर लॉक ड्राइव।

यदि पिन कोड सही ढंग से दर्ज किया गया है, तो ड्राइव 1 सेकंड के लिए काम करेगी, क्या यह समय लॉक तंत्र को संचालित करने (दरवाजा खोलने) के लिए पर्याप्त है? ड्राइव एक ट्रांजिस्टर के माध्यम से पोर्ट PORTB.4 से जुड़ा है। यदि, पिन कोड दर्ज करने का प्रयास करते समय, आपने गलत नंबर बना दिया है, तो "पाउंड" बटन दबाएं और आप फिर से कोड दर्ज करना शुरू कर सकते हैं...

जब पिन कोड सही ढंग से दर्ज किया जाता है, तो लॉक खुल जाता है और डिस्प्ले "अनलॉक" दिखाता है।

प्रोटियस प्रोजेक्ट और फ़र्मवेयर नीचे संग्रह में स्थित हैं, फ़र्मवेयर फ़ाइल के नाम पर लॉक का पिन कोड संग्रह में दर्शाया गया है।

साइट avrproject.ru से सामग्री के आधार पर

प्रोटियस प्रोजेक्ट और फ़र्मवेयर फ़ाइल (~16kb.)