एक स्विच की निगरानी राज्य (डिजिटल पढ़ें धारावाहिक) - Arduino मूल बातें

समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें





यह Arduino मूल बातें एक कोड को लागू करने की विधि पर चर्चा करती है जिसके माध्यम से बाहरी पुश-बटन के ON या OFF राज्य को Arduino के भीतर पढ़ा या मॉनिटर किया जा सकता है।

डिजिटल रीड सीरियल

यहां हम एक उदाहरण के माध्यम से सीखते हैं कि यूएसबी के माध्यम से अपने Arduino और अपने पीसी में धारावाहिक संचार करके स्विच की स्थिति की निगरानी कैसे करें।



अपने Arduino बोर्ड के अतिरिक्त, आपको निम्नलिखित मूलभूत वस्तुओं की आवश्यकता होगी:

हार्डवेयर

एक क्षणिक स्विच, बटन, या एक पुश-टू-ऑन स्विच



10k, 1/4 वाट ओम अवरोधक

ब्रेड बोर्ड
हुक-अप या जम्पर वायर लिंक।

सर्किट ऑपरेशन

ऑपरेशन निम्न चरणों के साथ किया जा सकता है:

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

तीसरे तार का उपयोग पुश-टू-ऑन स्विच के लीड में से एक में डिजिटल पिन 2 को जोड़ने के लिए किया जाता है।

बटन का यह विशेष लीड भी नकारात्मक आपूर्ति रेल या जमीन के लिए एक पुल-डाउन 10k रोकनेवाला के साथ जोड़ता है। स्विच का अन्य मुफ्त लीड 5 वोल्ट की आपूर्ति के सकारात्मक के साथ जुड़ा हुआ है।

ऊपर दिए गए कनेक्शन के साथ, स्विच टॉगल करता है या एक धक्का दिए जाने पर सर्किट में दोहरी क्रिया करता है।

आम तौर पर जब स्विच डिस्कनेक्ट की गई स्थिति में होता है, तो इसके दो लीड अलग-थलग रहते हैं, जैसे कि पिन जो कि पुल-डाउन रेसिस्टर के माध्यम से जमीन से जुड़ा होता है, एक LOW, या एक लॉजिक 0 स्तर प्रदान करता है।

दबाए गए स्थिति में स्विच अपने दो लीडों के एक पुलिंग के क्षण को कार्यान्वित करता है, जैसे कि इसके लीड + 5 वोल्ट के अधीन होते हैं, एक हाई, या तर्क को उनके बीच 1 स्तर प्रदान करते हैं।

बाकी चीजों से डिजिटल i / o पिनआउट्स को अलग करते हुए, एलईडी को हाइवर पर जाने और इरोटिक ब्लिंकिंग के लिए मजबूर कर सकता है। यह इस तथ्य के कारण है कि इनपुट किसी भी चीज़ को प्रदान नहीं किया जा रहा है, या 'लटका' स्थिति में रखा गया है - इसका अर्थ है कि यह किसी निश्चित तर्क के लिए निर्दिष्ट नहीं है, न ही उच्च या निम्न (+ 5 वी या 0 वी), यही कारण है कि हम रोजगार देते हैं स्विच के साथ पुल-डाउन रोकनेवाला।

ढांच के रूप में

संहिता को समझना

नीचे दिए गए कार्यक्रम में, हम प्रति सेकंड 9600 बिट डेटा की दर से सेटअप फ़ंक्शन के भीतर धारावाहिक संचार के साथ शुरू करते हैं, यह Arduino बोर्ड और संलग्न कंप्यूटर के बीच शुरू होता है: Serial.begin (9600)

अगले चरण में हम डिजिटल पिन 2 को ट्रिगर करते हैं, वह पिन जो आउटपुट के लिए एक इनपुट के रूप में पुश स्विच के साथ जिम्मेदार होगा: pinMode (2, INPUT) यह हमारा 'सेटअप' पूरा करता है, अब हम अपने कोड के मुख्य लूप में जाते हैं ।

यहां पुशबटन को दबाने पर, 5 वोल्ट को हमारे सर्किट के माध्यम से प्राप्त करने की अनुमति है, जबकि इनपुट पिन 10-किलोहमीटर अवरोधक के माध्यम से जमीन से जुड़ा हुआ है जब यह एक अनपेक्षित स्थिति में है।

उपरोक्त wha है जिसे हम एक डिजिटल इनपुट कहते हैं, जो एक ऐसी स्थिति को संदर्भित करता है जहां स्विच केवल एक विशेष स्थिति में हो सकता है या तो एक राज्य पर ('1' के रूप में Arduino द्वारा स्वीकार किया जाता है, या LOGIC हाई) या एक ऑफ स्टेट (कल्पना) Arduino द्वारा '0', या LOGIC LOW) के रूप में, जो कोई भी अपरिभाषित बीच में नहीं है।

कार्यक्रम के मुख्य लूप में हमें जिस मूलभूत कार्रवाई को निष्पादित करने की आवश्यकता है, वह है कि पुश बटन के माध्यम से भेजी गई जानकारी को रखने के लिए एक चर लागू करना।

जैसा कि ऊपर संकेतों के साथ '1' या '0' के रूप में होने के बारे में चर्चा की गई है, हम यहां एक इंटेटैटाइप को नियोजित करते हैं। हम इस वैरिएबल को सेंसरवैल्यू नाम दे सकते हैं, और इसे डिजिटल पिन पर पढ़ी जाने वाली सभी चीज़ों के अनुरूप करने के लिए ठीक कर सकते हैं। ये सभी कोड की एक पंक्ति के माध्यम से प्राप्त होते हैं:

int SensValue = digitalRead (2) Arduino के इनपुट को पढ़ लेने के बाद, इसे दशमलव मान के रूप में कंप्यूटर पर वापस प्रिंट करें।

इसे कोड की समापन पंक्ति में Serial.println () कमांड की मदद से लागू किया जा सकता है: Serial.println (SensValue)

इसके बाद, जब भी Arduino डोमेन में Serial Monitor शुरू किया जाता है, हम पुश बटन के खुले होने के दौरान '0 की एक चेन देखते हैं, और चेन' 1 के मामलों में बटन को बंद स्थिति में रखा जाता है।

/*
DigitalReadSerial
Reads a digital input on pin 2, prints the result to the serial monitor
This example code is in the public domain.
*/
// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2

// the setup routine runs once when you press reset:
void setup() {
// initialize serial communication at 9600 bits per second:
Serial.begin(9600)
// make the pushbutton's pin an input:
pinMode(pushButton, INPUT)
}
// the loop routine runs over and over again forever:
void loop() {
// read the input pin:
int buttonState = digitalRead(pushButton)
// print out the state of the button:
Serial.println(buttonState)
delay(1) // delay in between reads for stability
}




पिछला: टाइमर सर्किट के साथ अनुकूलित जल प्रवाह नियंत्रक अगला: एनालॉग को डिजिटल में परिवर्तित करना (एनालॉग रीड सीरियल) - अरुडिनो बेसिक्स