İçindekiler:
- Adım 1: Cihazınızı Hazırlayın
- Adım 2: İki Noktalı Kalibrasyon
- Adım 3: Aldığınız Değerleri Doğru Şekilde Kullanın
Video: Arduino UNO ile DS18B20 Sensör Kalibrasyonu: 3 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
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
İşte ihtiyacınız olan şeylerin bir listesi:
- Arduino UNO (veya MEGA)
- DS18B20 sensör(ler)i
- 4kOhm - 5kOhm direnç (5k1Ohm kullandım)
- Değerleri okumak için LCD ekran (dizüstü bilgisayar kullanabilir ve sadece seri monitörde okuyabilirsiniz)
- 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
Ö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:
ARDUINO PH SENSÖR KALİBRASYONU: 7 Adım
ARDUINO PH SENSÖR KALİBRASYONU: Bu dersimizde Atlas Scientific'in EZO pH sensörünü Arduino Uno kullanarak kalibre edeceğiz. KALİBRASYON TEORİSİ Kalibrasyonun en önemli kısmı kalibrasyon işlemi sırasında okumaları izlemektir. Cihazı kalibre etmek en kolayı
ARDUINO ORP SENSÖR KALİBRASYONU: 3 Adım
ARDUINO ORP SENSÖR KALİBRASYONU: Bu dersimizde Atlas Scientific'in EZO ORP (oksidasyon-redüksiyon potansiyeli) sensörünü Arduino Uno kullanarak kalibre edeceğiz. KALİBRASYON TEORİSİ Kalibrasyonun en önemli kısmı kalibrasyon işlemi sırasında okumaları izlemektir. Bu kolay
ARDUINO ÇÖZÜLMÜŞ OKSİJEN SENSÖRÜ KALİBRASYONU: 4 Adım
ARDUINO ÇÖZÜNTÜ OKSİJEN SENSÖRÜ KALİBRASYONU: Bu dersimizde, Atlas Scientific'in EZO çözünmüş oksijen (D.O) sensörünü Arduino Uno kullanarak kalibre edeceğiz. KALİBRASYON TEORİSİ Kalibrasyonun en önemli kısmı kalibrasyon işlemi sırasında okumaları izlemektir. Kalibre etmek en kolayı
6 Eksenli Sensör Modülü FSP200 Kalibrasyonu ve Testi: 6 Adım
6 eksenli Sensör Modülü FSP200 Kalibrasyon ve Test: FSP200, yön ve yön çıkışı sağlayan 6 eksenli bir atalet ölçüm birimi işlemcisidir. Sabit ve doğru yön ve yön için ivmeölçer ve jiroskop sensörlerinin bir birleşimini gerçekleştirir. FSP200, robotik uygulamalarda kullanım için uygundur
Arduino UNO ile TCRT5000 IR Sensör Modülü Nasıl Kullanılır: 7 Adım (Resimli)
Arduino UNO ile TCRT5000 IR Sensör Modülü Nasıl Kullanılır: Bu eğitimde size TCRT5000 IR Sensör Modülünün kullanımıyla ilgili bazı temel bilgileri öğreteceğiz. Bu temel bilgiler size seri monitördeki analog ve dijital değerleri gösterir. Açıklama: Bu IR yansıtıcı sensör, renk ve bozulmayı algılamak için bir TCRT5000 kullanır