Arduino ट्रैफ़िक लाइट कंट्रोलर बनाने से आपको बुनियादी कोडिंग कौशल विकसित करने में मदद मिलती है!  हम आपको शुरू करते हैं।

शुरुआती के लिए Arduino प्रोग्रामिंग: ट्रैफ़िक लाइट कंट्रोलर प्रोजेक्ट ट्यूटोरियल

विज्ञापन Arduino ट्रैफ़िक लाइट एक मज़ेदार छोटी परियोजना है जिसे आप एक घंटे के भीतर बना सकते हैं। यहां बताया गया है कि एक Arduino का उपयोग करके अपना खुद का निर्माण कैसे करें, और उन्नत भिन्नता के लिए सर्किट कैसे बदलें। यदि आप इसे एक वीडियो के रूप में ट्यूटोरियल के रूप में देखते हैं, तो हमने आपको कवर किया है: क्या आप एक Arduino आवागमन लाइट नियंत्रक बनाने की आवश्यकता है मूल Arduino के अलावा, आपको आवश्यकता होगी: 1 एक्स 10k-ओम प्रतिरोधी 1 एक्स पुशबटन स्विच 6 x 220-ओम प्रतिरोधक एक ब्रेडबोर्ड तारों को जोड़ना लाल, पीले और हरे एल.ई.डी. लगभग कोई भी Arduino इस परियोजना के लिए काम करेगा, बशर्ते इसमें पर्याप

विज्ञापन

Arduino ट्रैफ़िक लाइट एक मज़ेदार छोटी परियोजना है जिसे आप एक घंटे के भीतर बना सकते हैं। यहां बताया गया है कि एक Arduino का उपयोग करके अपना खुद का निर्माण कैसे करें, और उन्नत भिन्नता के लिए सर्किट कैसे बदलें।

यदि आप इसे एक वीडियो के रूप में ट्यूटोरियल के रूप में देखते हैं, तो हमने आपको कवर किया है:

क्या आप एक Arduino आवागमन लाइट नियंत्रक बनाने की आवश्यकता है

मूल Arduino के अलावा, आपको आवश्यकता होगी:

  • 1 एक्स 10k-ओम प्रतिरोधी
  • 1 एक्स पुशबटन स्विच
  • 6 x 220-ओम प्रतिरोधक
  • एक ब्रेडबोर्ड
  • तारों को जोड़ना
  • लाल, पीले और हरे एल.ई.डी.

लगभग कोई भी Arduino इस परियोजना के लिए काम करेगा, बशर्ते इसमें पर्याप्त पिन हों। सुनिश्चित करें कि आपने हमारे Arduino खरीदने वाले गाइड को पढ़ा है Arduino ख़रीदना गाइड: आपको कौन सा बोर्ड मिलना चाहिए? Arduino ख़रीदना गाइड: आपको कौन सा बोर्ड मिलना चाहिए? वहाँ Arduino बोर्डों के कई अलग-अलग प्रकार हैं, आपको भ्रमित होने के लिए क्षमा किया जाएगा। आपको अपने प्रोजेक्ट के लिए कौन सा खरीदना चाहिए? हमें इस Arduino गाइड खरीदने के साथ मदद करते हैं! आगे पढ़ें अगर आपको यकीन नहीं है कि आपको किस मॉडल की जरूरत है आपके पास पहले से ही आपके Arduino स्टार्टर किट में ये भाग हो सकते हैं What is Your Arduino Starter Kit में? [Arduino शुरुआती] क्या आपके Arduino स्टार्टर किट में है? [Arduino Beginners] इलेक्ट्रॉनिक घटकों से भरे बॉक्स के साथ सामना किया, यह अभिभूत होना आसान है। यहां एक गाइड है जो आपको अपनी किट में मिलेगा। अधिक पढ़ें ।

Arduino ट्रैफिक लाइट: मूल बातें

चलो छोटी शुरुआत करते हैं। एक बुनियादी, एकल ट्रैफ़िक लाइट शुरू करने के लिए एक अच्छी जगह है। यहाँ सर्किट है:

बुनियादी Arduino ट्रैफिक लाइट के लिए सर्किट आरेख

प्रत्येक एलईडी के एनोड (लंबे पैर) को डिजिटल पिन से आठ, नौ और दस (220-ओम अवरोधक के माध्यम से) कनेक्ट करें। कैथोड्स (छोटे पैर) को अरुडिनो के मैदान से कनेक्ट करें।

Arduino ट्रैफिक लाइट के लिए कोड

चर को परिभाषित करके शुरू करें ताकि आप संख्या के बजाय रोशनी को नाम से संबोधित कर सकें। एक नई Arduino परियोजना शुरू करें, और इन पंक्तियों के साथ शुरू करें:

 int red = 10; int yellow = 9; int green = 8; 

अगला, चलो सेटअप फ़ंक्शन को जोड़ते हैं, जहां आप आउटपुट होने के लिए लाल, पीले और हरे एल ई डी को कॉन्फ़िगर करेंगे। चूँकि आपने पिन नंबरों का प्रतिनिधित्व करने के लिए चर बनाए हैं, आप अब पिन को नाम से संदर्भित कर सकते हैं:

 void setup(){ pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(green, OUTPUT); } 

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

 void loop(){ changeLights(); delay(15000); } void changeLights(){ // green off, yellow on for 3 seconds digitalWrite(green, LOW); digitalWrite(yellow, HIGH); delay(3000); // turn off yellow, then turn red on for 5 seconds digitalWrite(yellow, LOW); digitalWrite(red, HIGH); delay(5000); // red and yellow on for 2 seconds (red is already on though) digitalWrite(yellow, HIGH); delay(2000); // turn off red and yellow, then turn on green digitalWrite(yellow, LOW); digitalWrite(red, LOW); digitalWrite(green, HIGH); delay(3000); } 

इस कोड को अपने Arduino पर अपलोड करें, और चलाएं ( टूल > बोर्ड और उपकरण > पोर्ट मेनू से सही बोर्ड और पोर्ट का चयन करना सुनिश्चित करें)। आपके पास एक कामकाजी ट्रैफ़िक लाइट होनी चाहिए जो हर 15 सेकंड में बदल जाए, जैसे (स्पेड अप):

कार्रवाई में Arduino ट्रैफिक लाइट

चलिए इस कोड को तोड़ते हैं। ChangeLights फ़ंक्शन सभी कड़ी मेहनत करता है। यह ट्रैफ़िक लाइट को पीले और लाल रंग से घुमाता है, फिर वापस हरे रंग में। जैसा कि लूप फ़ंक्शन के अंदर इसे कहा जाता है, अर्डिनो हर बार 15 सेकंड के ठहराव के साथ, इस कोड को हमेशा के लिए चलाएगा।

चेंजलाइट्स फ़ंक्शन में चार अलग-अलग चरण होते हैं:

  • हरा पर, पीला
  • पीला बंद, लाल पर
  • पीला पर, लाल पर
  • हरा पर, लाल बंद, पीला बंद

ये चार चरण वास्तविक ट्रैफिक लाइट में उपयोग की जाने वाली प्रक्रिया को दोहराते हैं। प्रत्येक चरण के लिए, कोड बहुत समान है। डिजिटलवर्ट का उपयोग करके उपयुक्त एलईडी चालू या बंद हो जाता है। यह एक Arduino फ़ंक्शन है जो आउटपुट पिंस को High (के लिए), या LOW (ऑफ़ के लिए) सेट करने के लिए उपयोग किया जाता है।

आवश्यक एल ई डी को सक्षम या अक्षम करने के बाद, देरी अरुडिनो को दिए गए समय की प्रतीक्षा करती है। इस मामले में तीन सेकंड।

गोइंग डेपर: अरुडिनो पेडेस्ट्रियन क्रॉसिंग

अब जब आप मूल बातें जानते हैं, तो इसे सुधारते हैं। पैदल चलने वालों के लिए पुशबटन में जोड़ें, जब भी वे चाहें रोशनी बदल सकते हैं:

Arduino पैदल यात्री क्रॉसिंग के लिए सर्किट आरेख

ध्यान दें कि ट्रैफिक लाइट ठीक पिछले उदाहरण के समान है। बटन को डिजिटल पिन से कनेक्ट करें। 12. आप देखेंगे कि स्विच में एक उच्च-प्रतिबाधा 10k-ohm रोकनेवाला जुड़ा हुआ है, और आप सोच रहे होंगे कि क्यों। यह एक पुल-डाउन रोकनेवाला है।

एक स्विच या तो वर्तमान प्रवाह की अनुमति देता है या नहीं। यह काफी सरल लगता है, लेकिन एक तर्क सर्किट में, करंट हमेशा या तो उच्च या निम्न अवस्था में प्रवाहित होना चाहिए (याद रखें, 1 या 0, उच्च या कम)। आप मान सकते हैं कि एक पुशबटन स्विच जो वास्तव में दबाया नहीं गया है, एक कम स्थिति में होगा, लेकिन वास्तव में, इसे 'फ्लोटिंग' कहा जाता है, क्योंकि कोई भी धारा बिल्कुल नहीं खींची जाती है।

इस तैरने की स्थिति में, यह संभव है कि एक झूठी रीडिंग हो जाएगी क्योंकि यह विद्युत हस्तक्षेप के साथ उतार-चढ़ाव करता है। दूसरे शब्दों में, एक फ्लोटिंग स्विच न तो एक विश्वसनीय हाई और न ही कम पढ़ने दे रहा है। एक पुल-डाउन रोकनेवाला स्विच चालू होने पर थोड़ी मात्रा में चालू प्रवाह रखता है, जिससे एक सटीक निम्न राज्य रीडिंग सुनिश्चित होती है।

अन्य लॉजिक सर्किट में, आपको इसके बजाय एक पुल-अप रोकनेवाला मिल सकता है, और यह एक ही सिद्धांत पर काम करता है, लेकिन इसके विपरीत, यह सुनिश्चित करता है कि विशेष लॉजिक गेट उच्च करने के लिए चूक।

अब, कोड के लूप भाग में, हर 15 सेकंड में रोशनी को बदलने के बजाय, आप इसके बजाय पुशबटन स्विच की स्थिति को पढ़ने जा रहे हैं, और सक्रिय होने पर ही रोशनी बदलें।

Arduino पैदल यात्री क्रॉसिंग के लिए कोड

अपने बटन पिन को संग्रहीत करने के लिए एक नया चर जोड़कर प्रारंभ करें:

 int button = 12; // switch is on pin 12 

अब, सेटअप फ़ंक्शन में, इनपुट के रूप में स्विच को घोषित करने के लिए एक नई लाइन जोड़ें। ट्रैफिक लाइट्स को ग्रीन स्टेज पर सेट करने के लिए एक लाइन जोड़ें। इस प्रारंभिक सेटिंग के बिना, वे तब तक बंद रहेंगे जब तक पहली बार बदलाव नहीं होगा

 pinMode(button, INPUT); digitalWrite(green, HIGH); 

इसके बजाय पूरे लूप फ़ंक्शन को बदलें:

 void loop() { if (digitalRead(button) == HIGH){ delay(15); // software debounce if (digitalRead(button) == HIGH) { // if the switch is HIGH, ie. pushed down - change the lights! changeLights(); delay(15000); // wait for 15 seconds } } } 

इससे हो जाना चाहिए। आप सोच रहे होंगे कि बटन जाँच दो बार ( digitalRead (बटन) ) क्यों होती है, एक छोटी सी देरी से अलग हो जाती है। यह बहस है। बटन के लिए पुल-डाउन रोकनेवाला की तरह, यह साधारण जांच एक बटन प्रेस के रूप में मामूली हस्तक्षेप का पता लगाने वाले कोड को रोकती है।

यदि 15 सेकंड के लिए स्टेटमेंट के अंदर प्रतीक्षा करके, ट्रैफिक लाइट कम से कम उस अवधि के लिए नहीं बदल सकती है। एक बार 15 सेकेंड में लूप रीस्टार्ट हो जाता है। लूप के प्रत्येक पुनरारंभ, यह फिर से बटन की स्थिति को पढ़ता है, लेकिन अगर इसे दबाया नहीं जाता है, यदि कथन कभी सक्रिय नहीं होता है, तो रोशनी कभी नहीं बदलती है, और कार्यक्रम फिर से शुरू होता है।

यहां बताया गया है कि यह कैसा दिखता है (स्पेड अप):

कार्रवाई में Arduino पैदल यात्री क्रॉसिंग

जंक्शन के साथ Arduino ट्रैफिक लाइट

आइए अधिक उन्नत मॉडल का प्रयास करें। पैदल यात्री क्रॉसिंग के बजाय, अपने सर्किट को दो ट्रैफ़िक लाइट में बदलें:

जंक्शन के साथ Arduino ट्रैफिक लाइट के लिए क्रिकुट आरेख

दूसरी ट्रैफ़िक लाइट को डिजिटल पिन 11, 12 और 13 से कनेक्ट करें।

जंक्शन के साथ Arduino ट्रैफिक लाइट के लिए कोड

सबसे पहले, अपने नए ट्रैफ़िक लाइट पिंस को चर में असाइन करें, और उन्हें आउटपुट के रूप में कॉन्फ़िगर करें, जैसे पहले उदाहरण में:

 // light one int red1 = 10; int yellow1 = 9; int green1 = 8; // light two int red2 = 13; int yellow2 = 12; int green2 = 11; void setup(){ // light one pinMode(red1, OUTPUT); pinMode(yellow1, OUTPUT); pinMode(green1, OUTPUT); // light two pinMode(red2, OUTPUT); pinMode(yellow2, OUTPUT); pinMode(green2, OUTPUT); } 

अब, पहले उदाहरण से (पैदल यात्री क्रॉसिंग के बजाय) कोड का उपयोग करने के लिए अपने लूप को अपडेट करें:

 void loop(){ changeLights(); delay(15000); } 

एक बार फिर, सभी कार्य चेंजलाइट्स फ़ंक्शन में किए जाते हैं। लाल > लाल और पीले > हरे रंग में जाने के बजाय, यह कोड ट्रैफ़िक लाइट को वैकल्पिक कर देगा। जब एक हरे रंग की होती है, तो दूसरी लाल रंग की होती है। यहाँ कोड है:

 void changeLights(){ // turn both yellows on digitalWrite(green1, LOW); digitalWrite(yellow1, HIGH); digitalWrite(yellow2, HIGH); delay(5000); // turn both yellows off, and opposite green and red digitalWrite(yellow1, LOW); digitalWrite(red1, HIGH); digitalWrite(yellow2, LOW); digitalWrite(red2, LOW); digitalWrite(green2, HIGH); delay(5000); // both yellows on again digitalWrite(yellow1, HIGH); digitalWrite(yellow2, HIGH); digitalWrite(green2, LOW); delay(3000); // turn both yellows off, and opposite green and red digitalWrite(green1, HIGH); digitalWrite(yellow1, LOW); digitalWrite(red1, LOW); digitalWrite(yellow2, LOW); digitalWrite(red2, HIGH); delay(5000); } 

यहां ऐसा है जो दिखता है (स्पेड अप):

कार्रवाई में जंक्शन के साथ Arduino ट्रैफिक लाइट

Arduino ट्रैफिक लाइट अगले चरण

आज के लिए इतना ही। Arduino एल ई डी और बटन की आपकी नई समझ सभी प्रकार की विभिन्न परियोजनाओं पर लागू होती है। यदि आप इन ट्रैफ़िक लाइटों का विस्तार करना चाहते हैं, तो कई पैदल यात्री क्रॉसिंग, और पैदल यात्री ट्रैफ़िक लाइट्स के साथ चार-तरफ़ा (या अधिक) जंक्शन क्यों नहीं बनायें?

या फिर इस DIY मिडी नियंत्रक या एक्सोड के साथ Arduino रोबोट जैसे बड़े प्रोजेक्ट के साथ अपने नए कौशल का विस्तार क्यों नहीं? आप VS कोड के साथ Arduino कोडिंग पर भी एक नज़र डाल सकते हैं और VSIO के साथ Platformio बेहतर Arduino कोडिंग और VSIO के साथ Platformio बेहतर Arduino कोडिंग और PlatformIO Arduino कोडिंग शुरू करने के लिए एक आसान तरीका चाहते हैं? PlatformIO और VS कोड के साथ, आप Arduino प्रोजेक्ट्स को सरल बना सकते हैं और तेजी से सीख सकते हैं। अधिक पढ़ें ।

चित्र साभार: androsvector / Shutterstock

Arduino, DIY प्रोजेक्ट ट्यूटोरियल, प्रोग्रामिंग के बारे में अधिक जानकारी प्राप्त करें।