Elektron gradusnik xavo xaroratini o’lchash va ko’rsatish mikroproseccor tizmi Loyihasi

|
Elektron gradusnik xavo xaroratini o’lchash va ko’rsatish mikroproseccor tizmi Loyihasi
|
Sana | 23.12.2023 | Hajmi | 0,81 Mb. | | #127297 |
Bog'liq Elektron gradusnik xavo xaroratini o
Elektron gradusnik xavo xaroratini o’lchash va ko’rsatish mikroproseccor tizmi Loyihasi
Arduino va LM35 harorat sensori yordamida raqamli termometr loyihasi
Termometrlar uzoq vaqtdan beri haroratni o'lchash uchun ishlatiladigan foydali asbobdir. Ushbu loyihada biz real vaqt rejimida 16x2 LCD qurilmada joriy muhit haroratini ko'rsatish uchun Arduino asosidagi raqamli termometrni yaratdik. Haroratni o'lchash uchun uni uylar, ofislar, sanoat va hokazolarda joylashtirish mumkin. Ushbu Arduino termometrini uchta qismga bo'lishimiz mumkin - Birinchi bo'lim LM35 harorat sensori yordamida haroratni sezadi , ikkinchi bo'lim harorat qiymatini Arduino tomonidan amalga oshiriladigan Selsiy shkalasida mos keladigan raqamlarga aylantiradi va tizimning oxirgi qismi haroratni ko'rsatadi. 16x2 LCD . Xuddi shu narsa quyidagi blok diagrammada ko'rsatilgan.
Arduino bilan ushbu raqamli harorat sensorida Arduino Uno butun jarayonni boshqarish uchun ishlatiladi. LM35 harorat sensori atrof-muhit haroratini sezish uchun ishlatiladi, u har 10 mV o'zgarishda chiqish pinida 1 daraja haroratni beradi. LM35 datchikining 1-pinidagi Vcc va 3-pindagi tuproqni va 2-pinidagi chiqish kuchlanishini ulab, uni voltmetr bilan osongina tekshirishingiz mumkin. Misol uchun, agar LM35 sensorining chiqish kuchlanishi 250 m volt bo'lsa, bu harorat 25 daraja Selsiy atrofida ekanligini anglatadi.
Arduino Analog pin A0 yordamida harorat sensorining chiqish kuchlanishini o'qiydi va ushbu analog qiymatni joriy haroratning raqamli qiymatiga aylantirish uchun hisob-kitoblarni amalga oshiradi. Hisob-kitoblardan so'ng arduino ushbu hisob-kitoblarni yoki haroratni LCD displeyning tegishli buyruqlari yordamida 16x2 LCD qurilmasiga yuboradi. Shuningdek, biz DHT11, DS18B20 va boshqa harorat sensorlari yordamida boshqa raqamli termometr loyihalarini qurdik .
Sxema komponentlari
Arduino
Ushbu loyihada biz tizimning butun jarayonini boshqarish uchun Arduino- dan foydalandik. Arduino - bu ATmega AVR kontrollerida ishlaydigan kontroller. Arduino ochiq manbali apparat platformasi bo'lib, loyihani ishlab chiqish uchun juda foydali. Bozorda Arduino UNO, arduino mega, arduino pro mini, Lilypad va boshqalar kabi Arduino platalarining ko'p turlari mavjud yoki siz Arduino-ni o'zingiz ham qurishingiz mumkin .
LM35 harorat sensori
LM35 3 pinli harorat sensori bo'lib, har 10 mVolt o'zgarishida 1 daraja Selsiyni beradi. Ushbu sensor 150 darajagacha bo'lgan haroratni sezishi mumkin. lm35 sensorining 1 raqami Vcc, ikkinchisi chiqish, uchinchisi esa tuproqdir. LM35 eng oddiy harorat sensori bo'lib, uni har qanday mikrokontroller bilan osongina ulash mumkin. Bu yerda LM35 asosidagi loyihalar yordamida Haroratni oʻlchashni tekshirishingiz mumkin .
Pin raqami
|
Funktsiya
|
Ism
|
1
|
Ta'minot kuchlanishi; 5V (+35V dan -2V gacha)
|
Vcc
|
2
|
Chiqish kuchlanishi (+6V dan -1V gacha)
|
Chiqish
|
3
|
Tuproq (0V)
|
Tuproq
|
LM35 haroratni o'lchash uchun Raspberry Pi , NodeMCU , PIC mikrokontrolleri va boshqalar bilan osongina ulanishi mumkin va harorat darajasini ko'rsatish uchun Op-amp bilan mustaqil foydalanish mumkin .
LCD
16x2 LCD birligi o'rnatilgan tizim loyihalarida keng qo'llaniladi, chunki u arzon, oson mavjud, o'lchami kichik va interfeysi oson. 16x2 ikkita satr va 16 ustunga ega, ya'ni u 5x8 nuqtadan iborat 16 blokdan iborat. 8 ma'lumot biti D0-D7 va RS, RW va EN kabi 3 boshqaruv biti bo'lgan ulanishlar uchun 16 pin. Qolgan pinlar ta'minot, yorqinlikni boshqarish va orqa yorug'lik uchun ishlatiladi.
Quvvatlantirish manbai
Arduino Board allaqachon o'rnatilgan quvvat manbai bo'limiga ega. Bu erda biz faqat 9 voltli yoki 12 voltli adapterlarni taxta bilan ulashimiz kerak.
Elektr sxemasi va tushuntirish
Arduino va LM35 harorat sensori yordamida raqamli termometr uchun sxema diagrammasi yuqoridagi rasmda ko'rsatilgan. Sxemada ko'rsatilganidek, ulanishlarni ehtiyotkorlik bilan bajaring. Bu erda 16x2 LCD birligi 4-bitli rejimda to'g'ridan-to'g'ri arduino-ga ulangan. LCD displeyning ma'lumotlar pinlari, ya'ni RS, EN, D4, D5, D6, D7 arduino raqamli piniga ulangan 7, 6, 5, 4, 3, 2. Harorat sensori LM35 arduinoning A0 analog piniga ulangan bo'lib, u Har 10 mV chiqishda uning chiqish pinidagi o'zgarishida 1 daraja Selsiy harorati.
Agar siz Arduino uchun yangi bo'lsangiz, oldingi darsimizda Arduino bilan 16x2 LCD interfeysini o'rganing .
Arduino LM35 kodi va tushuntirish
LM35 yordamida haroratni o'lchash uchun kod oddiy va ushbu qo'llanmaning oxirida berilgan. Avval biz LCD bloki uchun kutubxonani o'z ichiga olamiz, so'ngra LCD va harorat sensori uchun ma'lumotlar va boshqaruv pinlarini aniqlaymiz.
Analog pinda analog qiymatni olgandan so'ng, biz Analog o'qish funksiyasidan foydalanib, ushbu qiymatni o'qiymiz va bu qiymatni o'zgaruvchida saqlaymiz. Va keyin quyidagi formulani qo'llash orqali qiymatni haroratga aylantiring.
float analog_value=analogRead(analog_pin);
float Temperature=analog_value*factor*100
where
factor=5/1023
analog_value= output of temperature sensor
Bu erda daraja belgisi maxsus belgilar usuli yordamida yaratiladi .
Shunday qilib, Arduino bilan haroratni o'lchash uchun oddiy Raqamli Termometrni yaratishimiz mumkin . Demo video bilan to'liq kod quyida keltirilgan.
Kod
#include
LiquidCrystal lcd(7,6,5,4,3,2);
#define sensor A0
byte degree[8] =
{
0b00011,
0b00011,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000,
0b00000
};
void setup()
{
lcd.begin(16,2);
lcd.createChar(1, degree);
lcd.setCursor(0,0);
lcd.print(" Digital ");
lcd.setCursor(0,1);
lcd.print(" Thermometer ");
delay(4000);
lcd.clear();
lcd.print(" Circuit Digest ");
delay(4000);
lcd.clear();
}
void loop()
{
/*---------Temperature-------*/
float reading=analogRead(sensor);
float temperature=reading*(5.0/1023.0)*100;
delay(10);
/*------Display Result------*/
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Temperature");
lcd.setCursor(4,1);
lcd.print(temperature);
lcd.write(1);
lcd.print("C");
delay(1000);
}
|
| |