विज्ञापन
कभी आपने सोचा था कि आपकी अपनी नाइट इंडस्ट्रीज दो हजार (KITT) कार है - आप जानते हैं, नाइट राइडर से? एक एलईडी स्कैनर का निर्माण करके अपने सपने को वास्तविकता के करीब एक कदम बनाएं! यहाँ अंतिम परिणाम है:
जिसकी आपको जरूरत है
इस परियोजना के लिए बहुत अधिक भागों की आवश्यकता नहीं है, और आपके पास उनमें से कई पहले से ही हो सकते हैं:
- 1 एक्स Arduino संयुक्त राष्ट्र संघ या इसी तरह
- 1 एक्स ब्रेडबोर्ड
- 8 x लाल एल ई डी
- 8 x 220 ओम प्रतिरोधक
- 1 x 10k ओम पोटेंशियोमीटर
- पुरुष से पुरुष तक तार-तार होते हैं
अगर आप ए Arduino स्टार्टर किट एक Arduino स्टार्टर किट में क्या शामिल है? [MakeUseOf बताते हैं]मैंने पहले भी MakeUseOf पर यहां Arduino ओपन-सोर्स हार्डवेयर पेश किया है, लेकिन आपको इससे बाहर कुछ बनाने और वास्तव में शुरू करने के लिए वास्तविक Arduino से अधिक की आवश्यकता होगी। Arduino "स्टार्टर किट" हैं ... अधिक पढ़ें इसकी संभावना है कि आपके पास इन सभी भागों में हैं (आप स्टार्टर किट से क्या बना सकते हैं? शुरुआती के लिए 5 अनोखे Arduino प्रोजेक्ट्स आप सिर्फ एक स्टार्टर किट के साथ बना सकते हैं अधिक पढ़ें ).
लगभग कोई भी Arduino काम करेगा, बशर्ते उसके पास आठ उपलब्ध पिन हों (कभी भी Arduino का इस्तेमाल नहीं किया है?
यहाँ से शुरुआत करें Arduino के साथ शुरुआत करना: एक शुरुआती गाइडArduino एक ओपन-सोर्स इलेक्ट्रॉनिक्स प्रोटोटाइपिंग प्लेटफॉर्म है जो लचीले, आसानी से उपयोग होने वाले हार्डवेयर और सॉफ्टवेयर पर आधारित है। यह कलाकारों, डिजाइनरों, शौकीनों और इंटरैक्टिव वस्तुओं या वातावरण बनाने में रुचि रखने वाले किसी भी व्यक्ति के लिए अभिप्रेत है। अधिक पढ़ें ). आप ऐसा कर सकते हैं एक Shift रजिस्टर का उपयोग करें Arduino प्रोग्रामिंग - शिफ्ट रजिस्टरों के साथ खेलना (a.k.a यहां तक कि अधिक एल ई डी)आज मैं आपको शिफ्ट रजिस्टरों के बारे में थोड़ा-बहुत सिखाने का प्रयास करूंगा। ये Arduino प्रोग्रामिंग का एक महत्वपूर्ण हिस्सा हैं, मूल रूप से, क्योंकि वे बदले में आपके द्वारा उपयोग किए जाने वाले आउटपुट की संख्या का विस्तार कर सकते हैं ... अधिक पढ़ें एल ई डी को नियंत्रित करने के लिए, हालांकि इस परियोजना के लिए इसकी आवश्यकता नहीं है, क्योंकि अरुडिनो में पर्याप्त पिन हैं।योजना बनाएं
यह एक बहुत ही सरल परियोजना है। जबकि यह बड़ी संख्या में तारों से जटिल लग सकता है, प्रत्येक व्यक्ति का हिस्सा बहुत सरल है। प्रत्येक लाइट एमिटिंग डायोड (LED) इसके स्वयं के Arduino पिन से जुड़ा होता है। इसका मतलब है कि प्रत्येक एलईडी को व्यक्तिगत रूप से चालू और बंद किया जा सकता है। एक पोटेंशियोमीटर पिन में अरुडिनो एनालॉग से जुड़ा है, जिसका उपयोग स्कैनर की गति को समायोजित करने के लिए किया जाएगा।
सर्किट
जमीन के लिए पोटेंशियोमीटर के बाहरी बाएँ पिन (सामने की ओर, नीचे पिन के साथ) को कनेक्ट करें। विपरीत बाहरी पिन को + 5v से कनेक्ट करें। यदि यह सही ढंग से काम नहीं करता है, तो इन पिनों को उल्टा कर दें। 2 में मध्य पिन को Arduino एनालॉग से कनेक्ट करें।
आठ के माध्यम से एक से डिजिटल पिन करने के लिए प्रत्येक एलईडी के एनोड (लंबे पैर) कनेक्ट करें। Arduino ग्राउंड में कैथोड्स (छोटे पैर) को कनेक्ट करें।
कोड
एक नया स्केच बनाएं और इसे "नाइट राइडर" के रूप में सहेजें। यहाँ कोड है:
const int leds [] = {1,2,3,4,5,6,7,8}; // एलईडी पिन। const int TotalLeds = 8; इंट टाइम = 50; // डिफ़ॉल्ट गति शून्य सेटअप () {// आरंभिक सभी आउटपुट (int i = 0) के लिए; i <= कुल; ++ i) {pinMode (leds [i], OUTPUT); } } शून्य लूप () {के लिए (इंट i = 0; i 0; --i) {// बाएं से दाएं समय स्कैन करें = analogRead (2); digitalWrite (एलईडी [i], हाई); विलम्ब); digitalWrite (एलईडी [i - 1], हाई); विलम्ब); digitalWrite (एलईडी [i], LOW); } }
इसे तोड़ दो। प्रत्येक एलईडी पिन एक सरणी में संग्रहीत किया जाता है:
const int leds [] = {1,2,3,4,5,6,7,8};
एक सरणी अनिवार्य रूप से संबंधित वस्तुओं का एक संग्रह है। इन तत्वों को स्थिर ("कॉन्स्ट") के रूप में परिभाषित किया गया है, जिसका अर्थ है कि उन्हें बाद में नहीं बदला जा सकता है। आपको एक स्थिरांक का उपयोग करने की आवश्यकता नहीं है (यदि आप "कास्ट" हटाते हैं तो कोड पूरी तरह से काम करेगा), हालांकि यह अनुशंसित है।
एक वर्ग के तत्व वर्ग कोष्ठक ("[]") और एक पूर्णांक का उपयोग करके पहुँचा जाता है जिसे एक सूचकांक कहा जाता है। इंडेक्स शून्य पर शुरू होता है, इसलिए "एलईड्स [2]" सरणी में तीसरा तत्व लौटाएगा - पिन 3। Arrays लिखने के लिए कोड को तेज बनाता है और पढ़ने में आसान है, वे कंप्यूटर को कड़ी मेहनत करते हैं!
लूप के लिए आउटपुट के रूप में प्रत्येक पिन को सेटअप करने के लिए उपयोग किया जाता है:
for (int i = 0; i <= कुल; ++ i) {pinMode (leds [i], OUTPUT); }
यह कोड "सेटअप ()" फ़ंक्शन के अंदर है, क्योंकि इसे केवल कार्यक्रम की शुरुआत में एक बार चलाने की आवश्यकता है। छोरों के लिए बहुत उपयोगी हैं। वे आपको हर बार एक अलग मूल्य के साथ एक ही कोड को बार-बार चलाने की अनुमति देते हैं। वे सरणियों के साथ काम करने के लिए एकदम सही हैं। एक पूर्णांक "i" घोषित किया गया है, और लूप के अंदर केवल कोड इस चर को एक्सेस कर सकता है (इसे "स्कोप" के रूप में जाना जाता है)। I का मान शून्य से शुरू होता है, और लूप के प्रत्येक पुनरावृत्ति के लिए, मुझे एक से बढ़ा दिया जाता है। एक बार जब i का मान "TotalLeds" चर से कम या बराबर होता है, तो लूप "ब्रेक" (रुक जाता है) होता है।
I के मान का उपयोग "लीड्स" एरे तक पहुँचने के लिए किया जाता है। यह लूप एरे में प्रत्येक तत्व को एक्सेस करता है और इसे आउटपुट के रूप में कॉन्फ़िगर करता है। आप स्वयं आठ बार “pinMode (पिन, OUTPUT)” टाइप कर सकते हैं, लेकिन जब आप तीन लिख सकते हैं तो आठ लाइनें क्यों लिखें?
जबकि कुछ प्रोग्रामिंग लैंग्वेज आपको बता सकती हैं कि ऐरे में कितने तत्व हैं (आमतौर पर ऐरेक्लो की तरह सिंटैक्स के साथ), अरडूइनो इसे इतना सरल नहीं बनाता (इसमें थोड़ा और मैथ्स शामिल होता है)। जैसा कि सरणी में तत्वों की संख्या पहले से ही ज्ञात है, यह कोई समस्या नहीं है।

मुख्य लूप के अंदर (शून्य लूप ()) छोरों के लिए दो और हैं। पहले एल ई डी चालू करता है और फिर 1 - 8 से रवाना होता है। दूसरा लूप एल ई डी को सेट करता है और फिर 8 - 1 से ऑफ होता है। ध्यान दें कि वर्तमान पिन कैसे सेट किया गया है, और वर्तमान पिन प्लस एक पर भी सेट है। यह सुनिश्चित करता है कि एक ही समय में हमेशा दो एलईडी होते हैं, जिससे स्कैनर अधिक यथार्थवादी दिखता है।
प्रत्येक लूप की शुरुआत में, पॉट का मान "समय" चर में पढ़ा जाता है:
समय = analogRead (2);
यह प्रत्येक लूप के अंदर एक बार दो बार किया जाता है। इसे लगातार जाँचने और अद्यतन करने की आवश्यकता है। यदि यह छोरों के बाहर था, तो यह अभी भी काम करेगा, हालांकि इसमें थोड़ी देरी होगी - यह केवल एक बार चलेगा जब एक लूप निष्पादित हो जाएगा। बर्तन एनालॉग हैं, इसलिए "एनालॉगरेड (पिन)" का उपयोग क्यों किया जाता है। यह शून्य (न्यूनतम) और 1023 (अधिकतम) के बीच मान लौटाता है। Arduino इन मूल्यों को कुछ और उपयोगी बनाने में सक्षम है, हालांकि वे इस उपयोग के मामले के लिए एकदम सही हैं।
बदलते एल ई डी (या स्कैनर की गति) के बीच देरी मिलीसेकंड (1/1000 सेकंड) में सेट की जाती है, इसलिए अधिकतम समय 1 सेकंड से अधिक है।
उन्नत स्कैनर

अब जब आप मूल बातें जानते हैं, तो कुछ और जटिल देखते हैं। यह स्कैनर बाहर से शुरू और काम करने वाले जोड़े में एलईडी को रोशनी देगा। फिर यह इसे उल्टा कर देगा और अंदर से बाहर जोड़े में जाएगा। यहाँ कोड है:
const int leds [] = {1,2,3,4,5,6,7,8}; // एलईडी पिन। const int TotalLeds = 8; const int आधाL = 4; इंट टाइम = 50; // डिफ़ॉल्ट गति शून्य सेटअप () {// आरंभिक सभी आउटपुट (int i = 0) के लिए; i <= कुल; ++ i) {pinMode (leds [i], OUTPUT); } } शून्य लूप () {के लिए (इंट i = 0; i 0; --i) {// समय के साथ जोड़े के अंदर स्कैन करें = analogRead (2); digitalWrite (एलईडी [i], हाई); digitalWrite (leds [(TotalLeds - i) - 1], HIGH); विलम्ब); digitalWrite (एलईडी [i], LOW); digitalWrite (leds [(TotalLeds - i) - 1], LOW); विलम्ब); } }
यह कोड थोड़ा अधिक जटिल है। ध्यान दें कि दोनों लूप्स शून्य से "आधे भाग - 1" (3) पर कैसे जाते हैं। यह एक बेहतर स्कैनर बनाता है। यदि दोनों लूप 4 - 0 और 0 - 4 से जाते हैं तो एक ही एल ई डी एक ही क्रम में दो बार फ्लैश होगा - यह बहुत अच्छा नहीं लगेगा।
अब आपको एक काम करने वाला नाइट राइडर एलईडी स्कैनर चाहिए! अधिक या बड़े एल ई डी का उपयोग करने, या अपने स्वयं के पैटर्न को लागू करने के लिए इसे संशोधित करना आसान होगा। इस सर्किट को पोर्ट करना बहुत आसान है रास्पबेरी पाई (पाई के लिए नया? यहाँ से प्रारंभ करें रास्पबेरी पाई: अनौपचारिक ट्यूटोरियलचाहे आप एक वर्तमान पाई के स्वामी हों, जो इस क्रेडिट-कार्ड आकार डिवाइस के अधिक या संभावित स्वामी को सीखना चाहते हैं, यह एक ऐसा मार्गदर्शक नहीं है जिसे आप मिस करना चाहते हैं। अधिक पढ़ें ) या ESP8266 Arduino किलर से मिलो: ESP8266क्या होगा अगर मैंने आपको बताया कि $ 10 से कम के लिए अंतर्निहित वाई-फाई के साथ एक Arduino- संगत देव बोर्ड है? खैर, वहाँ है। अधिक पढ़ें .
क्या आप एक प्रतिकृति KITT का निर्माण कर रहे हैं? मुझे टिप्पणियों में नाइट राइडर सभी चीजें देखना अच्छा लगता है।
जो ब्रिटेन के लिंकन विश्वविद्यालय से कंप्यूटर विज्ञान में स्नातक हैं। वह एक पेशेवर सॉफ़्टवेयर डेवलपर है, और जब वह ड्रोन नहीं उड़ा रहा है या संगीत नहीं लिख रहा है, तो उसे अक्सर तस्वीरें लेने या वीडियो बनाने के लिए पाया जा सकता है।