लाइट सेंसर सर्किट - फोटोरेसिस्टर के साथ स्वचालित LED
Build a light sensor circuit using a photoresistor (LDR) that automatically turns on an LED when it gets dark. Includes schematic, component list, and Arduino version.
लाइट सेंसर सर्किट परिवेशी प्रकाश का पता लगाने और अंधेरा होने पर स्वचालित रूप से LED जलाने के लिए फोटोरेसिस्टर (LDR) का उपयोग करता है। यह वही सिद्धांत है जो स्वचालित नाइट लाइट्स, स्ट्रीट लाइट्स और गार्डन सोलर लैंप के पीछे है। आप कुछ घटकों के साथ और बिना प्रोग्रामिंग के बुनियादी संस्करण बना सकते हैं, या सटीक नियंत्रण और समायोज्य थ्रेशहोल्ड के लिए Arduino जोड़ सकते हैं।
आपको क्या चाहिए
बुनियादी संस्करण (Arduino नहीं)
| घटक | मान | उद्देश्य |
|---|---|---|
| फोटोरेसिस्टर (LDR) | मानक (GL5528 या समान) | प्रकाश संवेदन |
| निश्चित प्रतिरोध | 10 kΩ | वोल्टेज डिवाइडर साझीदार |
| NPN ट्रांज़िस्टर | 2N2222 या BC547 | LED को स्विच करता है |
| LED (5mm) | कोई भी रंग | आउटपुट संकेतक |
| LED प्रतिरोध | 220Ω–330Ω | LED के लिए करंट सीमा |
| पावर सप्लाई | 5V–9V बैटरी या एडाप्टर | पावर स्रोत |
| ब्रेडबोर्ड + तार | मानक | प्रोटोटाइपिंग |
Arduino संस्करण (सटीकता जोड़ता है)
ऊपर के समान घटक, लेकिन ट्रांज़िस्टर वैकल्पिक है — Arduino डिजिटल पिन से सीधे LED चला सकता है और एनालॉग पिन पर LDR पढ़ सकता है।
फोटोरेसिस्टर कैसे काम करता है
फोटोरेसिस्टर (लाइट-डिपेंडेंट रेसिस्टर, LDR) एक सेमीकंडक्टर सामग्री से बना होता है जिसका प्रतिरोध प्रकाश के संपर्क के साथ बदलता है:
| स्थिति | LDR प्रतिरोध | व्यवहार |
|---|---|---|
| तेज़ धूप | ~1 kΩ या कम | बहुत कम प्रतिरोध |
| इनडोर प्रकाश | ~5–20 kΩ | मध्यम प्रतिरोध |
| मंद प्रकाश / शाम | ~50–200 kΩ | उच्च प्रतिरोध |
| अंधेरा | ~1 MΩ+ | बहुत उच्च प्रतिरोध |
LDR पोलराइज़्ड नहीं है — यह किसी भी दिशा में काम करता है, बिल्कुल एक नियमित प्रतिरोध की तरह।
वोल्टेज डिवाइडर सिद्धांत
LDR और एक निश्चित प्रतिरोध मिलकर वोल्टेज डिवाइडर बनाते हैं। मध्य बिंदु वोल्टेज प्रकाश स्तर के साथ बदलता है:
V_mid = V_supply × R_fixed / (R_LDR + R_fixed)- तेज़ प्रकाश: R_LDR कम है (~1 kΩ)। V_mid ≈ 5V × 10k / (1k + 10k) ≈ 4.5V (उच्च)।
- अंधेरा: R_LDR उच्च है (~1 MΩ)। V_mid ≈ 5V × 10k / (1M + 10k) ≈ 0.05V (कम)।
LED को अंधेरे में जलाने के लिए, हम स्थितियों को अदला-बदली करते हैं — LDR को ऊपर (पॉज़िटिव से जुड़ा हुआ) और निश्चित प्रतिरोध को नीचे (ग्राउंड से जुड़ा हुआ) रखते हैं। अब V_mid अंधेरे में उच्च और तेज़ प्रकाश में कम होता है:
V_mid = V_supply × R_LDR / (R_LDR + R_fixed)- अंधेरा: R_LDR उच्च → V_mid उच्च → ट्रांज़िस्टर चालू → LED जलता है।
- तेज़: R_LDR कम → V_mid कम → ट्रांज़िस्टर बंद → LED बंद।
बुनियादी सर्किट बनाना (Arduino नहीं)
- पावर सेटअप: अपनी 5V सप्लाई को ब्रेडबोर्ड पावर रेल (पॉज़िटिव और ग्राउंड) से जोड़ें।
- वोल्टेज डिवाइडर: LDR को पॉज़िटिव रेल और एक पंक्ति के बीच जोड़ें (इसे पंक्ति A कहते हैं)। 10 kΩ प्रतिरोध को पंक्ति A और ग्राउंड रेल के बीच जोड़ें। पंक्ति A अब मध्य बिंदु है — इसका वोल्टेज प्रकाश के साथ बदलता है।
- ट्रांज़िस्टर: 2N2222 को ब्रेडबोर्ड पर रखें। बेस को 10 kΩ प्रतिरोध के माध्यम से पंक्ति A से जोड़ें (बेस करंट को सीमित करने के लिए)। एमिटर को ग्राउंड से जोड़ें।
- LED: 220Ω प्रतिरोध को पॉज़िटिव रेल से LED के एनोड (लंबी टांग) तक जोड़ें। LED के कैथोड को ट्रांज़िस्टर के कलेक्टर से जोड़ें।
- LDR को अपने हाथ से ढकें — LED जल जाना चाहिए। इसे उजागर करें — LED बंद हो जाना चाहिए।
संवेदनशीलता समायोजित करना
यदि LED गलत प्रकाश स्तर पर चालू/बंद होता है, तो 10 kΩ निश्चित प्रतिरोध को बदलें:
- उच्च मान (47 kΩ): LED मंद स्थितियों में चालू होता है (कम संवेदनशील)।
- कम मान (4.7 kΩ): LED पहले, तेज़ स्थितियों में चालू होता है (अधिक संवेदनशील)।
फाइन-ट्यूनिंग के लिए, निश्चित प्रतिरोध को 100 kΩ पोटेंशियोमीटर से बदलें। LED के ट्रिगर होने वाले सटीक प्रकाश स्तर को सेट करने के लिए पॉट को घुमाएं।
Arduino संस्करण
Arduino का उपयोग करने से सटीकता जुड़ती है — आप सटीक प्रकाश स्तर पढ़ सकते हैं, कोड में थ्रेशहोल्ड सेट कर सकते हैं, और हिस्टेरेसिस जैसी सुविधाएं जोड़ सकते हैं (थ्रेशहोल्ड पर फ्लिकरिंग को रोकने के लिए)।
वायरिंग
- LDR को 5V और एनालॉग पिन A0 के बीच जोड़ें।
- 10 kΩ प्रतिरोध को A0 और GND के बीच जोड़ें (वोल्टेज डिवाइडर पूरा करना)।
- डिजिटल पिन 8 से GND तक 220Ω प्रतिरोध के साथ LED जोड़ें।
कोड
const int LDR_PIN = A0;
const int LED_PIN = 8;
const int DARK_THRESHOLD = 700; // इस मान को समायोजित करें (0-1023)
void setup() {
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int lightLevel = analogRead(LDR_PIN);
Serial.print("Light level: ");
Serial.println(lightLevel);
if (lightLevel > DARK_THRESHOLD) {
digitalWrite(LED_PIN, HIGH); // अंधेरा - LED चालू करें
} else {
digitalWrite(LED_PIN, LOW); // तेज़ - LED बंद करें
}
delay(200);
}कैलिब्रेट कैसे करें
- कोड अपलोड करें और सीरियल मॉनिटर खोलें (Tools → Serial Monitor)।
- तेज़ स्थितियों में प्रकाश स्तर मान देखें (लगभग ~200–400 हो सकता है)।
- LDR को ढकें और अंधेरे मान को नोट करें (लगभग ~800–950 हो सकता है)।
DARK_THRESHOLDको दोनों के बीच एक मान पर सेट करें (जैसे 700)।- री-अपलोड करें और टेस्ट करें — जब आप LDR को ढकते हैं तो LED जल जाना चाहिए।
हिस्टेरेसिस जोड़ना (फ्लिकर रोकना)
हिस्टेरेसिस के बिना, जब प्रकाश स्तर थ्रेशहोल्ड पर होता है तो LED फ्लिकर करता है। दो थ्रेशहोल्ड का उपयोग करके इसे ठीक करें — एक चालू करने के लिए और एक कम वाला बंद करने के लिए:
const int THRESHOLD_ON = 700; // इससे ऊपर होने पर चालू करें
const int THRESHOLD_OFF = 500; // इससे नीचे होने पर बंद करें
bool ledState = false;
void loop() {
int lightLevel = analogRead(LDR_PIN);
if (lightLevel > THRESHOLD_ON) {
ledState = true;
} else if (lightLevel < THRESHOLD_OFF) {
ledState = false;
}
// थ्रेशहोल्ड के बीच: वर्तमान स्थिति बनाए रखें (हिस्टेरेसिस)
digitalWrite(LED_PIN, ledState ? HIGH : LOW);
delay(100);
}वास्तविक दुनिया के अनुप्रयोग
| अनुप्रयोग | यह प्रकाश संवेदन का उपयोग कैसे करता है |
|---|---|
| स्वचालित नाइट लाइट्स | जब कमरा अंधेरा हो जाता है तो LED या लैंप चालू होता है |
| स्ट्रीट लाइट्स | शाम को चालू, सुबह बंद |
| सोलर गार्डन लाइट्स | दिन में चार्ज, रात में रोशनी |
| स्क्रीन ब्राइटनेस | फोन परिवेशी प्रकाश के लिए डिस्प्ले ब्राइटनेस समायोजित करते हैं |
| सिक्यूरिटी सिस्टम | जब प्रकाश की किरण टूटती है तो पता लगाना |
| लाइट मीटर | फोटोग्राफी के लिए प्रकाश की तीव्रता मापना |
समस्या निवारण
| समस्या | कारण | समाधान |
|---|---|---|
| LED हमेशा चालू है | निश्चित प्रतिरोध बहुत कम, या LDR को कोई प्रकाश नहीं मिल रहा | निश्चित प्रतिरोध बढ़ाएं या LDR प्लेसमेंट जांचें |
| LED हमेशा बंद है | निश्चित प्रतिरोध बहुत उच्च, या LDR संतृप्त | निश्चित प्रतिरोध मान कम करें |
| LED थ्रेशहोल्ड पर फ्लिकर करता है | कोई हिस्टेरेसिस नहीं | दोहरे थ्रेशहोल्ड (Arduino) या RC फिल्टर जोड़ें |
| बहुत धीमी प्रतिक्रिया | सामान्य — LDR को बदलने में 10-100ms लगता है | तेज़ प्रतिक्रिया के लिए फोटोट्रांज़िस्टर का उपयोग करें |
| Arduino हमेशा 0 या 1023 पढ़ता है | वायरिंग त्रुटि — डिवाइडर कनेक्ट नहीं | सत्यापित करें कि LDR और प्रतिरोध 5V और GND के बीच डिवाइडर बनाते हैं |
सारांश
लाइट सेंसर सर्किट एक LDR (फोटोरेसिस्टर) का उपयोग करता है जिसका प्रतिरोध प्रकाश स्तर के साथ बदलता है। वोल्टेज डिवाइडर में एक निश्चित प्रतिरोध के साथ जोड़ा गया, यह एक परिवर्तनीय वोल्टेज उत्पन्न करता है जो ट्रांज़िस्टर स्विच (बुनियादी संस्करण) चला सकता है या Arduino एनालॉग इनपुट (प्रोग्रामेबल संस्करण) द्वारा पढ़ा जा सकता है। सर्किट अंधेरे में LED चालू करता है और प्रकाश में बंद करता है। निश्चित प्रतिरोध मान बदलकर संवेदनशीलता समायोजित करें; स्विचिंग थ्रेशहोल्ड पर फ्लिकरिंग को रोकने के लिए हिस्टेरेसिस जोड़ें।