Saya bekerja pada sistem kontrol pemanas untuk rumah saya, tetapi mengalami masalah dengan pembacaan sensor suhu lebih tinggi dari yang saya harapkan.
Saya memiliki klon Arduino Mini Pro 5V yang dihubungkan ke modul relay, layar HD47780 dan modul Tiny RTC, dengan DS18B20 terpasang padanya.
DS18B20 ditenagai dari Vcc 5v yang diterapkan pada modul Tiny RTC daripada menggunakan daya parasit pada garis DQ (karena saya tidak yakin jika perpustakaan Onewire mendukung mode operasi ini) dan lembar data DS18B20 mengatakan bahwa Vcc mungkin antara 3.0v dan 5.5v. Saya mengukur daya yang diatur dari Mini Pro berada di 5.2V.
Saya membandingkan suhu dari DS dengan termostat ruangan yang ada (bi-metallic), monitor suhu desktop RS dengan dua sensor, 'thermo-hygrometer' kecil dan termometer kulkas bi-logam (di kuartal atas suhunya) kisaran) † . Pembacaan dari DS selalu sekitar 1-2 derajat lebih tinggi dari pembacaan dari sensor lain, yang berada dalam satu derajat satu sama lain.
† Bukan yang sebenarnya, tetapi yang serupa.
Membaca berbagai forum Saya telah mendengar bahwa sensor ini cukup akurat tetapi dapat menderita pemanasan lokal dari komponen di dekat mereka, jadi saya memindahkan sensor ke kabel 20cm dan menempatkannya jauh dari sisa elektronik. Ini tidak membuat perbedaan.
Saya kemudian membaca bahwa DS dapat menjadi panas sendiri jika disuplai dengan tegangan Vcc yang terlalu tinggi, jadi saya menambahkan LED Merah dengan penurunan 1,7v dan mengukur tegangan baru di atas DS sebagai 3,5v, tetapi sekali lagi, setelah menunggu suhu untuk menstabilkan sekali lagi, ini tidak membuat perbedaan.
Adakah yang bisa menyarankan mengapa DS mungkin membaca tinggi dan apa yang bisa saya lakukan untuk mencegah hal ini?
sumber
Jawaban:
Saya telah menempatkan banyak sensor DS18B20 sekarang di berbagai sensor node - mungkin 50 atau lebih. Saya telah belajar sedikit tentang bacaan yang dikembalikan dari mereka. Saya tahu Anda telah mengisolasi beberapa di antaranya sebagai penyebab, tetapi bagus untuk memastikan bahwa itu adalah masalah.
Saya tidak tahu apakah Anda menggunakan Celsius atau Fahrenheit, jadi tingkat masalahnya tidak jelas.
Pemanasan lokal
Saya tidak menganggap Arduino sebagai chip "panas", tetapi menempatkan DS18B20 di dalam selungkup dengan Arduino dan LCD membuat saya melihat bacaan 2-3 ° C lebih tinggi dari yang diharapkan.
Memindahkannya ke luar kandang memperbaiki ini.
Pemanasan dari Vcc tinggi / konversi yang sering
Jika Anda memasok chip dengan Vcc tinggi dan melakukan konversi sesering mungkin (yaitu sesering mungkin), chip akan melakukan pemanasan. Saya telah melihat peningkatan pembacaan ini sebesar 1-2 ° C.
Saya belum melihat masalah dengan Vcc tinggi sendirian, tetapi saya mengoperasikan sebagian besar DS18B20 dalam mode parasit dan mengkonversi paling banyak sekali setiap 10s. Yang dioperasikan dalam mode aktif umumnya dimatikan jika tidak digunakan.
OneWire dan DallasTemperature mendukung mode parasit.
Tidak semua sensor suhu diciptakan sama
Saya memiliki sejumlah sensor suhu sebelum saya mulai bermain-main dengan DS18B20. Hampir tanpa kecuali, ini kurang dibaca. Sebagian besar dari mereka didasarkan pada termistor dan kalibrasi buruk. Saya pikir DS18B20 sudah selesai dibaca, tetapi ketika saya menggunakan termokopel dan meter yang baik, saya bisa memvalidasi bahwa mereka benar.
Ini tentang belajar mempercayai DS18B20.
Panas dilakukan di sepanjang kawat
Jika Anda memiliki sensor pada kabel, kabel melakukan jumlah panas yang mengejutkan. Ini bisa menjadi masalah ketika menjalankan kabel di sepanjang pipa.
DS18B20 palsu
Sensor-sensor ini sangat populer, dan ini tampaknya telah menyebabkan pemalsuan muncul. Saya memiliki sejumlah sensor tahan air stainless steel yang over-read dan timingnya keluar. Mereka bekerja dengan perpustakaan OneWire, tetapi bukan master OneWire DS2482. Saya telah mendengar tentang yang normal TO-92 yang palsu juga.
sumber
Dalam kasus saya, kabel antara UC saya dan sensor terlalu pendek, dan mentransmisikan panas. Saya pikir itu tidak mungkin terjadi pada awalnya, karena sensor suhu lain melaporkan suhu akurat pada jarak yang sama. Saya memindahkannya ke lokasi lain di papan tulis dan voila!
sumber
Mungkin Anda mungkin ingin mengkalibrasi sensor Anda.
Apa bunyinya ketika direndam dalam air mendidih (dengan asumsi permukaan laut)? 102,5 Celcius? Itu akan memberi Anda kalibrasi suhu tinggi -2,5C.
Jelas lebih baik untuk melakukan kalibrasi di sekitar suhu yang Anda harapkan untuk saya ukur. Itu berarti mempercayai (atau rata-rata?) Beberapa alat pengukur dan kalibrasi untuk itu.
sumber
Saya telah melihat offset beberapa derajat C saat menggunakan DS18B20 pada bus 3.3V, beralih ke bus 5.0V yang stabil dan saya mendapat nilai yang lebih masuk akal. (diuji dengan dan tanpa kekuatan parasit)
sumber
Saya sudah melakukan beberapa percobaan. Jika DS18B20 menggunakan kabel pendek <1cm untuk Arduino Pro Micro saya pembacaan 5 derajat lebih dari lingkungan. Pada panjang kabel> 10cm dari arduino board dan di mana pun resistor dipasang (dekat arduino atau dekat DS18B20) bacaannya baik-baik saja.
sumber