आपके पास कुछ विकल्प हैं:
नोट: दिए गए लिंक केवल पहले वाले हैं जो आते हैं। अन्य साइटों की तुलना में उनमें से अधिकांश मूल्यपूर्ण हैं। ईबे इसे अब खरीदें इन वस्तुओं में से अधिकांश के लिए काफी सस्ता हो सकता है। स्पार्कफुन सहित अन्य स्थानों की भी जांच करें ।
- अल्ट्रासोनिक पिंग सेंसर । यह किसी भी तरह से आदर्श नहीं है, लेकिन वे उपयोग करने में आसान हैं। बस एक बाड़े के साथ जोड़ें। यह आदर्श नहीं है क्योंकि यह बताने के लिए पर्याप्त नहीं होगा कि वास्तव में यह कब खाली है। यह थोड़ा अधिक / संवेदनशील के तहत हो सकता है। वजन कठिन होगा, हालांकि अगर यह बिल्कुल भी बदल जाता है।
- रंग संवेदक (बेहतर, लेकिन अधिक लागत) । आपने इसका उल्लेख किया और यह शायद सबसे अच्छा विचार है। यह आपको लाल, हरे और नीले रंग के लिए एनालॉग मूल्य (अरुडिनो के साथ पढ़ने के लिए) देगा। [यह मानते हुए कि उस रंग की सामग्री जितनी अधिक होगी, वोल्टेज उतना अधिक होगा] श्वेत को उन सभी पर 100% और भूरे रंग का होना चाहिए जो कि मेरी छवि होगी कि उनमें से अधिकांश लगभग 30-40% होगी। (अधिक बाद में, यदि आपको यह समझ में नहीं आता है, तो इस भाग को छोड़ दें)
मैं रंग संवेदक पर अधिक विस्तार में जा रहा हूं:
रंगों को यहां तीन मूल्यों के साथ पढ़ा जाता है: लाल, हरा और नीला। बोर्ड पर तीन सेंसर हैं। एक लाल, दूसरा नीला, और दूसरा हरा छोड़कर सब कुछ फ़िल्टर करता है। बोर्ड पर सेंसर आने वाली रोशनी की मात्रा का पता लगाते हैं और फिर उसे एक वोल्टेज में परिवर्तित करते हैं: 5V ("100% लाल / हरा / नीला") या 0V ("0% लाल / हरा / नीला") के बीच। यह तब Arduino (एक एनालॉग पिन पर 0-1024) द्वारा एक संख्या में परिवर्तित किया जा सकता है।
प्रकाश के साथ एक समस्या:
यह सेंसर, जो मैं बता सकता हूं, में एक एलईडी है जो हमेशा चालू रहता है। जब तक आप एक प्रबुद्ध टॉयलेट पेपर धारक नहीं चाहते हैं, तब तक आप या तो उसे हटाना चाहते हैं या उसे कवर कर सकते हैं। अब प्रतीक्षा करें ... आपका सेंसर सोचेगा कि जब यह अंधेरा है, तो यह भूरा है। कोई बात नहीं ... यहाँ आपके लिए कुछ सोचने के लिए है।
एक रंग बीनने वाले का उपयोग करें जैसे मैं उपयोग कर रहा हूं और एक भूरे रंग का चयन करता हूं । इस एक के बाईं ओर, आप "नकली चमक" को नियंत्रित कर सकते हैं। इसके अलावा आरजीबी का हेक्साडेसिमल रूप है। आप इस कैल्सीलेटर के साथ मानक मानों में बदलना चाहते हैं ।
भूरे रंग में, रंग नीला लगभग कोई नहीं है। हमें उस रंग को नजरअंदाज करना चाहिए, जब तक कि आप जांचने का तरीका नहीं चाहते कि यह भूरा है। मैं कहूंगा कि यह हमेशा भूरे रंग के किसी भी छाया के लिए 40% से कम होना चाहिए।
भूरे रंग का एक नमूना छाया के साथ मैं जो बता सकता हूं, वह लाल बहुत अधिक हरे रंग का 2x है। यह अनुपात भिन्न हो सकता है, लेकिन आपको यह सत्यापित करना चाहिए कि यह कुछ हद तक मौजूद है। सफेद / ग्रे / काले के लिए, सभी रंग 1: 1: 1 के आनुपातिक हैं। आप इसका उपयोग यह पता लगाने के लिए कर सकते हैं कि क्या यह अंधेरा है, या यदि यह भूरा है।
int rPin = A0; //Red Pin
int gPin = A1; //Green Pin
int bPin = A2; //Blue Pin
int ledPin = 13; //I made this code with a LED, not a speaker
boolean testTwice = false;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
int rValue = analogRead(rPin);
int gValue = analogRead(gPin);
int bValue = analogRead(bPin);
if (bPin < 256) { //If this is false, either something is in the way or it's white. Going to verify that something's not in the way...
int minRed = rPin * 0.4; //A little under a half for padding... this values may need to be adjusted. Adjust this one and the one below farther apart for less sensitive.
int maxRed = rPin * 0.6; //A little over a half for padding... this values may need to be adjusted.
if (gPin < maxRed && gPin > minRed) { //Verifys that red between minRed and maxRed
digitalWrite(ledPin, HIGH);
delay(5000);
digitalWrite(ledPin, LOW);
}
}
delay(5000); // No need to waste power... you might want to add an actutal sleep function if on battery power
}
सबसे पहले, यह पुष्टि करता है कि नीला 25% से कम है। फिर, यह पुष्टि करता है कि लाल और हरे रंग के बराबर हैं ... 20% दें या लें। (यानी लाल = 100 हरा = 80, लाल = 110 हरा = 90, आदि)। अगर यह सच है, तो आप बहुत अधिक स्थापित कर सकते हैं कि यह भूरा है। फिर, पांच सेकंड के लिए एक एलईडी चालू करें।
यदि आप चाहें तो एलईडी को बजर होने के लिए संशोधित कर सकते हैं। अगर यह बहुत प्रकाश में काम नहीं कर रहा है या अंधेरे प्रकाश में काम कर रहा है, तो आपको इस कथन को सत्यापित करने के साथ समायोजित करना पड़ सकता है कि नीला 256/1024 (1024 = रिज़ॉल्यूशन पिन) से कम है। चूंकि कोड बाद में पुष्टि करता है कि लाल 2x के बारे में हरा है, इसलिए सफेद रंग की कोई भी छाया उस बयान को पारित नहीं करना चाहिए। आपको समायोजित करना पड़ सकता है minRed
और maxRed
आगे (यदि भूरे रंग का पता नहीं है) या करीब होना चाहिए (यदि यह सफेद होने पर भूरे रंग का पता लगाता है)। मैं वास्तव में बिना कलर सेंसर वाले इस कोड का परीक्षण नहीं कर सकता।
नोट: ये थोड़े फ़िज़ूल हो सकते हैं। मैं इसके बजाय एक एलईडी की सिफारिश करूंगा ताकि पूरा घर सिर्फ टॉयलेट पेपर की वजह से रात के बीच में जाग न जाए। इसके अलावा, यदि आप सेंसर को बाधित करते हैं ... यदि यह बाथरूम में नहीं था, तो मैं एक कैमरा की सिफारिश करूंगा और इसे हर बार एक शॉट ले लूँगा जो कि @ jfpolipret के उत्तर जैसे रीड स्विच के साथ बहुत कम होता है ... लेकिन ... (मजाक नहीं) :)