Sensor suhu murah dengan MCU

13

Saya mencari solusi murah untuk merasakan suhu dengan MCU. Persyaratan saya adalah:

  • 2 saluran
  • kisaran temp: 30-35 ° C
  • resolusi temp: 1-2 K
  • jarak kabel (MCU -> sensor) 10cm - 2m dapat diterima
  • suhu relatif antara dua saluran sudah cukup, tidak diperlukan suhu absolut

Titik awal saya adalah dua termokopel dengan penguat termokopel, tetapi ini tampaknya berlebihan untuk aplikasi saya. Termokopel beroperasi pada $ 10 di Radiospares, amp pada $ 5 yang biayanya $ 30 hanya untuk memperkirakan suhu.

Apa arah yang baik untuk mencari solusi yang lebih murah. NTC?


Sunting 18 Juli 2012

Setelah stevenvh memperluas jawabannya untuk menunjukkan tingkat linearitas tinggi yang dapat diperoleh dengan NTC, saya menginvestasikan waktu untuk mempertimbangkan kembali apakah NTC bukanlah solusi yang lebih baik.

Namun saya tidak yakin bahwa saya bisa mengikuti stevenvh dalam alasannya tentang kesalahan yang dapat diperoleh dengan NTC dengan harga lebih murah dibandingkan dengan chip semikonduktor.

Untuk mendapatkan suhu dengan NTC, fungsi-fungsi berikut ikut berperan:

  1. fungsi transfer HTSebuahRNTC(R25,B25/85) mengkonversi suhu ambien untuk resistensi
  2. tegangan yang dihasilkan oleh pembagi tegangan HRNTCV(VexcsayatSebuahtsayaHain,RNTC,Rlsayan)
  3. Konversi AD HVbsayats(V,Vref,σcHainverssayaHain)
  4. perkiraan kurva linier: HbsayatsTest(bsayats,σSebuahhalhalrHaix)

Sumber kesalahan yang saya lihat adalah sebagai berikut:

  1. Kesalahan nilai NTC: masing-masing 1% untuk nilai dan B 25 - 85 : total sekitar 2%R25B25-85
  2. 1% untuk nilai resistor linearisaton dan katakanlah 0,5% untuk sumber tegangan eksitasi
  3. Untuk PIC16F1825, tegangan referensi internal yang digunakan untuk ADC memiliki ketidakpastian 6%. Selain itu, ADC sendiri memiliki kesalahan integral, diferensial, offset, dan gain masing-masing dengan urutan 1,5 lsb. Pada 10 bit, gabungan terakhir paling banyak 0,5%.
  4. Seperti yang ditunjukkan stevenvh dalam jawabannya, aproksimasi linear memiliki kesalahan hanya 0,0015% dalam rentang minat.

Kesalahan dalam estimasi suhu dengan demikian jelas akan didominasi oleh kesalahan referensi tegangan ADV dan kesalahan dalam nilai-nilai resistor. Ini jelas akan melebihi 6%. Kesalahan karena perkiraan linear benar-benar dapat diabaikan seperti yang ditunjukkan stevenvh.

Ketidakpastian 6% pada 300 Kelvin setara dengan kesalahan suhu 18K. Chip suhu memiliki kesalahan sekitar 1K. Pada 300K ini sesuai dengan ketidakpastian 0,3%.

Tampak bagi saya bahwa tidak mungkin mengalahkan ini dengan NTC tanpa kalibrasi dan verifikasi kinerja yang sangat hati-hati. Ketidakpastian dalam resistor linearisaton, tegangan eksitasi atau ADC masing-masing dilihat secara terpisah mendorong ketidakpastian solusi NTC di atas ini. Atau apakah saya memiliki kesalahan besar dalam alasan saya?

Saat ini saya yakin bahwa NTC dapat menjadi solusi penginderaan suhu presisi tinggi, tetapi dengan harga murah tampaknya bagi saya bahwa kinerja mereka akan menjadi pukulan dalam kegelapan.

ARF
sumber

Jawaban:

12

1-2 derajat adalah resolusi yang mudah (bahkan ketika Anda bermaksud akurasi, yang tidak sama!). Saya akan mempertimbangkan LM75 dan berbagai klon, atau DS1820 / 18S20 / 18B20 / 1822. Microchip memiliki banyak sensor suhu , termasuk klon LM75 seharga <$ 1. Versi tegangan outputnya murah, tapi saya lebih suka yang digital.

Wouter van Ooijen
sumber
Semua jawaban yang saya terima pada pertanyaan ini sangat membantu. Saya menerima ini karena kemudahan penggunaan klon LM75. Tidak perlu khawatir tentang linearisasi dll adalah nilai tambah yang bagus dalam kasus saya.
ARF
Hanya ingin tahu: Mengapa Anda lebih suka sensor digital?
m .lin
5
Tidak ada kekhawatiran tentang referensi, linearisasi, konfigurasi konverter A / D, dan perangkat kerasnya sepele. Kelemahannya adalah Anda harus berurusan dengan protokol.
Wouter van Ooijen
15

Saya akan mengatakan NTC, ya. Yang ini adalah yang termurah yang bisa saya temukan di Digikey. Sekitar setengah dolar, itu jauh lebih murah daripada IC sensor suhu, yang memiliki presisi yang hampir sama. Keuntungan dari NTC adalah bahwa ia hanya membutuhkan resistor seri dan input ADC pada mikrokontroler Anda, yang kebanyakan dimiliki saat ini.

Harga rendah juga memiliki kelemahan: NTC sama sekali tidak linear. Anda harus menggunakan fungsi transfernya (yang memiliki eksponensial di dalamnya, yang mungkin tidak Anda sukai, atau menggunakan tabel pencarian, yang untuk rentang yang diberikan mungkin merupakan solusi terbaik.

edit dd. 2012-07-13
Bah, dikalahkan oleh LM75 yang menyedihkan. Aku tidak akan membiarkan ini berlalu. :-)

Saya akan menggunakan * 103 * MT * dari seri NTC ini . Pertama fungsi transfer:

R=10kΩe-13.4096+4481.80T-150522T2+1877103T3

T

Tidak terlihat menjanjikan, dan memang antara 0 ° C dan 100 ° C kurva terlihat seperti ini:

masukkan deskripsi gambar di sini

apa pun kecuali linear, seperti yang saya katakan. Kita dapat mencoba untuk membuat garis itu, tetapi ingat bahwa kita akan membuat pembagi resistor dengannya, dan mereka juga tidak linier, jadi linierisasi apa pun sekarang akan dihancurkan oleh resistor seri. Jadi mari kita mulai dengan resistor dan lihat apa yang terjadi. Saya memiliki suplai 3,3 V dan memilih resistor 5,6 kΩ ke Vcc, kemudian hasilnya menjadi

masukkan deskripsi gambar di sini

Tidak buruk sama sekali! Kurva ungu adalah garis singgung dalam rentang minat kami: 30 ° C hingga 35 ° C. Saya bisa menggambar grafik yang diperbesar untuk itu, tapi itu memberi kita dua garis yang bertepatan, jadi mari kita lihat kesalahannya:

masukkan deskripsi gambar di sini

Tidak terlihat bagus juga, tetapi Anda harus melihat skala vertikal, yang memberikan kesalahan relatif dari perkiraan linier dibandingkan dengan karakteristik NTC kami antara 30 ° C hingga 35 ° C. Kesalahan kurang dari 15 ppm, atau 0,0015% .

Mathematica mengatakan persamaan untuk pendekatan linier kami yang hampir sempurna adalah

VHAIUT=-0,0308 T 1V/°C+2.886 V

Ini akan menghasilkan pembacaan ADC 609 dan 561, resp. untuk ADC 10-bit. Itu kisaran 48 untuk perbedaan 5 ° C, atau sekitar 0,1 ° resolusi. Hanya NTC dan sebuah resistor.

Siapa yang butuh LM75 !?



edit dd. 2012-08-13

Fakta: solusi NTC perlu kalibrasi.

Saya berjanji pada Arik untuk kembali pada perhitungan kesalahan, tetapi jauh lebih rumit dari yang saya kira, dan itu tidak dapat diselesaikan karena data yang tidak lengkap. Misalnya, saya memiliki angka yang sangat tepat untuk koefisien dalam fungsi transfer NTC (7 angka signifikan sudah dibulatkan!), Tetapi tidak ada informasi tentang keakuratannya. Beberapa komentar.

ββ menghasilkan kesalahan 0,1% dalam hasil, misalnya.

±

Referensi ADC PIC memiliki toleransi 6% yang sangat buruk. Arik mengatakan Ketidakpastian 6% pada 300 kelvin setara dengan kesalahan suhu 18 K , yang tentu saja tidak masuk akal dan benar-benar tidak masuk akal. Saya melakukan pemeriksaan cepat: menghitung output pembagi tegangan untuk suhu 20 ° C. Ditambahkan 6% untuk itu, dan dihitung kembali ke nilai resistansi NTC, dan suhu yang akan. Kesalahannya bukan 18 ° C, tetapi 1 ° C, atau kurang dari 0,5%, mengacu pada 0 K.

Meski begitu, kesalahan 6% benar- benar tidak relevan ! Jika Anda menggunakan tegangan referensi ADC untuk pembagi resistor, tegangan itu bahkan tidak muncul dalam perhitungan. Saya tidak akan peduli jika kesalahannya 50%. Gunakan referensi lain jika referensi internal yang buruk tidak tersedia di luar controller. Seperti 3,3 V power supply, atau hanya setiap tegangan DC lain yang telah peletakan di sekitar.

Kalibrasi bukan apa yang Anda inginkan untuk proyek satu kali saja, tetapi untuk produksi massal itu bukan masalah sama sekali, dan terutama dalam elektronik konsumen, di mana setiap sen penting, Anda akan lebih mungkin menemukan NTC daripada LM75 yang mahal.

stevenvh
sumber
3
Yang menyenangkan tentang bertanya kepada para ahli adalah Anda mendapatkan setiap jawaban (analog versus digital), sekarang Arik hanya membutuhkan seorang ahli untuk memilih di antara para ahli :)
Wouter van Ooijen
Sekitar setengah dolar? Bukankah ini item yang sama yang Anda sebutkan? Ini adalah $ 0,15 / 100 pcs. Dan MCP9701A adalah sekitar $ 0,25 / 100 pcs. Wow, saya pikir yang digital sangat mahal, masing-masing $ 2 atau $ 3!
abdullah kahraman
2
@ abdullah - semuanya relatif. Seorang insinyur hebat mungkin akan menunjuk pada resistansi seri toleransi 1%, dan koefisien suhu 100 ppm / ° C-nya. Dalam kasus apa pun jika kita memiliki kesalahan pembacaan, itu tidak akan disebabkan oleh perkiraan! :-)
stevenvh
1
@stevenvh Jawaban Anda yang diperluas memberi saya alasan untuk merevisi penilaian awal saya. Namun, saya tidak yakin saya sepenuhnya mengerti bagaimana Anda bisa sampai pada pengukuran presisi tinggi dengan NTC dengan harga murah. Saya akan sangat menghargai jika Anda melihat pertanyaan saya yang diedit dan mengatakan kepada saya apakah saya memiliki cacat dalam alasan saya. Terima kasih banyak atas bantuanmu!
ARF
1
@Arik - memperbarui jawaban saya. Saya merasa terutama dugaan kesalahan 18 K membutuhkan respons :-)
stevenvh
6

Ini terdengar seperti pekerjaan untuk termistor, atau dua termistor lebih tepatnya. Karena Anda hanya perlu membedakan tiga keadaan suhu yang berbeda dan Anda hanya mencari suhu relatif, Anda dapat menghubungkan kedua termistor bersama untuk membuat sinyal analog tunggal. Itu kemudian dapat diukur dengan A / D dibangun ke dalam mikro. Kebanyakan micros memiliki A / Ds, jadi ini tidak membutuhkan biaya lebih. Saya mungkin akan menambahkan beberapa resistor dan kapasitor sebagai filter low pass untuk mengurangi kebisingan.

Satu termistor bergerak dari ground ke sinyal analog dan yang lainnya dari daya ke sinyal analog. Anda mungkin perlu melakukan kalibrasi, tetapi dengan kisaran suhu yang sempit dan resolusi rendah, Anda tidak perlu menjadi mewah. Mungkin hanya menghemat tegangan nol-perbedaan dan mengurangi itu dari bacaan di masa depan sudah cukup.

Olin Lathrop
sumber
Terima kasih atas petunjuk tentang menggunakan dua termistor dalam konfigurasi pembagi tegangan untuk mengukur tegangan relatif. Saya tidak akan memikirkan itu.
ARF
@Arik - dua termistor dalam seri hanya bekerja jika resistansi mereka bervariasi secara linear dengan suhu, jadi pastikan untuk memeriksanya. (Saya lakukan dalam jawaban saya.)
stevenvh
@stevenvh: Ya, Anda benar, tetapi perhatikan kisaran suhu yang sangat sempit dan resolusi rendah. Dua termistor yang pernah dikalibrasi pada wadah suhu yang sama di dekat bagian tengah kisaran harus cukup baik. Satu tidak akan pernah lepas dari yang lain lebih dari 5 degC.
Olin Lathrop
@Olin - Semua benar. Saya kira saya seharusnya menambahkan "jika Anda ingin mengukur rentang suhu yang jauh lebih luas".
stevenvh
5

Jika Anda tidak mengetahui metode delta-Voltage current diode melangkah dari pengukuran suhu dan tertarik untuk mengukur suhu Anda harus membaca ini - itu mungkin mengubah ide Anda pada pengukuran suhu.


Saya sedikit terlambat ke pesta.
Karena jawabannya sudah digunakan sekarang sebagian besar saya hanya akan menguraikan metode alternatif yang memiliki manfaat besar tetapi yang tampaknya sangat sedikit digunakan dalam bentuk diskrit.

Metode ini umumnya digunakan dalam IC pengukuran suhu IC tetapi masih tampak kurang diketahui dari yang diharapkan.

Jika silikon (misalnya) dioda diumpankan secara bergantian dengan dua arus yang diketahui, perubahan tegangan delta dengan perubahan arus terkait dengan suhu absolut.

Metode ini digunakan dalam (setidaknya) TI LM82, LM83, LM84, LM87 & LTC3880, LTC3883 dan sensor LTC2974.

Perhatikan bahwa metode ini berbeda dengan metode biasa untuk mengukur penurunan tegangan maju dioda absolut pada arus yang diberikan untuk menyimpulkan suhu. Metode ini secara substansial lebih akurat dan tidak memerlukan kalibrasi khusus sensor.

Akurasi sekitar 0,1 derajat C (atau K) dapat dicapai.
Resolusi tergantung pada metode pengukuran.

Hasilnya adalah kalibrasi perangkat gratis.
Hasilnya hanya bergantung pada tipe dioda dasar (mis. Silikon, germanium)
mis. Jika Anda menggunakan dioda sinyal sub 1 sen 1N4148 Anda dapat mengubahnya untuk 1N4148 lainnya dan mendapatkan akurasi yang sama tanpa kalibrasi ulang.

Keakuratan pengaturan dua arus yang digunakan jelas memengaruhi akurasi hasil, tetapi karena ini dapat dipilih agar sesuai dengan sumber daya yang tersedia, hasilnya bisa sangat baik.

Metode ini digunakan oleh beberapa tetapi tidak semua sistem pengukuran suhu prosesor on-die. Anda biasanya akan menemukan bahwa di mana sistem ini digunakan, deskripsi teknis sangat ringan pada detail dan agak dikaburkan - yaitu mereka tampaknya ingin merahasiakannya meskipun metode tersebut mungkin kembali bekerja oleh Widlar pada pertengahan 1960-an.

Metode ini menyaingi akurasi yang dapat dicapai dengan perawatan yang wajar menggunakan termistor NTC atau PT100 dll. Platinum dan sejenisnya, dengan tingkat kompleksitas dan kesulitan yang sangat kompetitif.


Catatan 199 Aplikasi Perangkat Analog yang luar biasa ini Mengukur suhu pada chip komputer dengan kecepatan dan akurasi mengklaim teknik ini adalah yang baru. Saya sama sekali tidak yakin bahwa mereka benar - tetapi tentu bermanfaat dan kurang diketahui yang akan diharapkan.

Dari kertas di atas (sedikit ditulis ulang) untuk arus I dan NI dan drop tegangan dioda Cv1 pada arus 1 dan Vd2 pada arus 2:

Vd1 - Vd2 = DVd = (kT / q) ln (I / NI) = (kT / q) ln (1 / N)

Karena N, k, dan q semuanya dikenal sebagai konstanta,
T = (Constant) (DVd)

_

Catatan aplikasi TI Luar Biasa Beberapa Sensor Suhu Dioda Jauh

Wikipedia - Sensor suhu celah pita silikon

[LT AN137 Penginderaan Suhu Akurat dengan Persimpangan PN Eksternal] http://cds.linear.com/docs/Application%20Note/an137f.pdf
Digunakan dalam misalnya LTC3880, LTC3883 dan LTC2974.

Russell McMahon
sumber
3

Suhu sangat sederhana (Celcius) diukur dengan Thermistor (10K) B25 / 100 = 4300 Saya mendapat inspirasi dari komentar di atas, baca di artikel ini.

Saya membeli termistor dari DigiKey 10K 5% masing-masing seharga $ 1. Saya Ingin mendapatkan pengukuran suhu yang adil tanpa matematika yang mengambang dan rumit. Menghubungkan ke Arduino sebagai berikut: Vref ke 3.3v; analog-0 A0 melalui resistor 10K dan 3.3V. ; Termistor A0 ke ground. Saya mendapatkan suhu dalam Celcius sebagai berikut: Kode parsial: analogReference (EKSTERNAL);
ADC = analogRead (0);
Th = 10000 / (1023 / ADC) -1; // 10000 adalah fix resitor yang digunakan di pembagi.
T = (775 - Th) / 10;

Accruacy adalah: +1 pada 25C, +0 pada 20C, -1 pada 0C, +2 pada -20C. Anda mengubah konstanta 775 menjadi lebih dekat dengan rentang keinginan yang Anda inginkan. Misalnya, gunakan 765 bukannya 775 untuk mendapatkan 0 kesalahan sekitar 25C. Karena ini adalah bilangan bulat matematika, saya menambahkan 5 hingga 770 sebelum membaginya dengan 10 untuk dibulatkan.

Menampilkan hubungan antara Thermistor, ADC, Suhu dan hasil yang Dihitung

Alain Théroux
sumber
1

Saya menggunakan LM35DZ . Temperatur berkisar 0 Celcius hingga 100 Celcius, output linier dan impedansi rendah ; Saya telah menggunakannya dengan koneksi langsung ke input ADC PIC saya, bekerja dengan sangat baik sejauh ini.

Satu unit berharga sekitar USD 3.

Ya ampun Lee
sumber
3
Dan dia akan membutuhkan dua dari mereka. Tidak terlihat seperti solusi murah untuk saya. Tidak dibandingkan dengan NTC hebat saya! :-)
stevenvh
Saya menggunakan chip LM35 juga (dan saya suka mereka), tapi saya pikir mereka sedikit berlebihan untuk pertanyaan ini.
Johan
0

Suhu yang sangat sederhana (Celcius) diukur dengan Thermistor ... masing-masing seharga $ 1.

Bagaimana dengan chip STM32F0? Modul ADC-nya mengandung sensor suhu internal DAN nilai-nilai yang dikalibrasi pada dua titik suhu DAN nilai yang dikalibrasi untuk generator Vref internalnya.

Dengan semua itu digabungkan, Anda dapat menggunakannya sebagai sensor suhu yang sangat akurat - 12-bit adc, dan sigma yang hanya lebih dari 1 lsb - pada rentang tegangan yang lebar.

Ini juga dapat diprogram sebagai sensor tempearture khusus: kebanyakan dalam mode tidur dan bangun untuk membaca suhu dan mengirimkan data dan kemudian kembali tidur.

semua itu kurang dari satu dolar dalam jumlah kecil.

dannyf
sumber