Mundarija:

Arduino va DS18B20 bilan raqamli termometr: 7 qadam
Arduino va DS18B20 bilan raqamli termometr: 7 qadam

Video: Arduino va DS18B20 bilan raqamli termometr: 7 qadam

Video: Arduino va DS18B20 bilan raqamli termometr: 7 qadam
Video: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Iyul
Anonim
Arduino va DS18B20 bilan raqamli termometr
Arduino va DS18B20 bilan raqamli termometr
Arduino va DS18B20 bilan raqamli termometr
Arduino va DS18B20 bilan raqamli termometr

LCD displeyda xona haroratini aniqlaydigan raqamli termometrni yaratish kifoya. Bu yangi boshlanuvchilar loyihasi. Sizga kerak bo'lgan asboblar: 1. Arduino UNO R3 2. DS18B20 harorat sensori. 3. 16X2 o'lchamli LCD displey. 4. Simlarni ulash. 5. Loyiha taxtasi. Keling, raqamli termometr yasaymiz ….. Bu arduino uchun Atmega168 pinouts. Agar siz bu termometrni arduino bilan yasashni xohlasangiz, buni o'tkazib yuboring.

1 -qadam: Breadboard -da Arduino -ni yarating

Breadboard -da Arduino -ni yarating
Breadboard -da Arduino -ni yarating

Qo'rqinchli taxtada arduino yaratish juda oson. Endi bosqichma -bosqich simlarni ulash tartibi quyida keltirilgan: 1. Pin 7 -> +5V 2. Pin8 -> GND 3. Pin9 -> Crystal -> 22pF kondensator -> GND 4. Pin10-> Crystal -> 22pF kondensator -> GND. 5. pin 22 -> GND 6. Pin21 va Pin20 -> +5V 7. Pin1-> 10K registori GND +tugmachasini +5V ga bosing Endi siz tayyormiz ……………..

2 -qadam: LCD -ni ulash

LCD -ni ulash
LCD -ni ulash

3 -qadam: DS18B20 harorat sensori ulanishi

DS18B20 harorat sensori ulanishi
DS18B20 harorat sensori ulanishi

4 -qadam: davrani tayyorlash

Davrani tayyorlash
Davrani tayyorlash

LCD -ni armeino IDE -dagi standart LCD misoliga muvofiq atmega yoki arduino bilan ulang. Endi DS1307 DATA avtobusini DIGITAL PIN 7 ga ulang (Atmega pin 13)

5 -qadam: Arduino kodi

#include #include #include int DS18S20_Pin = 7; // DS18S20 signalli pin 7 raqamli rahulmitra LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Harorat chipi i/o OneWire ds (DS18S20_Pin); // rahulmitra tomonidan bo'sh raqamli raqamli pin 7da (bekor) {Serial.begin (9600); lcd.begin (16, 2); // Xabarni LCD displeyga chop eting. lcd.print ("Rahul Mitra"); } void loop (void) {float temperaturasi = getTemp (); Serial.println (harorat); lcd.setCursor (0, 1); lcd.print ("Harorat:"); lcd.print (harorat); lcd.print (" *C"); kechikish (100); // bu erda chiqishni sekinlashtirish uchun o'qish osonroq} float getTemp () {// haroratni bir DS18S20 dan Degel Selsiy bo'yicha bayt ma'lumotlarida qaytaradi [12]; bayt qo'shilishi [8]; agar (! ds.search (addr)) {// zanjirda sensorlar yo'q bo'lsa, ds.reset_search () qidiruvini qayta o'rnating; qaytish -1000; } if (OneWire:: crc8 (addr, 7)! = addr [7]) {Serial.println ("CRC haqiqiy emas!"); qaytish -1000; } if (addr [0]! = 0x10 && addr [0]! = 0x28) {Serial.print ("Qurilma tan olinmagan"); qaytish -1000; } ds.reset (); ds.select (addr); ds.write (0x44, 1); // konvertatsiya qilishni boshlang, parazitlarning kuchi yoqilganda, bayt mavjud = ds.reset (); ds.select (addr); ds.write (0xBE); // Scratchpad -ni o'qing (int i = 0; i <9; i ++) {// bizga 9 baytli ma'lumotlar kerak = ds.read (); } ds.reset_search (); bayt MSB = ma'lumotlar [1]; bayt LSB = ma'lumotlar [0]; float tempRead = ((MSB << 8) | LSB); // ikkita iltifotli float yordamida TemperatureSum = tempRead /16; Qaytish harorati yig'indisi; }

6 -qadam: Nihoyat, siz bajargansiz

Nihoyat, siz qildingiz
Nihoyat, siz qildingiz
Nihoyat, siz qildingiz
Nihoyat, siz qildingiz

7 -qadam: LIVE ga qarang

www.youtube.com/watch?v=7718FODdtio&list=UUY916I6z4Y3QQhzjHsIhR8w

Tavsiya: