- आवश्यक सामग्री
- सर्किट आरेख
- कोड और स्पष्टीकरण
- यह स्वचालित रूप से प्रकाश की तीव्रता को कैसे नियंत्रित करता है:
"एक उज्ज्वल चिंगारी बनो, अंधेरा होने तक रोशनी बंद करो!" कभी-कभी हम लाइट और बेकार बिजली को बंद करना भूल जाते हैं और आपने दिन में स्ट्रीट लाइट को चालू भी देखा होगा। हमने डार्क डिटेक्टर पर पहले से ही कुछ सर्किट बनाए हैं, जहां बाहर रोशनी होने पर रोशनी अपने आप बंद हो जाती है और अगर बाहर अंधेरा है तो ऑन हो जाता है। लेकिन इस बार, इस सर्किट में हम न केवल प्रकाश की स्थिति पर आधारित रोशनी को चालू और बंद कर रहे हैं, बल्कि बाहर की प्रकाश स्थितियों के अनुसार प्रकाश की तीव्रता को भी भिन्न कर रहे हैं । यहाँ हमने Arduino के साथ LDR और PWM अवधारणा को 1 वाट पावर एलईडी की चमक को कम करने या बढ़ाने के लिए उपयोग किया है।
मूल रूप से, PWM पल्स चौड़ाई मॉडुलन को संदर्भित करता है, एक PWM पिन के माध्यम से आउटपुट सिग्नल एक एनालॉग सिग्नल होगा और Arduino से डिजिटल सिग्नल के रूप में अधिग्रहण किया जाएगा। यह सिग्नल के लिए अनुक्रमिक एनालॉग मूल्य उत्पन्न करने के लिए डिजिटल तरंग के कर्तव्य चक्र का उपयोग करता है। और, उस सिग्नल का उपयोग आगे पावर एलईडी की चमक को नियंत्रित करने के लिए किया जाता है।
आवश्यक सामग्री
- Arduino UNO
- लीडर
- रेसिस्टर (510, 100 किमी ओम)
- संधारित्र (0.1uF)
- ट्रांजिस्टर 2N2222
- 1 वाट पावर एलईडी
- तारों को जोड़ना
- ब्रेड बोर्ड
सर्किट आरेख
कोड और स्पष्टीकरण
स्वचालित एलईडी डिमर के लिए पूरा Arduino कोड अंत में दिया गया है।
नीचे दिए गए कोड में, हम PWM पिन और कोड में उपयोग किए जाने वाले चर को परिभाषित कर रहे हैं।
int pwmPin = 2; // 12 से चर pwm int LDR = A0 को पिन असाइन करता है ; // एनालॉग पॉट A0 को वेरिएंट पॉट int c1 = 0 पर असाइन करता है ; // घोषित चर c1 int c2 = 0; // चर c2 घोषित करता है
अब, लूप में, हम पहले कमांड "analogRead (LDR)" का उपयोग करके मान पढ़ रहे हैं , फिर एनालॉग इनपुट को "वैल्यू" नामक एक चर में सहेजें । कुछ गणितीय गणना करके हम PWM सिग्नल उत्पन्न कर रहे हैं। यहां, हम PWM का उपयोग करके प्रकाश की तीव्रता को नियंत्रित कर रहे हैं केवल अगर एनालॉग मूल्य 500 से कम है, और यदि यह 500 से अधिक है तो हम पूरी तरह से रोशनी बंद कर देते हैं।
int value = analogRead (LDR); सीरियल.प्रिंट (मान); सी 1 = मूल्य; c2 = 500-c1; // 1000 a से घटाकर c2, c1 में परिणाम बचाता है अगर (मान <500) { digitalWrite (pwmPin, HIGH); delayMicroseconds (c2); digitalWrite (pwmPin, LOW); delayMicroseconds (c1); } अगर (मान> 500) { digitalWrite (2, LOW); } }
आप यहां से Arduino में PWM के बारे में अधिक जान सकते हैं।
यह स्वचालित रूप से प्रकाश की तीव्रता को कैसे नियंत्रित करता है:
सर्किट आरेख के अनुसार, हमने एलडीआर और 100k रोकनेवाला का उपयोग करके एक वोल्टेज विभक्त सर्किट बनाया है। वोल्टेज विभक्त आउटपुट अरुडिनो के एनालॉग पिन को फ़ीड है। एनालॉग पिन वोल्टेज को महसूस करता है और Arduino को कुछ एनालॉग मूल्य देता है। एलडीआर के प्रतिरोध के अनुसार एनालॉग मूल्य बदलता है। इसलिए, यदि LDR पर अंधेरा है, तो इसका प्रतिरोध बढ़ जाता है और इसलिए वोल्टेज मान (एनालॉग वैल्यू) कम हो जाता है। इसलिए, एनालॉग वैल्यू पीडब्लूएम आउटपुट या ड्यूटी चक्र में भिन्नता है, और ड्यूटी चक्र आगे बिजली एलईडी की रोशनी की तीव्रता के लिए आनुपातिक है। तो LDR पर प्रकाश स्वचालित रूप से पावर एलईडी की तीव्रता को नियंत्रित करेगा। नीचे प्रवाह आरेख है कि यह कैसे काम करेगा, उल्टा तीर का संकेत "बढ़ रहा है" और नीचे का तीर का संकेत "घटते" का संकेत दे रहा है।
↑ प्रतिरोध - - एनालॉग पिन पर वोल्टेज ↓ - (लीडर पर) ↓ प्रकाश की तीव्रता ड्यूटी चक्र (PWM) ↑ - पावर एलईडी की चमक ↑
यदि इसका पूर्ण उज्ज्वल बाहर (जब एनालॉग मूल्य 500 से अधिक बढ़ जाता है) तो पावर एलईडी बंद हो जाता है।
यह आप LDR का उपयोग करके स्वचालित रूप से प्रकाश की तीव्रता को कैसे नियंत्रित कर सकते हैं ।
आगे हमारे सभी LDR संबंधित सर्किट यहां देखें।