Mündəricat:

DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi: 3 Addım (Şəkillərlə)
DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi: 3 Addım (Şəkillərlə)

Video: DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi: 3 Addım (Şəkillərlə)

Video: DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi: 3 Addım (Şəkillərlə)
Video: FLProg10: датчик температуры DS18B20 | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Noyabr
Anonim
DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi
DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi
DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi
DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi
DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi
DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi

DİQQƏT:

Şəkillərdə gördüyünüz cihaz başqa bir layihədə film inkişaf etdirmə prosesi üçün Termostat olaraq istifadə olunur. Bu layihəni burada tapa bilərsiniz. Bir sensoru və ya birdən çoxunu kalibrləmək üçün bu layihədə tapacağınız şeyə ehtiyacınız olacaq, başqa heç nə yoxdur və bu da olduqca əsasdır! Gedək!

Addım 1: Cihazınızı hazırlayın

Cihazınızı hazırlayın
Cihazınızı hazırlayın

Budur sizə lazım olanların siyahısı:

  1. Arduino UNO (və ya MEGA)
  2. DS18B20 sensorlar
  3. 4kOhm - 5kOhm müqavimət (5k1Ohm istifadə etdim)
  4. Dəyərləri oxumaq üçün LCD ekran (noutbukdan da istifadə edə bilərsiniz və sadəcə serial monitorda oxuya bilərsiniz)
  5. Sensoru istifadə edən və bir şəkildə dəyərləri göstərən bir eskiz

Əvvəlcə modullarınızı və sensorunuzu idarəedicinizə bağlamalısınız. LCD -nin mürəkkəb hissəsini internetdə axtarmağınız üçün buraxacağam və sizə sensorun necə bağlanacağını söyləyəcəyəm.

Adətən bu sensorlar üç rəngli tel ilə gəlir: Qara, Qırmızı, Sarı. İlk ikisi enerji, üçüncüsü isə məlumat üçündür. Qarı GNN -ə, qırmızıyı Vcc -ə (5V) və sarıyı analoq girişdə, məsələn A0 -a bağlayın.

İndi əlaqələri tamamlamaq üçün sarı ilə qırmızı arasındakı müqaviməti bağlayın.

LCD -yə də qoşun (cəmi 4 tel istifadə etmək üçün i2c bağlantısı olan sadə bir 16x2 LCD təklif edirəm) və tellər və kabellər bitdi.

İndi çox sadə olan eskiz:

#"OneWire.h" daxil edin

#"DallasTemperature.h" daxil edin #ONE_WIRE_BUS_1 A0 OneWire OurWire1 (ONE_WIRE_BUS_1) təyin edin; DallasTemperatur sensoru1 (& OurWire1); #"LiquidCrystal_I2C.h" daxil edin

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

boş quraşdırma () {lcd.init (); lcd.lightlight (); sensor1.begin (); sensor1.setResolution (11); } boşluq döngəsi () {sensor1.requestTemperatures (); float RawValue = sensor1.getTempCByIndex (0); lcd.setCursor (0, 0); lcd.print ("Sens. 1"); lcd.print (RawValue, 1); }

Gördüyünüz kimi, Dallas Temperatur kitabxanasından və i2c bağlantısı olan bir LCD ekrandan istifadə edirik.

Quraşdırmada LCD və sensoru işə salırıq və döngədə sadəcə temperatur tələb edirik və dəyəri LCD -də göstərmək üçün dəyişən RawValue daxilində saxlayırıq.

Daha sadə saxlamaq istəyirsinizsə, aşağıdakı eskizlə serial monitordan istifadə edin

#"Wire.h" daxil edin "" OneWire.h "daxil edin" "DallasTemperature.h" daxil edin #ONE_WIRE_BUS_1 A0 OneWire OurWire1 (ONE_WIRE_BUS_1) təyin edin; DallasTemperatur sensoru1 (& OurWire1);

float RawValue = 0;

boş quraşdırma () {

gecikmə (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); }

İndi sensoru kalibr etmək üçün layihənin nüvəsində məni izləyin.

Addım 2: İki Nöqtəli Kalibrləmə

İki nöqtəli kalibrləmə
İki nöqtəli kalibrləmə
İki nöqtəli kalibrləmə
İki nöqtəli kalibrləmə
İki nöqtəli kalibrləmə
İki nöqtəli kalibrləmə

Əvvəlcə bilmək lazım olan bir şey

Bir termo sensoru kalibr etmək üçün temperaturu bildiyiniz bir şeyi ölçməlisiniz. Evdə bunu etməyin sadə yolu, "üç nöqtəli" hamam olaraq da adlandırılan qaynar su və əriyən buz hamamından istifadə etməkdir. Bu hallarda suyun dəniz səviyyəsində 100 ° C -də qaynadığını bilirik. Unutmayın ki, dəqiq bir ölçmə aparmaq üçün hündürlüyünüzü bilməli və orada qaynama temperaturunu hesablamalısınız.

Buradan yoxlaya bilərsiniz!

Düzünü desəm, yüksəkliyi yox, atmosfer təzyiqini yoxlamaq lazımdır. Ancaq bu yol kifayət qədər dəqiqdir.

Üç nöqtəli hamam və ya buz hamamı, suyun bərk, maye və qaz kimi üç vəziyyətdə mövcud olduğu temperaturdur, bu temperatur 0, 01 ° C-dir. Sadələşdirmək üçün 0 ° C -dən istifadə edəcəyik.

Sensorun oxuduğu dəyəri və olması lazım olan dəyəri bilərək, DS18B20 -nin xam dəyərini daha doğru bir şeyə dəyişə bilərik.

Qeyd: Eter (35 ° C), Pentan (36, 1 ° C), Aseton (56 ° C) və ya qaynama nöqtəsini bildiyiniz başqa bir maddənin içərisinə qoyaraq sensoru kalibrləmək üçün daha çox temperaturdan istifadə edə bilərsiniz. Etanol (78, 37 ° C), amma qaynayan maddələr yüksək alovlu qazlar əmələ gətirir! Elə etmə!

Qaynar su:

Qazana bir az su tökün və qaynana qədər qızdırın (qaz baloncukları əmələ gəlir və su özünü qarışdırır). Sensorunuzu sudan başqa heç bir şeyə toxunmadığı yerə batırın. Bir neçə dəqiqə gözləyin və LCD və ya serial monitoru oxuyun

İstilik ən azı bir dəqiqə eyni qalmalıdır. Əgər belədirsə, bu dəyəri yazın. Bu sizin: RawHigh dəyərdir.

Üç nöqtəli hamam:

İndi böyük bir şüşə götürün (nə böyük bir şeyə nə də qazana ehtiyacınız yoxdur) və buz kubları ilə sərhədə qədər doldurun. Kiçik ölçülü buz kublarından istifadə etməyə çalışın. İndi şüşənin 80% -ni soyuq su ilə doldurun. Qol aşağı düşməyə çalışarsa buzla doldurun.

İndi sensorunuzu su/buz əşyasının içinə qoyun və bir yarım dəqiqə gözləyin. Ən azı 30 saniyə eyni qalmalı olan temperaturu oxuyun. Əgər belədirsə, RawLow dəyəriniz olduğunu yazın.

Addım 3: Aldığınız Dəyərlərdən Doğru şəkildə istifadə edin

Beləliklə, indi bəzi vacib dəyərlərə sahibsiniz:

  • RawHigh
  • RawLow
  • İstinad Yüksək
  • Referans Aşağı

İstinadların dəyəri açıq şəkildə qaynar su üçün 99.9 ° C (22m yüksəkliyimdə) və əriyən buz hamamı üçün 0 ° C -dir. İndi bu dəyərlərin aralığını hesablayın:

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

İndi bu sensoru başqa bir layihədə istifadə etməyə hazırsınız və bunun sizə düzgün bir ölçü verəcəyinə əminsiniz. Necə? Bu sensorla yaradacağınız layihədə burada əldə etdiyiniz dəyəri istifadə edərək.

Gələcək layihənizdə bu kitabda oxuduğunuz dəyərlərdən istifadə etməli olacaqsınız və bunu burada istifadə etdiyim adlardan istifadə edərək etməyi təklif edirəm.

Void setup () bölməsindən əvvəl dəyişənləri belə elan edin:

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

Sensoru hər dəfə istifadə etdiyiniz zaman Düzəldilmiş Dəyəri hesablamaq üçün aşağıdakı düsturdan istifadə edə bilərsiniz:

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

RawValue, şübhəsiz ki, sensorun oxunmasıdır.

Bu belədir!

İndi DS18B20 sensorunuzu və ya istifadə edəcəyiniz başqa bir sensoru necə kalibr etməyi bilirsiniz! Əylənin!

Tövsiyə: