İçindekiler:

Arduino UNO ile DS18B20 Sensör Kalibrasyonu: 3 Adım (Resimli)
Arduino UNO ile DS18B20 Sensör Kalibrasyonu: 3 Adım (Resimli)

Video: Arduino UNO ile DS18B20 Sensör Kalibrasyonu: 3 Adım (Resimli)

Video: Arduino UNO ile DS18B20 Sensör Kalibrasyonu: 3 Adım (Resimli)
Video: Arduino analog ısı sensörü LM35 ve Dijital ısı sensörü Ds18b20 kullanımı - Arduino Proje -Ders 36- 2024, Kasım
Anonim
Arduino UNO ile DS18B20 Sensör Kalibrasyonu
Arduino UNO ile DS18B20 Sensör Kalibrasyonu
Arduino UNO ile DS18B20 Sensör Kalibrasyonu
Arduino UNO ile DS18B20 Sensör Kalibrasyonu
Arduino UNO ile DS18B20 Sensör Kalibrasyonu
Arduino UNO ile DS18B20 Sensör Kalibrasyonu

SORUMLULUK REDDİ:

Resimlerde gördüğünüz cihaz başka bir projede film geliştirme işlemi için Termostat olarak kullanılmaktadır. O projeye buradan ulaşabilirsiniz. Bir veya birden fazla sensörü kalibre etmek için sadece bu projede bulacağınız şeye ihtiyacınız olacak, daha fazlasına değil ve bu da oldukça basit! Hadi gidelim!

Adım 1: Cihazınızı Hazırlayın

Cihazınızı Hazırlayın
Cihazınızı Hazırlayın

İşte ihtiyacınız olan şeylerin bir listesi:

  1. Arduino UNO (veya MEGA)
  2. DS18B20 sensör(ler)i
  3. 4kOhm - 5kOhm direnç (5k1Ohm kullandım)
  4. Değerleri okumak için LCD ekran (dizüstü bilgisayar kullanabilir ve sadece seri monitörde okuyabilirsiniz)
  5. Sensörü kullanan ve bir şekilde değerleri gösteren bir çizim

Öncelikle modüllerinizi ve sensörünüzü kontrol cihazınıza bağlamanız gerekir. Web'de arama yapmanız için LCD'nin karmaşık kısmını bırakacağım ve size sensörün nasıl bağlanacağını anlatacağım.

Genellikle bu sensörler üç renkli kabloyla gelir: Siyah, Kırmızı, Sarı. İlk ikisi enerji, üçüncüsü veri içindir. Siyahı GNN'ye, kırmızıyı Vcc'ye (5V) ve sarıyı analog girişe bağlayın, diyelim ki A0.

Şimdi bağlantıları tamamlamak için sarı ve kırmızı arasındaki direnci bağlayın.

LCD'yi de takın (toplamda sadece 4 kablo kullanmak için i2c bağlantılı basit bir 16x2 LCD öneririm) ve kablolar ve kablolarla işiniz bitti.

Şimdi süper basit olan eskiz:

#include "OneWire.h"

#include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); DallasSıcaklık sensörü1(&ourWire1); #include "LiquidCrystal_I2C.h"

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

geçersiz kurulum(){ 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); }

Gördüğünüz gibi Dallas Sıcaklık kütüphanesini ve i2c bağlantılı bir LCD ekranı kullanıyoruz.

Kurulumda LCD ve sensörü inizileştiririz ve döngüde sadece sıcaklığı talep eder ve LCD'de göstermek için RawValue değişkeninin içindeki değeri saklarız.

Daha basit tutmak istiyorsanız, aşağıdaki çizime sahip seri monitörü kullanın.

#include "Wire.h"#include "OneWire.h" #include "DallasTemperature.h" #define ONE_WIRE_BUS_1 A0 OneWire ourWire1(ONE_WIRE_BUS_1); DallasSıcaklık sensörü1(&ourWire1);

float RawValue =0;

geçersiz kurulum(){

gecikme(1000); Seri.başla(9600); sensor1.begin(); sensor1.setResolution(11);

}

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

Şimdi sensörü kalibre etmek için projenin özünde beni takip edin.

Adım 2: İki Noktalı Kalibrasyon

İki Noktalı Kalibrasyon
İki Noktalı Kalibrasyon
İki Noktalı Kalibrasyon
İki Noktalı Kalibrasyon
İki Noktalı Kalibrasyon
İki Noktalı Kalibrasyon

Önce bilinmesi gereken bir şey

Bir termo sensörü kalibre etmek için sıcaklığını bildiğiniz bir şeyi ölçmeniz gerekir. Bunu evde yapmanın basit yolu, kaynar su ve "üç noktalı" banyo olarak da adlandırılan bir eriyen buz banyosu kullanmaktır. Bu durumlarda suyun deniz seviyesinde 100°C'de kaynadığını biliyoruz. Kesin bir ölçüm yapmak için irtifanızı bilmeniz ve orada uygun kaynama sıcaklığını hesaplamanız gerektiğini unutmayın.

Buradan kontrol edebilirsiniz!

Dürüst olmak gerekirse, rakımı değil atmosfer basıncını kontrol etmelisiniz. Ama bu yol yeterince doğru.

Üç nokta banyosu veya buz banyosu, suyun katı, sıvı ve gaz üç halde bulunduğu sıcaklıktır, bu sıcaklık 0, 01°C'dir. Basitleştirmek için 0°C'yi kullanacağız.

Sensörün okuduğu değeri ve olması gereken değeri bilerek, DS18B20'nin ham değerini daha doğru bir şekilde değiştirebiliriz.

NOT: sensörü kalibre etmek için daha fazla sıcaklık kullanabilirsiniz, sadece kaynama noktasını bildiğiniz başka bir maddeye (Ether (35°C), Pentane (36, 1°C), Aseton (56°C) veya Etanol (78, 37°C), ancak bu kaynayan maddeler yüksek yanıcı gazlar üretir! Yani yapma!

Kaynayan su:

Bir tencereye biraz su koyun ve kaynayana kadar ısıtın (gaz kabarcıkları oluşuyor ve su kendi kendine çalkalanıyor). Sensörünüzü su dışında hiçbir şeye değmeyecek bir yere daldırın. Birkaç dakika bekleyin ve lcd'yi veya seri monitörü okuyun

Sıcaklık en az bir dakika aynı kalmalıdır. Eğer öyleyse, bu değeri bir yere yazın. Bu sizin: RawHigh değeridir.

Üç noktalı banyo:

Şimdi büyük bir bardak alın (büyük bir şeye ya da tencereye ihtiyacınız yok) ve kenarına kadar buz küpleriyle doldurun. Küçük boyutlu buz küpleri kullanmaya çalışın. Şimdi bardağın %80'ini soğuk suyla doldurun. Kol aşağı inmeye çalışırsa buzla doldurun.

Şimdi sensörünüzü su/buz şeyinin içine koyun ve bir buçuk dakika bekleyin. En az 30 saniye aynı kalması gereken sıcaklığı okuyun. Eğer öyleyse, RawLow değeriniz olduğunu yazın.

Adım 3: Aldığınız Değerleri Doğru Şekilde Kullanın

Yani, şimdi bazı önemli değerleriniz var:

  • hamYüksek
  • hamDüşük
  • ReferansYüksek
  • ReferansDüşük

Referans değerleri açıkçası kaynayan su için 99.9°C (benim 22m rakımda) ve eriyen buz banyosu için 0°C'dir. Şimdi bu değerlerin aralıklarını hesaplayın:

  • RawRange = RawYüksek - RawDüşük
  • ReferenceRange = ReferenceHigh - ReferenceLow

Artık, size doğru bir ölçüm vereceğinden emin olarak bu sensörü başka herhangi bir projede kullanmaya hazırsınız. Nasıl? Burada elde ettiğiniz değeri kullanarak o sensör ile oluşturacağınız projede.

Gelecekteki projenizde burada okuduğunuz değerleri kullanmanız gerekecek ve bunu burada kullandığım isimleri kullanarak yapmanızı öneriyorum.

Değişkenleri void setup() bölümünden önce şu şekilde bildirin:

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

Daha sonra, sensörü her kullanışınızda, Düzeltilmiş Değeri hesaplamak için aşağıdaki formülü kullanabilirsiniz:

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

RawValue açıkça sensörün okumasıdır.

Bu kadar!

Artık DS18B20 sensörünüzü veya kullanacağınız diğer sensörleri nasıl kalibre edeceğinizi biliyorsunuz! İyi eğlenceler!

Önerilen: