विषयसूची:

तापमान सेंसर (LM35) ATmega32 और LCD डिस्प्ले के साथ इंटरफेसिंग - स्वचालित पंखा नियंत्रण: 6 कदम
तापमान सेंसर (LM35) ATmega32 और LCD डिस्प्ले के साथ इंटरफेसिंग - स्वचालित पंखा नियंत्रण: 6 कदम

वीडियो: तापमान सेंसर (LM35) ATmega32 और LCD डिस्प्ले के साथ इंटरफेसिंग - स्वचालित पंखा नियंत्रण: 6 कदम

वीडियो: तापमान सेंसर (LM35) ATmega32 और LCD डिस्प्ले के साथ इंटरफेसिंग - स्वचालित पंखा नियंत्रण: 6 कदम
वीडियो: LM35 Temperature Sensor with Arduino 2024, जुलाई
Anonim
तापमान सेंसर (LM35) ATmega32 और LCD डिस्प्ले के साथ इंटरफेसिंग | स्वचालित प्रशंसक नियंत्रण
तापमान सेंसर (LM35) ATmega32 और LCD डिस्प्ले के साथ इंटरफेसिंग | स्वचालित प्रशंसक नियंत्रण

तापमान सेंसर (LM35) ATmega32 और LCD डिस्प्ले के साथ इंटरफेसिंग

चरण 1:

इस परियोजना में, आप सीखेंगे कि AVR ATmega32 माइक्रोकंट्रोलर और LCD डिस्प्ले के साथ तापमान सेंसर (LM35) को कैसे इंटरफ़ेस किया जाए।

इस परियोजना से पहले आपको निम्नलिखित लेखों के बारे में जानना होगा

एवीआर स्टूडियो में एलसीडी लाइब्रेरी कैसे जोड़ें| avr माइक्रोकंट्रोलर ट्यूटोरियल

AVR माइक्रोकंट्रोलर में ADC का परिचय | नौसिखिये के लिए

तापमान संवेदक (LM35) एक लोकप्रिय और कम लागत वाला तापमान संवेदक है। डेटाशीट द्वारा निर्दिष्ट Vcc 4V से 20V तक हो सकता है। सेंसर का उपयोग करने के लिए बस Vcc को 5V, GND को ग्राउंड और आउट को ADC (डिजिटल कनवर्टर चैनल के अनुरूप) में से एक से कनेक्ट करें।

आउटपुट 10MilliVolts प्रति डिग्री सेंटीग्रेड है। तो अगर आउटपुट 310 एमवी है तो तापमान 31 डिग्री सेल्सियस है। इस परियोजना को बनाने के लिए आपको एवीआर के एडीसी से परिचित होना चाहिए और एलसीडी का भी उपयोग करना चाहिए। इसलिए एवीआर एडीसी का संकल्प 10 बिट है और संदर्भ वोल्टेज के लिए आप 5 वी का उपयोग कर रहे हैं, इसलिए संकल्प वोल्टेज के संदर्भ में है

5/1024 = 5.1mV लगभग

इसलिए यदि ADC का परिणाम 5.1mV से मेल खाता है अर्थात यदि ADC रीडिंग है

10 x 5.1mV = 51mV

आप फ़ंक्शन का उपयोग करके किसी भी एडीसी चैनल का मूल्य पढ़ सकते हैं adc_result(ch);

ATmega8 के मामले में जहां ch चैनल नंबर (0-5) है। यदि आपने LM35 के आउटपुट को ADC चैनल 0 से कनेक्ट किया है तो कॉल करें

adc_result0 = adc_read(0);

यह वर्तमान एडीसी रीडिंग को वेरिएबल adc_value में स्टोर करेगा। डेटा प्रकार adc_value int होना चाहिए क्योंकि ADC मान 0-1023 तक हो सकता है।

जैसा कि हमने देखा कि ADC परिणाम 5.1mV के कारक में हैं और 1 डिग्री C के लिए LM35 का आउटपुट 10mV है, इसलिए ADC की 2 इकाइयाँ = 1 डिग्री।

तो तापमान प्राप्त करने के लिए हम adc_value को दो से विभाजित करते हैं

तापमान = adc_result0 /2;

अंत में माइक्रोकंट्रोलर 16X2 अल्फ़ान्यूमेरिक एलसीडी में तापमान को डिग्री सेंटीग्रेड में प्रदर्शित करेगा।

चरण 2: सर्किट आरेख

सर्किट आरेख
सर्किट आरेख

चरण 3: कार्यक्रम

#ifndef F_CPU

# परिभाषित करें F_CPU १६०००००UL

#अगर अंत

#शामिल

#शामिल

#शामिल "एलसीडी/एलसीडी.एच"

शून्य adc_init ()

{

// अरेफ = AVcc

एडीएमयूएक्स = (1<

// एडीसी 128. का सक्षम और प्रीस्कूलर

एडीसीएसआरए = (1<

}

// एडीसी मूल्य पढ़ें

uint16_t adc_read(uint8_t ch)

{

// संबंधित चैनल का चयन करें 0~7

सीएच &= 0b00000111; // और 7. के साथ संचालन

ADMUX = (ADMUX और 0xF8)|ch;

// एकल रूपांतरण शुरू करें

// ADSC को '1' लिखें

एडीसीएसआरए |= (1<

// रूपांतरण पूरा होने की प्रतीक्षा करें

// ADSC फिर से '0' बन जाता है

जबकि (एडीसीएसआरए और (1<.)

वापसी (एडीसी);

}

मुख्य प्रवेश बिंदु()

{

डीडीआरबी = 0xff;

uint16_t adc_result0;

अंतर अस्थायी;

अंतर दूर;

चार बफर [10];

// एडीसी और एलसीडी को इनिशियलाइज़ करें

adc_init ();

LCD_init (LCD_DISP_ON_CURSOR); // कर्सर

LCD_clrscr ();

एलसीडी_गोटॉक्सी (0, 0);

_delay_ms(50);

जबकि(1)

{

adc_result0 = adc_read(0); // PA0 पर adc मान पढ़ें

अस्थायी=adc_result0/2.01; // तापमान का पता लगाना

// एलसीडी_गोटॉक्सी (0, 0);

// एलसीडी_पुट्स ("एडीसी =");

// इतोआ (adc_result0, बफर, 10); // एडीसी मूल्य प्रदर्शित करें

// एलसीडी_पुट्स (बफर);

एलसीडी_गोटॉक्सी (0, 0);

itoa (अस्थायी, बफर, 10);

LCD_puts ("अस्थायी ="); // प्रदर्शन तापमान

LCD_puts (बफर);

एलसीडी_गोटॉक्सी (7, 0);

LCD_puts ("सी");

दूर = (1.8 * अस्थायी) +32;

एलसीडी_गोटॉक्सी (9, 0);

itoa (दूर, बफर, 10);

LCD_puts (बफर);

एलसीडी_गोटॉक्सी(12, 0);

LCD_puts ("एफ");

_delay_ms (1000);

अगर (अस्थायी> = 30)

{एलसीडी_सीएलआरएससीआर ();

एलसीडी_होम ();

एलसीडी_गोटॉक्सी (0, 1);

LCD_puts ("फैन ऑन");

PORTB=(1<

}

अगर (अस्थायी<=30)

{

LCD_clrscr ();

एलसीडी_होम ();

एलसीडी_गोटॉक्सी (7, 1);

LCD_puts ("प्रशंसक बंद");

PORTB=(0<

}

}

}

चरण 4: कोड समझाएं

मुझे आशा है कि आप जानते होंगे कि एडीसी को कैसे सक्षम किया जाता है और इस कोड में एवीआर माइक्रोकंट्रोलर के साथ एलसीडी को कैसे इंटरफ़ेस किया जाता है जब तापमान 30 डिग्री से अधिक होता है तो पंखा चालू होता है और आप एलईडी डिस्प्ले पर देख सकते हैं FAN ON और जब तापमान कम होता है तो पंखा बंद है और आप पंखा बंद देख सकते हैं

चरण 5: आप पूरी परियोजना डाउनलोड कर सकते हैं

यहाँ क्लिक करें

सिफारिश की: