grafik termistor. Pengukuran suhu dengan termistor NTC. Sirkuit untuk menguji varistor

Pelajari tentang termistor dan cara memprogram Arduino untuk mengukur datanya.

Pernahkah Anda bertanya-tanya bagaimana beberapa perangkat seperti termostat, bantalan pemanas printer 3D, mesin mobil, dan oven mengukur suhu? Anda bisa mengetahuinya di artikel ini!

Mengetahui suhu bisa sangat membantu. Mengetahui suhu dapat membantu menyesuaikan suhu ruangan ke suhu yang nyaman, memastikan bahwa bantalan pemanas printer 3D cukup panas agar bahan seperti ABS dapat menempel pada permukaannya, dan mencegah mesin dari panas berlebih atau membakar makanan yang sedang dimasak.

Insinyur elektronik percaya bahwa termometri menjadi semakin populer dalam aplikasi modern. Dua jenis solusi pengukuran suhu yang umum digunakan adalah negatif termistor suhu dan sensor suhu dari tegangan keluaran. Termistor adalah resistor yang resistansinya bergantung pada suhu.

Manfaat utamanya adalah tersedianya lebih banyak pilihan paket. Ini sering berarti waktu respons yang lebih cepat, karena waktu respons sangat bergantung pada ukuran paket. Namun, termistor dapat dikombinasikan dengan jaringan resistif yang kompleks untuk membantu linierisasi kurva pada rentang suhu yang terbatas.

Pada artikel ini, kami hanya mempertimbangkan satu jenis sensor yang mampu mengukur suhu. Sensor ini disebut termistor.

Termistor memiliki resistansi yang jauh lebih bergantung pada suhu daripada jenis resistor lainnya.

Kami akan menggunakan Arduino untuk mengukur dan memproses pembacaan termistor, dan kemudian kami mengubah pembacaan tersebut menjadi format satuan suhu yang mudah dibaca.

Seperti terlihat pada Gambar 2, ini meningkatkan arus melalui jaringan pembagi tegangan. Dalam beberapa kasus, buffer mungkin diperlukan. Abstrak Teknologi terus berkembang dan para insinyur menemukan bahwa kebutuhan akan penginderaan suhu menjadi lebih umum. Pada akhirnya, bagaimanapun, solusi penentuan suhu yang tepat tergantung pada output dan persyaratan aplikasi individu.

Termistor dan aplikasinya

Termistor adalah elemen sensitif suhu yang terdiri dari bahan semikonduktor yang disinter yang menunjukkan perubahan besar dalam resistansi sebanding dengan perubahan kecil dalam suhu. Termistor dapat beroperasi pada rentang suhu yang luas dan memberikan nilai suhu dengan mengubah resistansi, yang dibentuk dalam dua kata: termal dan resistor. PTC dan NTC adalah dua jenis termistor utama yang digunakan.

Di bawah ini adalah foto termistor yang akan kita gunakan:

Komponen yang diperlukan

Komponen

  • Arduino (Mega atau Uno atau model lainnya);
  • beberapa jumper;
  • besi solder dan solder (mungkin diperlukan jika termistor Anda tidak cocok dengan konektor pada papan Arduino).

Perangkat lunak

  • Arduino IDE

Teori

Dengan penggunaan resistor biasa, Anda tidak ingin resistansinya berubah seiring perubahan suhu. Ini tidak realistis dalam kehidupan nyata, Anda hanya dapat memberikan perubahan kecil dalam resistansi dengan perubahan suhu yang besar. Jika ini tidak terjadi, maka resistor anehnya akan mempengaruhi pengoperasian sirkuit, misalnya, LED bisa bersinar lebih terang atau lebih redup saat suhu lingkungan berubah.

Termistor mudah digunakan, murah, tahan lama, dan dapat diprediksi untuk perubahan suhu. Termistor terutama digunakan dalam peralatan rumah tangga seperti oven dan lemari es, dan sebagainya. Stabilitas, sensitivitas dan waktu konstan adalah sifat termistor umum yang membuat termistor ini tahan lama, portabel, ekonomis, sangat sensitif, dan paling cocok untuk pengukuran suhu titik tunggal.

Koefisien suhu positif Termistor Koefisien suhu negatif Termistor. Termistor ini dibedakan menjadi dua kelompok tergantung pada struktur dan proses pembuatannya. Kelompok pertama termistor termasuk silistors, yang menggunakan silikon sebagai bahan semikonduktor.

Tetapi bagaimana jika Anda benar-benar ingin kecerahan LED menjadi fungsi suhu? Di sinilah termistor masuk. Seperti yang Anda duga, resistansi termistor berubah secara dramatis dengan sedikit perubahan suhu. Untuk menggambarkan hal ini, berikut adalah kurva resistansi termistor:

Gambar hanya menunjukkan unit pengukuran tanpa nilai aktual, karena rentang resistansi tergantung pada jenis termistor tertentu. Seperti yang Anda lihat, saat suhu naik, resistansi termistor berkurang. Ini adalah ciri khas resistor Koefisien Suhu Negatif, atau termistor NTC.



Jenis-jenis ini tergantung pada hal-hal berikut. Mereka memiliki lapisan suhu tinggi untuk perlindungan mekanis, stabilitas lingkungan dan isolasi listrik. Jenis penutup: Ini dapat berupa penutup plastik atau keramik, yang digunakan berdasarkan persyaratan aplikasi.

  • Elemen: Ini adalah termistor dengan tipe cakram, pelat, dan silinder.
  • Jenis Perakitan: Produk ini karena konstruksi dan bentuknya.
Spesifikasi termistor berikut menunjukkan hubungan antara berbagai parameter seperti suhu, resistansi, arus, tegangan, dan waktu.

Ada juga termistor Koefisien Suhu Positif (PTC) yang resistansinya meningkat seiring dengan kenaikan suhu. Namun, termistor PTC memiliki semacam titik belok dan banyak berubah resistansi pada suhu tertentu. Hal ini membuat interfacing dengan termistor PTC sedikit lebih sulit. Untuk alasan ini, termistor NTC lebih disukai di sebagian besar pengukur suhu murah.

Pada gambar di bawah, kita dapat mengamati seberapa cepat resistansi berubah dengan suhu, yaitu. peningkatan tajam dalam resistensi dengan perubahan suhu kecil.


Karakteristik ini menunjukkan hubungan antara tegangan dan arus dalam keadaan kesetimbangan termal, seperti yang ditunjukkan pada gambar. Ketika tegangan naik dari nol, arus dan suhu juga naik sampai termistor mencapai titik switching. Peningkatan tegangan lebih lanjut menyebabkan penurunan arus di wilayah daya konstan.

Untuk sisa artikel ini, seperti yang Anda duga, kita akan berbicara tentang termistor tipe NTC.

Empat Pendekatan untuk Menemukan Rumus Kurva

Sekarang setelah kita memahami dengan lebih baik perilaku termistor, Anda mungkin bertanya-tanya bagaimana kita dapat menggunakan Arduino untuk mengukur suhu. Kurva pada grafik di atas adalah non-linier dan oleh karena itu persamaan linier sederhana tidak bekerja untuk kita (sebenarnya, kita dapat menurunkan persamaan, tetapi lebih lanjut tentang itu nanti).



Ini berbicara tentang keandalan yang diperlukan untuk sakelar semikonduktor saat dipanaskan dan dilindungi dari aplikasi arus tinggi.


Jeda waktu tergantung pada ukuran, suhu dan tegangan yang terhubung, serta sirkuit yang digunakan. Aplikasi ini termasuk relay switching tertunda, timer, kipas listrik, dll.

Beberapa motor listrik memiliki belitan awal yang hanya perlu dihidupkan saat motor dihidupkan. Saat motor mulai, termistor PTC memanas dan, pada titik tertentu, beralih ke status resistansi tinggi, dan kemudian memutuskan belitan ini dari listrik. Waktu yang diperlukan untuk ini didasarkan pada kebutuhan untuk menghidupkan mesin.

Jadi apa yang kamu lakukan?

Sebelum melanjutkan, pikirkan tentang bagaimana Anda akan melakukannya di Arduino, atau bahkan di sirkuit tanpa komponen mikroprosesor.

Ada beberapa cara untuk memecahkan masalah ini, yang tercantum di bawah ini. Ini jauh dari daftar lengkap dari semua teknik, tapi dia akan menunjukkan beberapa pendekatan populer.

Metode 1

Beberapa pabrikan memberikan informasi yang sangat lengkap sehingga berisi seluruh grafik yang menampilkan rentang spesifik suhu integer dan nilai resistansi (nilai tipikal). Salah satu termistor tersebut dapat ditemukan di lembar data Vishay.

Pemanas yang mengatur sendiri: Jika ada arus yang mengalir melalui termistor PTC, itu akan stabil pada suhu tertentu. Ini berarti bahwa jika suhu menurun sebanding dengan resistansi, memungkinkan lebih banyak arus mengalir, perangkat memanas. Jika suhu naik ke tingkat yang membatasi arus yang mengalir melalui perangkat, perangkat menjadi dingin.

Sirkuit untuk menguji varistor

Termistor NTC berarti bahwa resistansi berkurang saat suhu naik. Termistor ini terbuat dari chip cor seperti oksida logam yang disinter.

Oksida yang paling umum digunakan untuk termistor ini adalah mangan, nikel, kobalt, besi, tembaga, dan titanium. Termistor ini diklasifikasikan menjadi dua kelompok tergantung pada bagaimana elektroda dihubungkan ke badan keramik.

Bagaimana, dengan data sedetail itu, dimungkinkan untuk mengimplementasikan pengukuran suhu pada Arduino. Anda perlu mengkodekan semua nilai ini ke dalam tabel pencarian besar atau struktur kontrol "switch ... case" atau "if ... else" yang sangat panjang.

Dan jika pabrikan tidak repot-repot menyediakan tabel terperinci, maka Anda harus mengukur sendiri setiap titik untuk membentuk tabel seperti itu. Hari ini akan sangat membosankan bagi seorang programmer. Tetapi metode ini tidak terlalu buruk dan memiliki tempat untuk digunakan. Jika proyek saat ini hanya memeriksa beberapa titik atau bahkan rentang kecil, metode ini mungkin lebih disukai. Misalnya, satu situasi seperti itu muncul jika Anda ingin mengukur apakah nilainya berada dalam rentang suhu yang dipilih dan menyalakan LED untuk menunjukkan kondisi ini.

Persamaan termistor

Termistor berlapis bipolar Kontak permukaan logam. ... Termistor manik terbuat dari paduan platinum dan kabel timah, yang langsung disinter menjadi badan keramik. Termistor manik memiliki stabilitas, keandalan yang tinggi; waktu respon yang cepat dan bekerja di suhu tinggi... Termistor ini tersedia dalam ukuran kecil dan menunjukkan konstanta disipasi yang relatif rendah. Termistor ini biasanya dicapai dengan menghubungkannya secara seri atau paralel.

Tetapi dalam proyek kami, kami ingin mengukur suhu dalam kisaran yang hampir terus menerus dan mengirim pembacaan ke monitor port serial, jadi kami tidak akan menggunakan metode ini.

Metode 2

Anda dapat mencoba untuk "memlinearisasikan" respons termistor dengan menambahkan sirkuit tambahan ke dalamnya.

Salah satu cara populer untuk melakukan ini adalah dengan menghubungkan resistor secara paralel dengan termistor. Beberapa chip menawarkan untuk melakukan ini untuk Anda.

Termistor tipe bipolar termasuk tipe berikut. Manik-manik dari manik-manik Manik-manik kaca Manik-manik dari manik-manik Miniatur manik-manik kaca Gabus kaca Batang kaca Manik-manik dalam kotak kaca. Kelompok termistor kedua memiliki kontak permukaan logam, yang disuplai dengan kabel radial atau aksial, serta tanpa kabel untuk pemasangan - menggunakan kontak pegas. Berbagai pelapis tersedia untuk termistor ini. Kontak permukaan logam dapat diterapkan dengan mengecat, menyemprot atau mencelupkan sesuai kebutuhan, dan kontak diamankan di badan keramik.

Menentukan bagaimana memilih dan linierisasi bagian dari kurva, bersama dengan memilih nilai resistor yang benar, adalah topik untuk artikel terpisah. Pendekatan ini baik jika mikroprosesor tidak dapat menghitung ekspresi floating point (seperti PICAXE), karena menyederhanakan respons pada rentang suhu tertentu ke linearitas. Ini juga memudahkan untuk merancang sirkuit yang tidak memiliki mikroprosesor.

Termistor ini termasuk jenis berikut.


  • Cakram Keripik Permukaan Mounts Cotton Washer.
  • Karakteristik suhu-tahanan Karakteristik arus dari waktu ke waktu.
Perubahan laju arus rendah karena resistansi termistor yang tinggi. Akhirnya, saat perangkat mendekati kondisi kesetimbangan, laju perubahan arus akan berkurang saat waktu akhir tercapai, yang ditunjukkan pada gambar di bawah.



Ketika termistor self-heating mencapai keseimbangan, laju kehilangan panas dari perangkat sama dengan daya yang disuplai.

Ketika suhu naik dan resistansi termistor berkurang, arus menjadi tinggi dan memberikan alarm atau mengaktifkan sistem pemanas.

Tetapi kami memiliki mikroprosesor dalam artikel ini, dan kami ingin mengukur suhu di seluruh rentang.

Metode 3

Anda dapat mengambil data dari tabel di deskripsi teknis atau (jika Anda menyukai penyimpangan) buat tabel Anda sendiri dengan melakukan pengukuran independen dan membuat ulang grafik dalam sesuatu seperti Excel. Kemudian Anda dapat menggunakan fungsi pemasangan kurva untuk membuat rumus untuk kurva tersebut. Ini bukan ide yang buruk, dan semua pekerjaan yang dilakukan akan memberi Anda formula bagus yang dapat Anda gunakan dalam program Anda. Tapi itu akan memakan waktu untuk preprocessing data.

Mengukur resistansi dengan Arduino

Ada dua jenis utama termistor yang digunakan untuk probe suhu yang berbeda. Gambar 1: Resistansi termistor berubah dengan suhu. Dapat dilihat dari gambar bahwa termistor memiliki sensitivitas yang tinggi. Perubahan suhu yang kecil menyebabkan perubahan resistansi yang signifikan. Perhatikan juga bahwa respons dari termistor ini tidak linier. Artinya, perubahan resistansi untuk perubahan suhu tertentu tidak konstan selama rentang suhu termistor.

Meskipun ini adalah pendekatan yang masuk akal, kami tidak ingin bergantung pada analisis semua data ini. Juga, setiap termistor sedikit berbeda (tapi tentu saja ini bukan masalah jika toleransinya agak rendah).

Metode 4

Ternyata ada rumus penyesuaian kurva umum untuk perangkat seperti termistor. disebut persamaan Steinhart-Hart. Di bawah ini adalah versinya (dalam versi lain, istilah dalam kedua dan derajat digunakan):

Lembar data pabrikan berisi daftar nilai resistansi termistor dan suhu yang sesuai di seluruh jangkauannya. Salah satu solusi untuk mengatasi respons non-linier ini adalah dengan menyertakan tabel pencarian yang berisi data ketahanan panas dalam kode Anda. resistansi kode Anda mencari tabel untuk suhu yang sesuai.

Linierisasi termistor. Di sisi perangkat keras, Anda dapat linierisasi respons termistor dengan menempatkan resistor tetap secara paralel atau seri dengannya. Peningkatan ini akan datang dengan mengorbankan beberapa presisi. Nilai resistor harus sama dengan resistansi termistor di tengah kisaran suhu yang diinginkan.

\ [\ frac (1) (T) = A + B \ ln (R) + C (\ ln (R)) ^ 3 \]

di mana R adalah resistansi termistor pada suhu T (dalam Kelvin).

Ini adalah persamaan kurva umum yang cocok untuk semua jenis termistor NTC. Perkiraan hubungan antara suhu dan resistansi adalah "cukup baik" untuk sebagian besar aplikasi.

Perhatikan bahwa persamaan membutuhkan konstanta A, B dan C. Ini berbeda untuk termistor yang berbeda dan harus ditentukan atau dihitung. Karena kami memiliki tiga yang tidak diketahui, Anda perlu melakukan tiga pengukuran resistansi pada suhu tertentu, yang kemudian dapat digunakan untuk membuat tiga persamaan dan menentukan nilai konstanta ini.

Termistor adalah kombinasi paralel resistor. Gambar 3: Kurva tahanan suhu kombinasi termistor dan resistor paralel. Cara umum mikrokontroler untuk mengumpulkan data analog adalah konverter analog-ke-digital. Kombinasi resistor termistor seri yang ditunjukkan pada Gambar 4 adalah solusi pembagi tegangan sederhana.

Gambar 4: Pembagi tegangan termistor. Rumus berikut digunakan untuk menghitung tegangan keluaran pembagi tegangan. Gambar 5: Kurva suhu dan tegangan. Dengan kata lain, pembagi tegangan mengubah resistansi termistor menjadi tegangan. Lembar data pabrikan mungkin tidak menyertakan semua nilai RTD untuk termistor, atau Anda mungkin tidak memiliki cukup memori untuk memasukkan semua nilai dalam tabel pencarian. Bagaimanapun, Anda harus memasukkan kode untuk menginterpolasi di antara nilai-nilai yang terdaftar.

Bahkan bagi kita yang mengetahui aljabar dengan baik, masih terlalu memakan waktu.

Sebaliknya, ada persamaan yang lebih sederhana yang kurang akurat, tetapi hanya berisi satu konstanta. Konstanta ini dilambangkan sebagai , dan oleh karena itu persamaan tersebut disebut persamaan .

\ [\ frac (1) (T) = \ frac (1) (T_o) + (\ frac (1) (\ beta)) \ cdot \ ln \ kiri (\ frac (R) (R_o) \ kanan) \ ]

di mana R 0 - resistansi pada suhu kontrol T 0 (misalnya, resistansi pada suhu kamar). biasanya ditunjukkan dalam lembar data; jika tidak, maka Anda hanya perlu satu dimensi (satu persamaan) untuk menghitung konstanta ini. Saya akan menggunakan persamaan ini untuk berinteraksi dengan termistor kami karena ini adalah yang paling sederhana yang saya temui dan tidak perlu linierisasi respons termistor.

Mengukur resistansi dengan Arduino

Sekarang kita telah memilih metode pemasangan kurva, kita harus mengetahui bagaimana sebenarnya mengukur resistansi dengan Arduino sebelum kita dapat memasukkan informasi resistansi ke dalam persamaan . Kita dapat melakukan ini dengan menggunakan pembagi tegangan:

Ini akan menjadi rangkaian interaksi termistor kita. Ketika termistor merasakan perubahan suhu, itu akan tercermin dalam tegangan output.

Sekarang, seperti biasa, kami menggunakan rumus pembagi tegangan.

Tetapi kami tidak tertarik pada tegangan keluaran keluaran V, kami tertarik pada resistansi termistor R termistor. Oleh karena itu, kami akan mengungkapkannya:

Ini jauh lebih baik, tetapi kita perlu mengukur tegangan output kita serta tegangan suplai. Karena kita menggunakan ADC bawaan Arduino, kita dapat merepresentasikan tegangan sebagai nilai numerik pada skala tertentu. Jadi, bentuk akhir dari persamaan kami ditunjukkan di bawah ini:

Ini bekerja karena tidak peduli bagaimana kita mewakili tegangan (dalam volt atau dalam unit digital), unit ini membatalkan pembilang dan penyebut pecahan, meninggalkan nilai berdimensi. Kemudian kita kalikan dengan hambatan untuk mendapatkan hasil ohm.

Kami akan memiliki D max sama dengan 1023, karena ini adalah angka terbesar yang dapat dihasilkan ADC 10-bit kami. D diukur adalah nilai terukur dari konverter analog-ke-digital, yang dapat berkisar dari nol hingga 1023.

Semuanya! Sekarang Anda dapat mulai merakit!

Mari kita satukan

Saya menggunakan termistor TH10K.

Saya juga menggunakan resistor 10k sebagai penyeimbang R di pembagi tegangan kami. Saya tidak memiliki konstanta , jadi saya menghitungnya sendiri.

Di bawah ini adalah diagram lengkap perangkat. Ini cukup mudah.

Dan ini adalah bagaimana tata letak akhir terlihat seperti:

kode Arduino

Kode memiliki banyak komentar untuk membantu Anda memahami logika program.

Ini pada dasarnya mengukur tegangan melintasi pembagi, menghitung suhu, dan kemudian menampilkannya di terminal port serial.

Untuk bersenang-senang, beberapa pernyataan "jika ... lain" juga telah ditambahkan untuk menunjukkan bagaimana Anda dapat bertindak tergantung pada kisaran suhu.

// ================================================ =============================== // Konstanta // ============== =================================================== = =============== // Terkait termistor: / * Di sini kita memiliki beberapa konstanta yang memudahkan untuk mengedit kode. Mari kita berjalan melalui mereka. Pembacaan dari ADC dapat memberikan satu nilai pada satu sampel, dan kemudian nilai yang sedikit berbeda pada sampel berikutnya. Untuk menghindari pengaruh noise, kita dapat membaca nilai dari pin ADC beberapa kali kemudian rata-rata nilainya untuk mendapatkan nilai yang lebih konstan. Konstanta ini digunakan dalam fungsi readThermistor. * / const int SAMPEL_NUMBER = 10; / * Untuk menggunakan persamaan beta, kita perlu mengetahui nilai resistor kedua di pembagi kita. Jika Anda menggunakan resistor dengan toleransi besar seperti 5% atau bahkan 1%, ukur dan letakkan pembacaan ohm di sini. * / const ganda BALANCE_RESISTOR = 9710.0; // Ini membantu dalam menghitung resistansi termistor (lihat artikel untuk detailnya). const ganda MAX_ADC = 1023.0; / * Konstanta ini tergantung pada termistor dan harus ada di lembar data, atau lihat artikel tentang cara menghitungnya menggunakan persamaan beta. * / const double BETA = 3974.0; / * Diperlukan untuk persamaan konversi sebagai suhu kamar "biasa". * / const double ROOM_TEMP = 298,15; // suhu kamar dalam Kelvin / * Termistor memiliki resistansi khas pada suhu kamar, kami tunjukkan di sini. Sekali lagi, diperlukan untuk persamaan transformasi. * / const double RESISTOR_ROOM_TEMP = 10000.0; // ================================================ =============================== // Variabel // ============== ================================================== =============== // Di sini kita akan menyimpan suhu arus ganda saat iniSuhu = 0; // ================================================ =============================== // Deklarasi kesimpulan // ============ ==================================================== == ================ // Input: int thermistorPin = 0; // Masukan ADC, keluaran pembagi tegangan // ===================================== = ====================================== // Inisialisasi // ====== = ================================================= ========================= = ====================== void setup () (// Atur kecepatan port untuk mengirim pesan Serial.begin (9600);) // ==== = ================================================= ========================= = ========================= // Loop utama // =================== =================================================== = ========== void loop () (/ * Loop utama cukup sederhana, ia mencetak suhu ke monitor serial. Inti dari program ini adalah fungsi readThermistor. * / saat iniSuhu = readThermistor(); penundaan (3000); / * Inilah yang harus dilakukan jika suhu terlalu tinggi, terlalu rendah, atau sempurna. * / jika (Suhu saat ini> 21.0 && Suhu saat ini< 24.0) { Serial.print("It is "); Serial.print(currentTemperature); Serial.println("C. Ahhh, very nice temperature."); } else if (currentTemperature >= 24.0) (Serial.print ("Ini"); Serial.print (currentTemperature); Serial.println ("C. Saya merasa seperti tamale panas!");) Else (Serial.print ("Ini") ; Serial.print (temperature saat ini); Serial.println ("C. Brrrrrr, itu DINGIN! ");)) // ===================== ================================================== ======== // Fungsi // ===================================== ========================================== //////// ///////////////////// ////// readThermistor /////// ///////////////////////// ////////////// / * Fungsi ini membaca nilai dari output analog seperti yang ditunjukkan di bawah ini. Mengubah tegangan input ke representasi digital menggunakan konversi analog-ke-digital. Namun, ini dilakukan beberapa kali sehingga kita bisa mendapatkan rata-rata nilai untuk menghindari kesalahan pengukuran. Nilai rata-rata ini kemudian digunakan untuk menghitung resistansi termistor. Resistansi kemudian digunakan untuk menghitung suhu termistor. Akhirnya, suhu dikonversi sampai derajat Celcius.* / double readThermistor () (// variabel double rThermistor = 0; // Menyimpan nilai resistansi termistor ganda tKelvin = 0; // Menyimpan suhu yang dihitung ganda tCelsius = 0; // Menyimpan suhu dalam derajat Celcius double adcAverage = 0; // Menyimpan nilai tegangan rata-rata int adcSamples; // Array untuk menyimpan hasil individual // pengukuran tegangan / * Hitung resistansi rata-rata termistor: Seperti disebutkan di atas, kita akan membaca nilai ADC beberapa kali untuk mendapatkan array sampel. Penundaan kecil digunakan agar fungsi analogRead bekerja dengan benar. * / untuk (int i = 0; i< SAMPLE_NUMBER; i++) { adcSamples[i] = analogRead(thermistorPin); // прочитать значение на выводе и сохранить delay(10); // ждем 10 миллисекунд } /* Затем мы просто усредняем все эти выборки для "сглаживания" измерений. */ for (int i = 0; i < SAMPLE_NUMBER; i++) { adcAverage += adcSamples[i]; // складываем все выборки. . . } adcAverage /= SAMPLE_NUMBER; // . . . усредняем их с помощью деления /* Здесь мы рассчитываем сопротивление термистора, используя уравнение, описываемое в статье. */ rThermistor = BALANCE_RESISTOR * ((MAX_ADC / adcAverage) - 1); /* Здесь используется бета-уравнение, но оно отличается от того, что описывалось в статье. Не беспокойтесь! Оно было перестроено, чтобы получить более "красивую" формулу. Попробуйте сами упростить уравнение, чтобы поупражняться в алгебре. Или просто используйте показанное здесь или то, что приведено в статье. В любом случае всё будет работать! */ tKelvin = (BETA * ROOM_TEMP) / (BETA + (ROOM_TEMP * log(rThermistor / RESISTOR_ROOM_TEMP))); /* Я буду использовать градусы Цельсия для отображения температуры. Я сделал это, чтобы увидеть типовую комнатную температуру, которая составляет 25 градусов Цельсия. */ tCelsius = tKelvin - 273.15; // преобразовать кельвины в цельсии return tCelsius; // вернуть температуру в градусах Цельсия }

Kemungkinan langkah selanjutnya

Semua yang ada di artikel ini menunjukkan cara yang cukup sederhana untuk mengukur suhu menggunakan termistor murah. Ada beberapa cara lagi untuk meningkatkan sirkuit:

  • tambahkan kapasitor kecil sejajar dengan keluaran pembagi. Ini menstabilkan tegangan dan bahkan dapat menghilangkan kebutuhan untuk rata-rata sejumlah besar sampel (seperti yang dilakukan dalam kode) - atau setidaknya kita dapat rata-rata sampel yang lebih sedikit;
  • gunakan resistor presisi (toleransi kurang dari 1%) untuk pengukuran yang lebih dapat diprediksi. Jika Anda kritis terhadap akurasi pengukuran, perlu diingat bahwa pemanasan sendiri dari termistor dapat mempengaruhi pengukuran; pemanasan sendiri tidak dikompensasikan dalam artikel ini.

Tentu saja, termistor hanyalah salah satu sensor yang digunakan untuk mengukur suhu. Pilihan populer lainnya adalah chip sensor (contoh bekerja dengan salah satunya dijelaskan). Dalam hal ini, Anda tidak harus berurusan dengan linearisasi dan persamaan kompleks. Dua opsi lainnya adalah jenis sensor termokopel dan inframerah; yang terakhir dapat mengukur suhu tanpa kontak fisik, tetapi tidak lagi murah.

Semoga artikelnya bermanfaat. Tinggalkan komentar Anda!

Selamat siang! Hari ini artikel ini akan memiliki cara mudah untuk memeriksa termistor... Mungkin semua amatir radio tahu bahwa ada dua jenis termistor. NTC(Koefisien Suhu Negatif) dan PTC(Koefisien suhu positif). Seperti namanya, resistensi termistor NTC akan berkurang dengan meningkatnya suhu, dan resistansi termistor PTC dengan kenaikan suhu - akan meningkat... Anda dapat secara kasar memeriksa termistor NTC dan PTC menggunakan apa saja multimeter dan besi solder.

Untuk melakukan ini, Anda perlu mengalihkan multimeter ke mode pengukuran resistansi dan menghubungkan terminalnya ke terminal termistor (polaritas tidak masalah). Ingat resistansi dan bawa besi solder yang dipanaskan ke termistor dan pada saat yang sama lihat resistansi, itu harus naik atau turun. Tergantung pada jenis termistor yang Anda miliki di depan Anda adalah PTC atau NTC. Jika semuanya seperti yang dijelaskan di atas - termistor bagus.

Sekarang, bagaimana praktiknya, tetapi untuk latihan saya mengambil termistor pertama yang saya temui, ternyata termistor NTC MF72. Pertama-tama, saya menghubungkannya ke multimeter, untuk merekam proses verifikasi dan karena kurangnya buaya pada multimeter, saya harus menyolder kabel ke termistor dan kemudian memasangnya ke kontak multimeter.

Seperti yang dapat Anda lihat dari foto pada suhu kamar, resistansi termistor adalah 6,9 ohm, nilai ini hampir tidak benar, karena indikator baterai rendah menyala. Kemudian saya membawa besi solder ke termistor dan menyentuh terminal sedikit untuk mentransfer panas dari besi solder ke termistor lebih cepat.




Hambatan mulai berkurang perlahan dan berhenti pada nilai 2 Ohm, ternyata pada suhu besi solder ini adalah nilai minimum. Berdasarkan ini, saya hampir seratus persen yakin bahwa termistor ini berfungsi dengan baik.

Jika perubahan resistansi tidak mulus atau tidak sama sekali, perubahan apa pun berarti termistor tidak berfungsi dengan baik.

Ingat ini hanya pemeriksaan kasar... Untuk pengujian yang ideal, Anda perlu mengukur suhu dan resistansi termistor yang sesuai, kemudian membandingkan nilai-nilai ini dengan lembar data untuk termistor ini.