विषयसूची:
वीडियो: जेनेरिक स्विच हाईजैकर: ३ कदम
2024 लेखक: John Day | [email protected]. अंतिम बार संशोधित: 2024-01-30 09:23
यह आलेख वर्णन करता है कि भौतिक स्विचेस को नियंत्रित करने वाले ठोस अवस्था वाले माइक्रोकंट्रोलर डिवाइस को कैसे बनाया जाए। यह मानते हुए कि आपके पास एक माइक्रोकंट्रोलर प्रोग्रामर है, (4$ या तो) बनाना बहुत सस्ता है। सर्किट ही तुच्छ जटिलता का है।
यह परियोजना बहुत सरल है, और इसमें कोई आश्चर्यजनक नई तकनीक शामिल नहीं है। यह एक अच्छे पहले माइक्रोकंट्रोलर प्रोजेक्ट के रूप में काम करेगा। इस लेख में आपको असेंबली सोर्स कोड प्रदान किया जाएगा। मेरे पास काम पर एक बहुत अच्छा बॉस है। कभी-कभी हम एक-दूसरे पर प्रैक्टिकल जोक्स खेलना पसंद करते हैं। दुर्भाग्य से उसके लिए, मैं एक वैज्ञानिक हूं। यहां मेरा उद्देश्य कार्यस्थल में विभिन्न उपकरणों को कम समय के लिए रहस्यमय तरीके से चालू करना है। रेडियो, शोर करने वाले प्रिंटर, यहां तक कि उन कष्टप्रद संगीतमय जन्मदिन कार्ड भी किसी सामान्य वस्तु में छिपे होते हैं। इसके अलावा, परियोजना इस बात का उदाहरण है कि आप AVR के साथ भारी भार को कैसे नियंत्रित करते हैं, जबकि आउटपुट पिन खुद से निपट सकते हैं। यह चीजों की एक विस्तृत विविधता है, क्योंकि आउटपुट पिन आपको केवल एक छोटा वोल्टेज और बहुत सीमित करंट देते हैं। वास्तव में कुछ बहुत भारी भार को नियंत्रित करने के लिए इस सर्किट को रिले के साथ विस्तारित किया जा सकता है।
चरण 1: डिजाइन और सर्किट।
इस परियोजना के लिए, आप लगभग किसी भी माइक्रोकंट्रोलर, 5v वोल्टेज नियामक और NPN ट्रांजिस्टर का उपयोग कर सकते हैं। मैंनें इस्तेमाल किया:
1x ATtiny26L-8PU (~2$) 1x TL780 5v वोल्टेज नियामक (~ 0.7 $) 1x N2222 ट्रांजिस्टर (~ 0.07 $) 1x 9v बैटरी, या अंतरिक्ष बचाने के लिए 12v रिमोट कंट्रोल बैटरी … और निश्चित रूप से मेरा भरोसेमंद STK500, अब ZIF के साथ सॉकेट जोड़े गए! मूल डिजाइन यह है: माइक्रोकंट्रोलर दो टाइमिंग लूप से गुजरता है। डिवाइस को कब चालू करना है, यह निर्धारित करने के लिए एक लंबा लूप और डिवाइस को कितने समय तक चालू रखना है, यह निर्धारित करने के लिए एक छोटा लूप। जब परेशानी का समय होता है, तो माइक्रोकंट्रोलर एक लॉजिक हाई आउट पिन 14 (पोर्टा का कम से कम महत्वपूर्ण बिट) भेजता है। इससे ट्रांजिस्टर जल जाता है। यदि आपने क्लैंप को स्विच पर लीड से जोड़ा है, तो यह स्विच में प्रतिरोध को अचानक बहुत उच्च से 1 ओम से कम करने का कारण बनता है, जो कि अधिकांश उपकरणों के लिए स्विच पर विचार करने के लिए पर्याप्त है। ध्यान रखें कि ट्रांजिस्टर भी डायोड होते हैं, इसलिए यदि यह काम नहीं करता है … क्लैंप की ध्रुवीयता शायद गलत है, उन्हें स्विच करें! साथ ही, इस उपकरण के लिए एक अच्छी 9v बैटरी की आवश्यकता होती है, मान लीजिए कि 8v से अधिक क्षमता शेष है … इसके अलावा यह अधिक शक्ति का उपयोग नहीं करता है। बहुत सारे अप्रयुक्त पिन हैं, इसलिए निश्चित रूप से आप अधिक अराजकता के लिए अधिक स्विच को नियंत्रित करने के लिए उनका उपयोग कर सकते हैं, लेकिन यह मेरे उद्देश्यों के लिए पर्याप्त था। अगला चरण वह स्रोत कोड है जिसे मैंने इस चीज़ को आगे बढ़ाने के लिए लिखा था। "चालू" और "बंद" राज्यों के लिए डिफ़ॉल्ट लंबाई क्रमशः लगभग 10 सेकंड और 13 मिनट है। इन मानों को कैसे बदला जाए, इस पर कोड में टिप्पणियाँ हैं। अंत में, कृपया टाइमर को ट्वीक करने के लिए "एनओपी" फ़ंक्शन (यह एक सीपीयू चक्र कुछ भी नहीं कर रहा है) के व्यापक उपयोग को क्षमा करें। यह सुरुचिपूर्ण है क्योंकि यह rjmp फ़ंक्शन को तोड़ सकता है यदि आप इस बात से सावधान नहीं हैं कि आप कितने का उपयोग करते हैं!
चरण 2: स्रोत कोड
प्रारंभ:
. INCLUDE "tn26def.inc"; परिभाषा फ़ाइल। यदि आपको एक प्रति की आवश्यकता है तो इसके लिए Google। clr r30 clr r29 clr r28 clr r27 ldi r28, 0b00000000 ldi r27, 0b11111111 ldi r26, 0b00000000 clr r25 आउट DDRA, r27 आउट PORTA, r28 टाइमर: inc r30 nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop nop एनओपी एनओपी एनओपी एनओपी सीपीआई आर 30, 0 बी 11111111 ब्रेक टाइमर 2 आरजेएमपी टाइमर टाइमर 2: एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी नोप एनओपी एनओपी एनओपी एनओपी इंक TIMER2 TIMERjmp r29 cpi1113 r29 एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी इंक r25 cpi r25, 0b11111111; "बंद" समय को कम करने के लिए इस संख्या को कम करें ब्रेक FUNC rjmp टाइमर cpi: आरपी नं, 0x00 ब्रेक FUNC2 dec r28 clr r30 clr r29 clr r25 आउट PORTA, r28 rjmp TIMER FUNC2: nop nop inc r28 out PORTA, r28 clr r25 clr r30 clr r4 nop TIMER nop TIMER nop TIMER TIMER nop4 में एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी सीपीआई आर 30, 0 बी 11111111 ब्रेक TIMER5 आरजेएमपी TIMER4 TIMER5: एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी एनओपी इंक आर 29 सीपीआई आर 29, 0 बी 11111 111 ब्रेक TIMER6 rjmp TIMER4 TIMER6: inc r25 cpi r25, 0b00000011; "चालू" समय बढ़ाने के लिए इस संख्या को बढ़ाएँ ब्रेक FUNC rjmp TIMER4
चरण 3: अंतिम नोट
मज़े करो, लेकिन याद रखें कि ट्रांजिस्टर की सीमाएँ होती हैं कि आप इसके माध्यम से कितनी शक्ति पंप कर सकते हैं। इसका मतलब है कि कोई मुख्य वोल्टेज नहीं है! इस तथ्य के अलावा कि यह ट्रांजिस्टर को बहुत तेजी से अधिभारित करेगा, यह डिवाइस वैकल्पिक संकेतों को अच्छी तरह से नियंत्रित नहीं करेगा … जब तक कि आप नीचे वर्णित संशोधन लागू नहीं करते हैं * और * एक रिले जोड़ें: यदि क्लैंप ध्रुवीयता के बारे में चिंता करने से आप परेशान होते हैं, तो बस एक दूसरे ट्रांजिस्टर में तार बेस प्लेट पहले ट्रांजिस्टर के समान स्रोत से जुड़ी होती है, लेकिन विपरीत विन्यास में कलेक्टर और एमिटर के साथ। इस तरह, कोई फर्क नहीं पड़ता कि आप क्लैंप को कैसे संलग्न करते हैं, माइक्रोकंट्रोलर से निकलने वाला एक तर्क हमेशा स्विच को "चालू" करेगा। ध्यान रखें कि इस सिस्टम में लीकेज करंट कुछ संवेदनशील स्विच जैसे कीबोर्ड मैट्रिस को सक्रिय करने के लिए पर्याप्त हो सकता है, आपको इस एप्लिकेशन के लिए श्रृंखला में एक रोकनेवाला जोड़ने की आवश्यकता हो सकती है। याद रखें कि आप बैटरी का उपयोग करने के बजाय लक्ष्य डिवाइस से बिजली ले सकते हैं। अंत में … मैंने डिवाइस को एक प्राचीन लेखा कैलकुलेटर के अंदर स्थापित किया, जिस प्रकार में प्रिंट फ़ंक्शन होते हैं। मैंने पेपरक्लिप का उपयोग करके कीपैड मैट्रिक्स को रिवर्स-इंजीनियर किया, यह निर्धारित करने के लिए कि कौन सा आईसी पिन कनेक्ट होने पर पेपर फीड का कारण बनता है, और डिवाइस के साथ सही पिन को एक साथ जोड़ता है। फिर, मैंने उस स्विच को अक्षम कर दिया जो आपको प्रिंट फ़ंक्शन को बंद करने की अनुमति देता है। मैं मशीन को ठीक से विकृत मानता हूं। यह हर १० मिनट में, १० सेकंड के लिए, जब भी उपकरण चालू होता है, काफी शोरगुल वाला पेपर फीड चालू करता है। इसने उन अति-अप्रिय संगीतमय जन्मदिन कार्डों में से एक सर्किट के साथ भी अच्छा काम किया। मेरा कार्यस्थल अब और अधिक विचित्र है!
सिफारिश की:
घरेलू उपकरणों के लिए टचलेस स्विच -- बिना किसी स्विच के अपने घरेलू उपकरणों को नियंत्रित करें: 4 कदम
घरेलू उपकरणों के लिए टचलेस स्विच || बिना किसी स्विच के अपने घरेलू उपकरणों को नियंत्रित करें: यह घरेलू उपकरणों के लिए एक टचलेस स्विच है। आप इसे किसी भी सार्वजनिक स्थान पर उपयोग कर सकते हैं ताकि किसी भी वायरस से लड़ने में मदद मिल सके। Op-Amp और LDR द्वारा निर्मित डार्क सेंसर सर्किट पर आधारित सर्किट। इस सर्किट का दूसरा महत्वपूर्ण हिस्सा एसआर फ्लिप-फ्लॉप सीक्वेंस के साथ
Arduino 1-वायर जेनेरिक क्लाइंट/स्लेव डिवाइस (सेंसर): 4 कदम
Arduino 1-वायर जेनेरिक क्लाइंट / स्लेव डिवाइस (सेंसर): कृपया स्थिति और उपलब्ध पुस्तकालयों के बारे में अधिक जानकारी प्राप्त करने के लिए Arduino 1-वायर डिस्प्ले (144 वर्ण) बनाने के तरीके के बारे में मेरे निर्देश का परिचय और चरण 2 पढ़ें। जैसा कि वहां बताया गया है, हम वनवायर-हब लाइब्रेरी का उपयोग करेंगे
जेनेरिक 433 मेगाहर्ट्ज आरएफ मॉड्यूल के साथ DIY वॉकी-टॉकी: 4 कदम
जेनेरिक 433 मेगाहर्ट्ज आरएफ मॉड्यूल के साथ DIY वॉकी-टॉकी: इस परियोजना में मैं आपको दिखाऊंगा कि कार्यात्मक वॉकी-टॉकी बनाने के लिए ईबे से जेनेरिक 433 मेगाहर्ट्ज आरएफ मॉड्यूल का उपयोग कैसे करें। इसका मतलब है कि हम विभिन्न आरएफ मॉड्यूल की तुलना करेंगे, कक्षा डी एम्पलीफायर के बारे में कुछ सीखेंगे और अंत में वॉकी-टॉकी का निर्माण करेंगे।
IOT123 - D1M ब्लॉक - जेनेरिक असेंबली: 7 कदम
IOT123 - D1M BLOCKS - जेनेरिक असेंबली: जब आपकी परियोजनाओं के लिए प्रोटोटाइप या सर्किट बनाते हैं, एक बार घटकों को एक पीसीबी में मिलाप किया जाता है, तो क्षति डी-सोल्डरिंग के कारण अन्य सर्किटों में इसे पुन: प्रयोज्य करने की एक सीमा होती है। यहीं पर D1M BLOCKS आते हैं। वे एक केसिंग / स्टैकिंग सिस्टम f
तीसरी पीढ़ी के आइपॉड नैनो को चार्ज करने के लिए जेनेरिक यूएसबी कार चार्जर को संशोधित करें: 4 कदम
तीसरी पीढ़ी के आइपॉड नैनो को चार्ज करने के लिए जेनेरिक यूएसबी कार चार्जर को संशोधित करें: मेरे पास तीसरी पीढ़ी का आईपॉड नैनो है। यह पता लगाता है कि यह कनेक्टेड है, लेकिन एक सामान्य कार->USB चार्ज एडॉप्टर से चार्ज करने से इनकार करता है, लेकिन मुझे विशेष रूप से iPod के लिए एक एडेप्टर केबल या कोई अन्य चार्जर खरीदना पसंद नहीं था, इसलिए मैंने एक को संशोधित किया जिसे मैंने पहले ही बदल दिया था