विषयसूची:

स्मार्ट इंटरएक्टिव ट्रैफिक लाइट: 5 कदम (चित्रों के साथ)
स्मार्ट इंटरएक्टिव ट्रैफिक लाइट: 5 कदम (चित्रों के साथ)

वीडियो: स्मार्ट इंटरएक्टिव ट्रैफिक लाइट: 5 कदम (चित्रों के साथ)

वीडियो: स्मार्ट इंटरएक्टिव ट्रैफिक लाइट: 5 कदम (चित्रों के साथ)
वीडियो: Traffic signs drawing/Road safety rules drawing/ Traffic lights drawing 2024, नवंबर
Anonim
स्मार्ट इंटरएक्टिव ट्रैफिक लाइट
स्मार्ट इंटरएक्टिव ट्रैफिक लाइट

दुनिया की सबसे अच्छी और सबसे इंटरैक्टिव ट्रैफिक लाइट बनाने के लिए तैयार हैं? अच्छा! इस ट्यूटोरियल में, हम बताएंगे कि कैसे आप Arduino का उपयोग करके स्वयं एक का निर्माण कर सकते हैं।

आवश्यक घटक:- Arduino (..duh)- LM317 Mosfet- 2x 60cm एनालॉग RGB LED स्ट्रिप्स (12V)- PVC ट्यूब (1m x 125mm)- केबल्स (लाल और काला)- लाइट-कैप्स के लिए मेटल प्लेट्स- लाइट के लिए Acryl -आइकन (.svg आइकन के लिए flaticon.com की जांच करें) - स्प्रेकैन ब्लैक एंड व्हाइट पेंट।- इलेक्ट्रिकल टेप- सभी आवश्यक सोल्डरिंग घटक- आवश्यक शील्ड के साथ डिस्प्ले (ट्यूटोरियल में उपयोग नहीं किया गया)

चरण 1: चरण 1: लाइट-कैप बनाएं

चरण 1: लाइट-कैप बनाएं
चरण 1: लाइट-कैप बनाएं

डिजाइन वास्तव में आप पर निर्भर है। हमने रोशनी को पकड़ने के लिए 15x15 सेमी की टोपी बनाई है। हमने धातु की प्लेटों को सही आकार में काटा है और टोपी को सही आकार में मोड़ने के लिए धातु के बेंडर (नहीं, अवतार से नहीं) का उपयोग किया है। बैकप्लेट एक अलग घटक से बने थे।

चरण 2: चरण 2: पीवीसी पोल तैयार करना

चरण 2: पीवीसी पोल तैयार करना
चरण 2: पीवीसी पोल तैयार करना

प्रकाश-टोपी फिट करने के लिए पीवीसी पोल में 2 छेद काटें। फिर पूरी चीज़ को काला करने के लिए एक काले रंग के स्प्रेकैन का उपयोग करें। आप चाहें तो पोल के नीचे (नीदरलैंड में आम) सफेद धारियों को जोड़ सकते हैं।

चरण 3: चरण 3: आरजीबी एलईडी स्ट्रिप्स को असेंबल करना और ऐक्रेलिक प्लेट्स को सैंडब्लास्टिंग करना

चरण 3: आरजीबी एलईडी स्ट्रिप्स को असेंबल करना और ऐक्रेलिक प्लेट्स को सैंडब्लास्टिंग करना
चरण 3: आरजीबी एलईडी स्ट्रिप्स को असेंबल करना और ऐक्रेलिक प्लेट्स को सैंडब्लास्टिंग करना
चरण 3: आरजीबी एलईडी स्ट्रिप्स को असेंबल करना और ऐक्रेलिक प्लेट्स को सैंडब्लास्टिंग करना
चरण 3: आरजीबी एलईडी स्ट्रिप्स को असेंबल करना और ऐक्रेलिक प्लेट्स को सैंडब्लास्टिंग करना

आगे आपको लाइट-कैप के अंदर RGB LED स्ट्रिप्स को असेंबल करना होगा। उन्हें टोपी के चारों ओर कसकर फिट करें, और उन्हें जितना संभव हो सके सामने की ओर रखें।

आगे आपको ऐक्रेलिक प्लेट पर चयनित प्रतीक को सैंडब्लास्ट करना होगा। कुछ टेप लें और पूरी एक्रेलिक प्लेट को ढक दें। फिर मनचाहा आकार/आकृति काट लें। इसके बाद आप फ्रॉस्टेड-ग्लास जैसा इफेक्ट पाने के लिए प्लेट को सैंडब्लास्ट कर सकते हैं।

चरण 4: चरण 4: RGB LED स्ट्रिप्स को Arduino से कनेक्ट करें।

चरण 4: RGB LED स्ट्रिप्स को Arduino से कनेक्ट करें।
चरण 4: RGB LED स्ट्रिप्स को Arduino से कनेक्ट करें।

अब मुश्किल हिस्सा आता है: RGB LED स्ट्रिप्स को Arduino से कनेक्ट करना। जब आप पिन कनेक्ट कर रहे हों तो सुनिश्चित करें कि आपने 12v को अपनी स्ट्रिप के 12v पर रखा है। प्रत्येक रंग के बीच, लाल या हरा, आपको एक मस्जिद लगाने की जरूरत है। एलईडी पट्टी के डेटा को मस्जिद के मध्य पिन और बाएं पिन को अपने Arduino से कनेक्ट करें। दाहिने पिन को वापस Arduino की जमीन पर जाना है।

चरण 5: चरण 5: Arduino कोड लिखें

चरण 5: Arduino कोड लिखें
चरण 5: Arduino कोड लिखें

यह Arduino कोड ब्लूटूथ द्वारा नियंत्रित होता है, क्योंकि हमने आंतरिक डिस्प्ले का उपयोग नहीं किया है। तो कोड को लूप () फ़ंक्शन में ब्लूटूथ संदेशों के माध्यम से नियंत्रित किया जाता है।

#आर 6 परिभाषित करें#जी 11 को परिभाषित करें #शामिल करें

SoftwareSerial mySerial(10, 11); // आरएक्स, TX

#गुस्से को परिभाषित करेंलंबाई 4

# गिरने की लंबाई 3 परिभाषित करें # खुश लंबाई 4 परिभाषित करें #फोन की लंबाई 13 पर परिभाषित करें

बूल बटन दबाया गया;

इंट करंटमिलिस; इंट पिछलामिलिस;

इंट एनिमेशन1देरी;

int एनीमेशन2देरी; int एनीमेशन3Delay; int एनीमेशन4देरी;

बूल एनीमेशन 1 हो गया = झूठा;

बूल एनीमेशन 2 हो गया = झूठा; बूल एनीमेशन 3 हो गया = झूठा; बूल एनीमेशन 4 हो गया = झूठा; बूल एनीमेशन 5 हो गया = झूठा;

बूल ब्लॉकलाइट = झूठा;

बूल लाइटरेड = सच;

इंट करंटएनीमेशनडेले;

व्यर्थ व्यवस्था() {

// अपना सेटअप कोड यहां डालें, एक बार चलाने के लिए: पिनमोड (आर, आउटपुट); पिनमोड (जी, आउटपुट);

सीरियल.बेगिन (९६००);

mySerial.begin(38400); सीरियल.सेटटाइमआउट (25); बटन दबाया = झूठा; करंटमिलिस = 0; पिछलामिलिस = 0;

एनीमेशन 1 विलंब = चलने की लंबाई * 1000;

एनीमेशन 2 देरी = लहराते हुए लंबाई * 1000; एनीमेशन 3 डिले = हैप्पीलेंथ * 1000; एनिमेशन4डेले = वॉकिंगऑटलेंथ * 1000;

// currentAnimationDelay = एनीमेशन 1Delay * 1000;

लाइटरेड = सच; }

शून्य लूप () {

// देरी (20);

// अपना मुख्य कोड यहां रखें, बार-बार चलाने के लिए: अहस्ताक्षरित लंबा करंटमिलिस = मिली (); if(buttonPressed == true) {if(animation1Done == false) {if(currentMillis - lastMillis> Animation1Delay) { Serial.println("0"); पिछलामिलिस = करंटमिलिस; एनीमेशन 1 हो गया = सच; } } और अगर (एनिमेशन 2 हो गया == झूठा और एनीमेशन 1 हो गया == सच) { अगर (करंटमिलिस - पिछला मिलिस> एनीमेशन 2 डेले) {सीरियल.प्रिंट्लन ("1"); पिछलामिलिस = करंटमिलिस; एनीमेशन 2 हो गया = सच; } } और अगर (एनिमेशन ३ डोन == असत्य और एनीमेशन २ डोन == सच) { अगर (करंटमिलिस - पिछला मिलिस > एनीमेशन ३ डिले) {सीरियल.प्रिंट्लन ("२"); // Serial.println ("ध्वनि: हरा"); पिछलामिलिस = करंटमिलिस; एनीमेशन 3 हो गया = सच; हल्का लाल = झूठा; } } और अगर (एनिमेशन 4 हो गया == झूठा और एनीमेशन 3 हो गया == सच) { अगर (वर्तमान मिलिस - पिछला मिलिस> एनीमेशन 4 डेले) {पिछला मिलिस = वर्तमान मिलिस; एनीमेशन 4 हो गया = सच; Serial.println ("FLSH"); } } }

अगर (सीरियल.उपलब्ध ()) {

स्ट्रिंग str = Serial.readString (); अगर (str == "सीएमडी: BUTTON_PRESSED") {

एनीमेशन 1 हो गया = झूठा;

एनीमेशन 2 हो गया = झूठा; एनीमेशन 3 हो गया = झूठा; एनीमेशन 4 हो गया = झूठा; एनीमेशन 5 हो गया = झूठा;

एनीमेशन 1 विलंब = चलने की लंबाई * 1000;

एनीमेशन 2 देरी = लहराते हुए लंबाई * 1000; एनीमेशन 3 डिले = हैप्पीलेंथ * 1000; एनिमेशन4डेले = वॉकिंगऑटलेंथ * 1000;

// currentAnimationDelay = एनीमेशन 1Delay * 1000;

लाइटरेड = सच; सीरियल.प्रिंट्लन ("3"); बटन दबाया = सच; पिछलामिलिस = करंटमिलिस; }

अगर (str == "लाल") {

ब्लॉकलाइट = झूठा; लाइटरेड = सच; }

अगर (str == "हरा") {

ब्लॉकलाइट = झूठा; हल्का लाल = झूठा; }

अगर (str == "प्रकाश: हरा: बंद") {

ब्लॉकलाइट = सच; एनालॉगवाइट (जी, 255); } अगर (str == "लाइट: ग्रीन: ऑन") {ब्लॉकलाइट = सच; एनालॉगराइट (जी, 0); } // सीरियल.प्रिंट्लन (str); }

अगर (ब्लॉकलाइट == झूठा) {

अगर (लाइटरेड == सच) {

एनालॉगराइट (आर, 0); एनालॉगवाइट (जी, 255); } अगर (लाइटरेड == झूठा) {एनालॉगवाइट (आर, 255); एनालॉगराइट (जी, 0); } } }

सिफारिश की: