Mündəricat:
- Addım 1: Cihazınızı hazırlayın
- Addım 2: İki Nöqtəli Kalibrləmə
- Addım 3: Aldığınız Dəyərlərdən Doğru şəkildə istifadə edin
Video: DS18B20 Sensorunun Arduino UNO ilə Kalibrlənməsi: 3 Addım (Şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
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
Budur sizə lazım olanların siyahısı:
- Arduino UNO (və ya MEGA)
- DS18B20 sensorlar
- 4kOhm - 5kOhm müqavimət (5k1Ohm istifadə etdim)
- Dəyərləri oxumaq üçün LCD ekran (noutbukdan da istifadə edə bilərsiniz və sadəcə serial monitorda oxuya bilərsiniz)
- 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ə
Ə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ə:
Torpaq Nəm Sensorunun Kalibrlənməsi: 5 addım
Torpaq Nəm Sensorunun Kalibrlənməsi: Bağbanın bitkilərini nə vaxt sulayacağına qərar verməsinə kömək etmək üçün bazarda bir çox torpaq nəm ölçmə cihazı var. Təəssüf ki, bir ovuc torpağı tutub rəngini və toxumasını yoxlamaq bu gadget'ların çoxu kimi etibarlıdır! Bəzi problar hətta qeydiyyatdan keçir
Arduino ilə HMC5883L Kompas Sensorunun Arayüzü: 10 Addım (Şəkillərlə)
Arduino ilə HMC5883L Pusula Sensorunun İnterfeysi üçün Təlimat: TəsvirHMC5883L, iki ümumi məqsəd üçün istifadə olunan 3 oxlu rəqəmsal bir kompasdır: ferromaqnit kimi bir maqnit materialının maqnitlənməsini ölçmək və ya gücünü və bəzi hallarda istiqamətini ölçmək. bir nöqtədə maqnit sahəsi
Nəmlik Sensorunun Kalibrlənməsi: 7 addım
Rütubət Sensorunun Kalibrlənməsi: Havanın nisbi rütubətini ölçə bilən 3 sensorum var: BME280, SHT21, DHT22. Ölçmə qabiliyyətini 20-80% aralığında +/- 3% dəqiqliklə ifadə etdilər. Ancaq eyni vəziyyətdə 3 sensor üçün test edərkən 3 fərqli nəticə əldə etdim. Bəlkə o
Zamanlayıcı ilə Hərəkət Sensorunun Aktivləşdirilmiş LED Şeridi: 6 Addım (Şəkillərlə)
Zamanlayıcı ilə Hərəkət Sensoru Aktivləşdirilmiş LED Şeridi: Hər kəsə salam! İndi başqa bir təlimat yazmaqdan çox xoşbəxtəm. Bu layihə bir neçə ay əvvəl bir dizayner köməkçisi ilə əlaqə saxladığım zaman ortaya çıxdı (?!) (David @dducic) bir neçə dizayn yardımı istədi
SENSOR SUHU DENGAN LCD DAN LED (LCD və LED ilə İstilik Sensorunun Hazırlanması): 6 Addım (Şəkillərlə)
SENSOR SUHU DENGAN LCD DAN LED (LCD və LED ilə İstilik Sensorunun Hazırlanması): UNIWERSITAS NUSA PUTRA indoneziya və digər ölkələr üçün ən yaxşı sensorlardır və LCD -dən LED -ə çıxın. Sınaqdan keçmək, sensoru yoxlamaq