সুচিপত্র:

তাপমাত্রা সেন্সর (LM35) ATmega32 এবং LCD ডিসপ্লে দিয়ে ইন্টারফেসিং - অটোমেটিক ফ্যান কন্ট্রোল: 6 টি ধাপ
তাপমাত্রা সেন্সর (LM35) ATmega32 এবং LCD ডিসপ্লে দিয়ে ইন্টারফেসিং - অটোমেটিক ফ্যান কন্ট্রোল: 6 টি ধাপ

ভিডিও: তাপমাত্রা সেন্সর (LM35) ATmega32 এবং LCD ডিসপ্লে দিয়ে ইন্টারফেসিং - অটোমেটিক ফ্যান কন্ট্রোল: 6 টি ধাপ

ভিডিও: তাপমাত্রা সেন্সর (LM35) ATmega32 এবং LCD ডিসপ্লে দিয়ে ইন্টারফেসিং - অটোমেটিক ফ্যান কন্ট্রোল: 6 টি ধাপ
ভিডিও: LDmicro 10: Incubator Temperature Regulator (Microcontroller PLC Ladder Programming with LDmicro) 2024, ডিসেম্বর
Anonim
তাপমাত্রা সেন্সর (LM35) ATmega32 এবং LCD ডিসপ্লে দিয়ে ইন্টারফেসিং | স্বয়ংক্রিয় ফ্যান নিয়ন্ত্রণ
তাপমাত্রা সেন্সর (LM35) ATmega32 এবং LCD ডিসপ্লে দিয়ে ইন্টারফেসিং | স্বয়ংক্রিয় ফ্যান নিয়ন্ত্রণ

তাপমাত্রা সেন্সর (LM35) ATmega32 এবং LCD ডিসপ্লের সাথে ইন্টারফেসিং

ধাপ 1:

এই প্রকল্পে, আপনি AVR ATmega32 মাইক্রোকন্ট্রোলার এবং এলসিডি ডিসপ্লে দিয়ে একটি তাপমাত্রা সেন্সর (LM35) ইন্টারফেস করতে শিখবেন।

এই প্রকল্পের আগে আপনাকে নিম্নলিখিত নিবন্ধগুলি সম্পর্কে জানতে হবে

এভিআর স্টুডিওতে এলসিডি লাইব্রেরি কীভাবে যুক্ত করবেন এভিআর মাইক্রোকন্ট্রোলার টিউটোরিয়াল

AVR মাইক্রোকন্ট্রোলারে ADC- এর ভূমিকা | নতুনদের জন্য

তাপমাত্রা সেন্সর (LM35) একটি জনপ্রিয় এবং কম খরচে তাপমাত্রা সেন্সর। ডেটশীট দ্বারা নির্ধারিত VCC 4V থেকে 20V হতে পারে। সেন্সরটি ব্যবহার করার জন্য VCC কে 5V, GND থেকে Ground এবং Out থেকে ADC (ডিজিটাল কনভার্টার চ্যানেল থেকে এনালগ) এর সাথে সংযুক্ত করুন।

আউটপুট 10 ডিগ্রি সেন্টিগ্রেডে 10 মিলিভোল্ট। সুতরাং যদি আউটপুট 310 mV হয় তাহলে তাপমাত্রা 31 ডিগ্রি সি।এই প্রকল্পটি করার জন্য আপনাকে AVRs এর ADC এবং LCD ব্যবহার করে পরিচিত হতে হবে তাই AVRs ADC এর রেজোলিউশন 10bit এবং রেফারেন্স ভোল্টেজের জন্য আপনি 5V ব্যবহার করছেন তাই রেজোলিউশন ভোল্টেজের ক্ষেত্রে

5/1024 = 5.1mV প্রায়

সুতরাং যদি ADC এর ফলাফল 5.1mV এর সাথে মিলে যায় অর্থাৎ যদি ADC রিডিং হয়

10 x 5.1mV = 51mV

আপনি adc_result (ch) ফাংশন ব্যবহার করে যেকোন ADC চ্যানেলের মান পড়তে পারেন;

যেখানে ATmega8 এর ক্ষেত্রে ch হল চ্যানেল নম্বর (0-5)। আপনি যদি LM35 এর আউটপুটকে ADC চ্যানেল 0 এ সংযুক্ত করে থাকেন তাহলে কল করুন

adc_result0 = adc_read (0);

এটি বর্তমান ADC রিডিংকে পরিবর্তনশীল 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 1600000UL নির্ধারণ করুন

#যদি শেষ

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত "LCD/lcd.h"

অকার্যকর adc_init ()

{

// AREF = AVcc

ADMUX = (1 <

// 128 এর ADC Enable এবং prescaler

ADCSRA = (1 <

}

// পড়ুন এডিসি মান

uint16_t adc_read (uint8_t ch)

{

// সংশ্লিষ্ট চ্যানেল 0 ~ 7 নির্বাচন করুন

ch & = 0b00000111; // এবং অপারেশন 7 দিয়ে

ADMUX = (ADMUX & 0xF8) | ch;

// একক রূপান্তর শুরু করুন

// ADSC এ '1' লিখুন

ADCSRA | = (1 <

// রূপান্তর সম্পূর্ণ হওয়ার জন্য অপেক্ষা করুন

// ADSC আবার '0' হয়ে যায়

যখন (ADCSRA & (1 <

রিটার্ন (এডিসি);

}

int প্রধান ()

{

DDRB = 0xff;

uint16_t adc_result0;

int temp;

int far;

চর বাফার [10];

// এডিসি এবং এলসিডি শুরু করুন

adc_init ();

lcd_init (LCD_DISP_ON_CURSOR); // কার্সার

lcd_clrscr ();

lcd_gotoxy (0, 0);

_ বিলম্ব_এমএস (50);

যখন (1)

{

adc_result0 = adc_read (0); // পড়ুন এডিসি মান PA0 এ

temp = adc_result0/2.01; // তাপমাত্রা খোঁজা

// lcd_gotoxy (0, 0);

// lcd_puts ("Adc =");

// itoa (adc_result0, বাফার, 10); // প্রদর্শন ADC মান

// lcd_puts (বাফার);

lcd_gotoxy (0, 0);

itoa (temp, বাফার, 10);

lcd_puts ("Temp ="); // প্রদর্শন তাপমাত্রা

lcd_puts (বাফার);

lcd_gotoxy (7, 0);

lcd_puts ("C");

far = (1.8*temp) +32;

lcd_gotoxy (9, 0);

itoa (দূর, বাফার, 10);

lcd_puts (বাফার);

lcd_gotoxy (12, 0);

lcd_puts ("F");

_ বিলম্ব_এমএস (1000);

যদি (temp> = 30)

{lcd_clrscr ();

lcd_home ();

lcd_gotoxy (0, 1);

lcd_puts ("FAN ON");

পোর্টবি = (1 <

}

যদি (temp <= 30)

{

lcd_clrscr ();

lcd_home ();

lcd_gotoxy (7, 1);

lcd_puts ("FAN OFF");

পোর্টবি = (0 <

}

}

}

ধাপ 4: কোড ব্যাখ্যা করুন

আমি আশা করি আপনি জানেন আপনি জানেন কিভাবে এডিসি সক্ষম করবেন এবং কিভাবে এই কোডে এভিআর মাইক্রোকন্ট্রোলারের সাথে এলসিডি ইন্টারফেস করবেন যখন তাপমাত্রা 30 ডিগ্রি বেশি হলে ফ্যান চালু থাকে এবং আপনি নেতৃত্বাধীন ডিসপ্লে ফ্যান চালু দেখতে পারেন এবং যখন তাপমাত্রা কম তারপর 30 তারপর ফ্যান বন্ধ এবং আপনি ফ্যান বন্ধ দেখতে পারেন

ধাপ 5: আপনি সম্পূর্ণ প্রকল্প ডাউনলোড করতে পারেন

এখানে ক্লিক করুন

প্রস্তাবিত: