इस ट्यूटोरियल में हम ARDUINO UNO में ADC (एनालॉग से डिजिटल रूपांतरण) की अवधारणा पेश कर रहे हैं। Arduino बोर्ड में छह ADC चैनल हैं, जैसा कि नीचे दिए गए आंकड़े में दिखाया गया है। उनमें से किसी एक या सभी को एनालॉग वोल्टेज के इनपुट के रूप में उपयोग किया जा सकता है। Arduino ऊनो एडीसी (से (0- (2 ^ 10) 1023) पूर्णांक मूल्यों इतना) 10 बिट संकल्प के है। इसका मतलब है कि यह 0 और 10 वोल्ट के बीच 0 और 1023 के बीच पूर्णांक मानों में इनपुट वोल्टेज को मैप करेगा। इसलिए प्रति यूनिट (5/1024 = 4.9mV) प्रति यूनिट।
इस सब में हम 'A0' चैनल से एक पोटेंशियोमीटर या पॉट को जोड़ने जा रहे हैं, और हम एक साधारण प्रदर्शन पर ADC परिणाम दिखाने जा रहे हैं। साधारण डिस्प्ले 16x1 और 16x2 डिस्प्ले यूनिट हैं। 16x1 डिस्प्ले यूनिट में 16 अक्षर होंगे और एक लाइन में होंगे। 16x2 में कुल 16in 1 सेंट लाइन में 32 और 2 nd लाइन में 16 अन्य वर्ण होंगे । यहां यह समझना चाहिए कि प्रत्येक वर्ण में 5x10 = 50 पिक्सेल होते हैं, इसलिए एक पात्र को प्रदर्शित करने के लिए सभी 50 पिक्सेल को एक साथ काम करना होगा, लेकिन हमें इसके बारे में चिंता करने की आवश्यकता नहीं है क्योंकि डिस्प्ले यूनिट में एक अन्य नियंत्रक (HD44780) है जो पता लगाता है पिक्सल्स को नियंत्रित करने का काम (आप इसे एलसीडी यूनिट में देख सकते हैं, यह पीछे की तरफ काली आँख है)।
अवयव आवश्यक
हार्डवेयर: ARDUINO UNO, बिजली आपूर्ति (5v), JHD_162ALCD (16x2LCD), 100uF संधारित्र, 100KΩ पॉट या पोटेंशियोमीटर, 100nF संधारित्र।
सॉफ्टवेयर: Arduino IDE (रातोरात Arduino)
सर्किट आरेख और स्पष्टीकरण
16x2 एलसीडी में बैक लाइट होने पर सभी में 16 पिन होते हैं, अगर बैक लाइट नहीं है तो 14 पिन होंगे। एक बिजली या वापस प्रकाश पिन छोड़ सकते हैं। अब 14 पिनों में 8 डेटा पिन (7-14 या D0-D7), 2 पावर सप्लाई पिन (1 & 2 या VSS & VDD या GND & + 5v), कंट्रास्ट कंट्रोल के लिए 3 rd पिन (VEE- नियंत्रण हैं कि पात्रों को कितना मोटा होना चाहिए दिखाया गया है), और 3 नियंत्रण पिन (आरएस और आरडब्ल्यू और ई)।
सर्किट में, आप देख सकते हैं कि मैंने केवल दो नियंत्रण पिन लिया है, इसके विपरीत बिट और आरईएडी / WRITE का अक्सर उपयोग नहीं किया जाता है, ताकि उन्हें जमीन पर छोटा किया जा सके। यह एलसीडी को कंट्रास्ट और रीड मोड में डालता है। हमें केवल वर्ण और डेटा भेजने के लिए सक्षम और आरएस पिन को नियंत्रित करने की आवश्यकता है।
एलसीडी के लिए जो कनेक्शन दिए गए हैं, वे नीचे दिए गए हैं:
PIN1 या VSS जमीन पर
PIN2 या VDD या VCC से + 5v पावर
पिन 3 या वीईई को ग्राउंड (शुरुआती के लिए अधिकतम विपरीत देता है)
PIN4 या RS (रजिस्टर चयन) ARDUINO UNO के PIN8 को
पिन 5 या आरडब्ल्यू (पढ़ें / लिखें) को जमीन पर रखें (रीड मोड में एलसीडी लगाता है उपयोगकर्ता के लिए संचार को आसान बनाता है)
PIN6 या E (सक्षम करें) ARDUINO UNO का PIN9
PIN11 या D4 से AR10INO UNO का PIN10
PIN12 या D5 से AR11INO UNO का पिन 11
PIN13 या D6 से AR12INO UNO का पिन 12
पिन 14 या एआर 7 के यूएन 13 को पिन 13
ARDUINO IDE उपयोगकर्ता को 4 बिट मोड में एलसीडी का उपयोग करने की अनुमति देता है । इस प्रकार का संचार उपयोगकर्ता को ARDUINO पर पिन उपयोग को कम करने में सक्षम बनाता है, इसके विपरीत अन्य ARDUINO को इसे 4 मोड में उपयोग करने के लिए अलग से प्रोग्राम करने की आवश्यकता नहीं है क्योंकि डिफ़ॉल्ट रूप से ARDUINO 4 बिट मोड में संचार करने के लिए सेट है। सर्किट में आप देख सकते हैं कि हमने 4bit संचार (D4-D7) का उपयोग किया है।
इसलिए उपरोक्त तालिका से मात्र अवलोकन से हम एलसीडी के 6 पिन को कंट्रोलर से जोड़ रहे हैं जिसमें 4 पिन डेटा पिन और 2 पिन नियंत्रण के लिए हैं।
उपरोक्त आंकड़ा ARDUINO UNO के ADC का c ircuit आरेख दिखाता है ।
काम कर रहे
ARDUINO UNO में LCD को इंटरफेज करने के लिए, हमें कुछ चीजों को जानना होगा।
|
सबसे पहले UNO ADC चैनलों का डिफ़ॉल्ट संदर्भ मान 5V है। इसका मतलब है कि हम किसी भी इनपुट चैनल पर ADC रूपांतरण के लिए अधिकतम 5V का इनपुट वोल्टेज दे सकते हैं। चूंकि कुछ सेंसर 0-2.5V से वोल्टेज प्रदान करते हैं, 5V संदर्भ के साथ हमें कम सटीकता प्राप्त होती है, इसलिए हमारे पास एक निर्देश है जो हमें इस संदर्भ मूल्य को बदलने में सक्षम बनाता है। इसलिए हमारे पास संदर्भ मूल्य बदलने के लिए ("analogReference ();")
डिफ़ॉल्ट रूप से हमें अधिकतम बोर्ड एडीसी रिज़ॉल्यूशन मिलता है जो 10 बिट्स है, इस रिज़ॉल्यूशन को निर्देश ("analogReadResolution (बिट्स);") का उपयोग करके बदला जा सकता है। यह संकल्प परिवर्तन कुछ मामलों के लिए काम में आ सकता है।
अब यदि उपरोक्त शर्तों को डिफ़ॉल्ट पर सेट किया गया है, तो हम सीधे '' analogRead (पिन); "A0" बनें। ADC से मान को पूर्णांक में "int ADCVALUE = analogRead (A0)" के रूप में लिया जा सकता है; ", इस निर्देश द्वारा ADC पूर्णांक" ADCVALUE "में संग्रहीत होने के बाद मान।
अब बात करते हैं 16x2 LCD की। पहले हमें हेडर फ़ाइल को सक्षम करना होगा ('#include'
दूसरा हमें यह बताने की आवश्यकता है कि हम किस प्रकार के एलसीडी का उपयोग कर रहे हैं। चूंकि हमारे पास विभिन्न प्रकार के एलसीडी हैं (जैसे 20x4, 16x2, 16x1 आदि)। यहाँ हम UNO में एक 16x2 LCD इंटरफ़ेस करने जा रहे हैं, इसलिए हमें 'lcd.begin (16, 2);' मिलता है। 16x1 के लिए हमें 'lcd.begin (16, 1);' मिलता है।
इस निर्देश में हम बोर्ड को यह बताने जा रहे हैं कि हम पिन कहाँ से जुड़े हैं, जो पिन जुड़े हुए हैं उन्हें "RS, En, D4, D5, D6, D7" के रूप में दर्शाया जाना चाहिए। इन पिनों का सही ढंग से प्रतिनिधित्व किया जाना है। चूंकि हम RS को PIN0 से जोड़ते हैं और इसलिए सर्किट आरेख में दिखाते हैं, इसलिए हम "लिक्विड क्रिस्टल एलसीडी (0, 1, 8, 9, 10, 11) के रूप में बोर्ड को पिन नंबर का प्रतिनिधित्व करते हैं।"
ऊपर के बाद वहाँ सब छोड़ दिया जाता है डेटा भेजने के लिए, एलसीडी में प्रदर्शित होने वाले डेटा को "cd.print (" हैलो, दुनिया! ") के रूप में लिखा जाना चाहिए। इस कमांड के साथ LCD 'हैलो, वर्ल्ड!' प्रदर्शित करता है।
जैसा कि आप देख सकते हैं कि हमें किसी और के बारे में चिंता करने की आवश्यकता नहीं है, हमें बस आरंभ करना है और यूएनओ डेटा प्रदर्शित करने के लिए तैयार होगा। हमें BYTE द्वारा यहाँ डेटा भेजने के लिए एक प्रोग्राम लूप लिखना नहीं है।
Arduino Uno के ADC का उपयोग करके नीचे दिए गए C प्रोग्राम में स्टेप बाई स्टेप बताया गया है।