Mundarija:

DS18B20 sensorini Arduino UNO bilan kalibrlash: 3 qadam (rasmlar bilan)
DS18B20 sensorini Arduino UNO bilan kalibrlash: 3 qadam (rasmlar bilan)

Video: DS18B20 sensorini Arduino UNO bilan kalibrlash: 3 qadam (rasmlar bilan)

Video: DS18B20 sensorini Arduino UNO bilan kalibrlash: 3 qadam (rasmlar bilan)
Video: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Iyul
Anonim
DS18B20 sensorini Arduino UNO bilan kalibrlash
DS18B20 sensorini Arduino UNO bilan kalibrlash
DS18B20 sensorini Arduino UNO bilan kalibrlash
DS18B20 sensorini Arduino UNO bilan kalibrlash
DS18B20 sensorini Arduino UNO bilan kalibrlash
DS18B20 sensorini Arduino UNO bilan kalibrlash

Ogohlantirish:

Rasmlarda ko'rib turgan qurilmangiz, boshqa loyihada, kino ishlab chiqarish uchun termostat sifatida ishlatiladi. Siz bu loyihani bu erda topishingiz mumkin. Sensorni yoki bir nechtasini kalibrlash uchun sizga bu loyihada topishingiz kerak bo'ladi, boshqa hech narsa yo'q va bu juda oddiy! Qani ketdik!

1 -qadam: qurilmangizni tayyorlang

Qurilmangizni tayyorlang
Qurilmangizni tayyorlang

Mana sizga kerak bo'lgan narsalar ro'yxati:

  1. Arduino UNO (yoki MEGA)
  2. DS18B20 sensori
  3. 4kOm - 5kOm qarshilik (men 5k1Ohm ishlatganman)
  4. Qiymatlarni o'qish uchun LCD displey (siz noutbukdan ham foydalanishingiz mumkin va ularni ketma -ket monitorda o'qishingiz mumkin)
  5. Sensorni ishlatadigan va qandaydir tarzda qiymatlarni ko'rsatadigan eskiz

Avval siz modul va sensorni tekshirgichga ulashingiz kerak. Men LCD -ning murakkab qismini tark etaman, siz Internetda qidirasiz va men sizga sensorni qanday ulash kerakligini aytaman.

Odatda bu sensorlar uchta rangli sim bilan keladi: qora, qizil, sariq. Birinchi ikkita energiya uchun, uchinchisi ma'lumot uchun. Qora rangni GNN ga, qizilni Vccga (5V) va sariqni analog kirishda, masalan, A0 ga ulang.

Endi ulanishlarni yakunlash uchun sariq va qizil orasidagi qarshilikni ulang.

LCD -ni ham ulang (i2c ulanadigan, atigi 4 ta simni ishlatish uchun oddiy 16x2 LCD ni taklif qilaman) va siz simlar va kabellar bilan ishlayapsiz.

Endi eskiz juda oddiy:

#"OneWire.h" ni qo'shing

#"DallasTemperature.h" ni qo'shing #ONE_WIRE_BUS_1 A0 ni belgilang OneWire ourWire1 (ONE_WIRE_BUS_1); Dallas harorat sensori1 (& ourWire1); #"LiquidCrystal_I2C.h" ni qo'shing

LiquidCrystal_I2C lcd (0x27, 16, 2); float RawValue = 0;

void setup () {lcd.init (); lcd.backlight (); sensor1.begin (); sensor1.setResolution (11); } void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Ko'rib turganingizdek, biz Dallas Harorat kutubxonasi va i2c ulangan LCD displeydan foydalanamiz.

O'rnatishda biz LCD va sensorni ishga tushiramiz va pastadirda biz haroratni so'raymiz va qiymatni LCD displeyda ko'rsatish uchun RawValue o'zgaruvchisida saqlaymiz.

Agar siz buni soddalashtirmoqchi bo'lsangiz, ketma -ket monitorni quyidagi eskiz bilan ishlating

#clude "Wire.h" #include "OneWire.h" #include "DallasTemperature.h" #efine ONE_WIRE_BUS_1 A0 OneWire ourWire1 (ONE_WIRE_BUS_1); Dallas harorat sensori1 (& ourWire1);

float RawValue = 0;

bo'sh o'rnatish () {

kechikish (1000); Serial.begin (9600); sensor1.begin (); sensor1.setResolution (11);

}

void loop () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); Serial.print ("Sens. 1"); Serial.println (RawValue, 1); }

Sensorni kalibrlash uchun meni loyihaning asosiy qismida kuzatib boring.

2 -qadam: Ikki nuqtali kalibrlash

Ikki nuqtali kalibrlash
Ikki nuqtali kalibrlash
Ikki nuqtali kalibrlash
Ikki nuqtali kalibrlash
Ikki nuqtali kalibrlash
Ikki nuqtali kalibrlash

Avval biladigan narsa

Termometrni sozlash uchun siz haroratni biladigan narsani o'lchashingiz kerak. Uyda buni qilishning oddiy usuli-qaynab turgan suv va muzli hammomdan foydalanish, uni "uch nuqtali" hammom ham deyishadi. Bunday hollarda, biz bilamizki, suv dengiz sathida 100 ° C da qaynaydi. Shuni yodda tutingki, aniq o'lchovni amalga oshirish uchun siz balandligingizni bilishingiz va u erda to'g'ri qaynash haroratini hisoblashingiz kerak.

Bu erda tekshirishingiz mumkin!

Rostini aytsam, siz balandlikni emas, balki atmosfera bosimini tekshirishingiz kerak. Ammo bu usul etarlicha aniq.

Uch nuqtali hammom yoki muzli hammom-bu suvning qattiq, suyuq va gazli uchta holatda bo'lgan harorati, bu harorat 0, 01 ° C. Biz soddalashtirish uchun 0 ° C dan foydalanamiz.

Sensor o'qiydigan qiymatni va bo'lishi kerak bo'lgan qiymatni bilib, biz DS18B20 xom qiymatini to'g'riroq qilib o'zgartirishimiz mumkin.

QAYD: sensorni kalibrlash uchun siz ko'proq haroratni ishlatishingiz mumkin, uni faqat qaynash nuqtasini Eter (35 ° C), Pentan (36, 1 ° C), aseton (56 ° C) yoki boshqa moddalarga joylashtiring. Etanol (78, 37 ° C), lekin bu qaynab turgan moddalar tez yonadigan gazlar chiqaradi! Shunday qilib, qilma!

Qaynayotgan suv:

Bir oz suvni qozonga soling va qaynab ketguncha qizdiring (gaz pufakchalari paydo bo'ladi va suv o'zini qo'zg'atadi). Sensorni suvdan boshqa narsaga tegmaydigan joyga botiring. Bir necha daqiqa kuting va LCD yoki ketma -ket monitorni o'qing

Harorat kamida bir daqiqa davomida bir xil bo'lishi kerak. Agar shunday bo'lsa, bu qiymatni yozing. Bu sizning: RawHigh qiymati.

Uch nuqtali hammom:

Endi katta stakan oling (sizga katta narsa ham, qozon ham kerak emas) va uni muz kublari bilan chegaraga to'ldiring. Kichik o'lchamdagi muz kublarini ishlatishga harakat qiling. Endi stakanning 80 foizini sovuq suv bilan to'ldiring. Agar qo'l pastga tushmoqchi bo'lsa, uni muz bilan to'ldiring.

Endi sensoringizni suv/muzga joylashtiring va bir yarim daqiqa kuting. Kamida 30 soniya davomida bir xil bo'lishi kerak bo'lgan haroratni o'qing. Agar shunday bo'lsa, uni RawLow qiymati deb yozing.

3 -qadam: O'zingizning qadriyatlaringizni to'g'ri ishlating

Shunday qilib, endi siz bir nechta muhim qadriyatlarga egasiz:

  • RawHigh
  • RawLow
  • MalumotYuqori
  • Malumot past

Ma'lumotlar, albatta, qaynab turgan suv uchun 99,9 ° C (22 m balandligimda) va muzli hammom uchun 0 ° C. Endi bu qiymatlar oralig'ini hisoblang:

  • RawRange = RawHigh - RawLow
  • ReferenceRange = ReferenceHigh - ReferenceLow

Endi siz sensorni har qanday boshqa loyihada ishlatishga tayyormiz, chunki u sizga to'g'ri o'lchov beradi. Qanaqasiga? Loyihada bu erda olingan qiymatdan foydalanib, siz ushbu sensor yordamida yaratasiz.

Kelgusi loyihangizda siz o'qigan qadriyatlaringizni ishlatishingiz kerak bo'ladi va men buni shu erda ishlatgan ismlar yordamida qilishni taklif qilaman.

Void setup () bo'limidan oldin o'zgaruvchilarni quyidagicha e'lon qiling:

float RawHigh = 99.6; float RawLow = 0.5; float ReferenceHigh = 99.9; float ReferenceLow = 0; float RawRange = RawHigh - RawLow; float ReferenceRange = ReferenceHigh - ReferenceLow;

Sensorni har safar ishlatganingizda, tuzatish qiymatini hisoblash uchun quyidagi formuladan foydalanishingiz mumkin.

float CorrectedValue = (((RawValue - RawLow) * ReferenceRange) / RawRange) + ReferenceLow;

RawValue - bu aniq sensorning o'qilishi.

Bo'ldi shu!

Endi siz DS18B20 sensori yoki siz ishlatadigan boshqa sensorni qanday sozlashni bilasiz! Maza qiling!

Tavsiya: