Isi kandungan:

Mengukur Suhu Dari PT100 Menggunakan Arduino: 6 Langkah (dengan Gambar)
Mengukur Suhu Dari PT100 Menggunakan Arduino: 6 Langkah (dengan Gambar)

Video: Mengukur Suhu Dari PT100 Menggunakan Arduino: 6 Langkah (dengan Gambar)

Video: Mengukur Suhu Dari PT100 Menggunakan Arduino: 6 Langkah (dengan Gambar)
Video: mengukur suhu dan kelembaban menggunakan arduino ditampilkan ke LCD nextion 2024, November
Anonim
Mengukur Suhu Dari PT100 Menggunakan Arduino
Mengukur Suhu Dari PT100 Menggunakan Arduino

PT100 adalah pengesan suhu rintangan (RTD) yang mengubah rintangannya bergantung pada suhu sekitarnya, ia digunakan secara meluas untuk proses industri dengan dinamika perlahan dan julat suhu yang agak luas. Ia digunakan untuk proses dinamik yang perlahan kerana RTD mempunyai masa tindak balas yang perlahan (yang saya bicarakan lebih lanjut kemudian) tetapi tepat dan mempunyai arus yang rendah dari masa ke masa. Apa yang akan saya tunjukkan dalam Instruksional ini tidak akan memenuhi standard industri tetapi akan memberi anda cara alternatif untuk mengukur suhu daripada menggunakan LM35 yang akan diketahui oleh banyak peminat dan teori litar ditunjukkan boleh digunakan pada sensor lain.

Langkah 1: Komponen

1x PT100 (Dua Kawat)

1x Arduino (Mana-mana Model)

Penguat Operasi 3x 741 (LM741 atau UA741)

Perintang 1x 80ohm

Perintang 2x 3.9kohms

2x 3.3kohms Perintang

2x 8.2kohms Perintang

Perintang 2x 47kohms

Potensiometer 1x 5kohms

Bekalan Kuasa Dua Terminal 1x atau Bateri AA 8x 1.5V

Saya menggunakan dua wayar PT100, tiga dan empat wayar PT100 akan mempunyai litar yang berbeza. Nilai perintang untuk sebilangan besar ini tidak harus sama seperti di atas tetapi jika ada sepasang perintang iaitu 3.9Kohms, jika anda menukarnya dengan mengatakan 5k, anda perlu menukar kedua-duanya untuk 5k ketika itu perlu sama. Apabila kita mendapat litar, saya akan mengatakan kesan memilih nilai yang berbeza. Untuk penguat operasi (op amp) anda boleh menggunakan op amp lain tetapi ini adalah yang saya gunakan.

Langkah 2: Jambatan Wheatstone

Jambatan Wheatstone
Jambatan Wheatstone
Jambatan Wheatstone
Jambatan Wheatstone
Jambatan Wheatstone
Jambatan Wheatstone

Mula-mula saya perlu membincangkan formula untuk mendapatkan suhu dari rintangan untuk PT100 sebelum saya bercakap mengenai bahagian pertama litar, formula untuk rintangan adalah seperti berikut:

Imej
Imej

di mana Rx adalah rintangan PT100, R0 adalah rintangan PT100 pada 0 darjah C, α adalah pekali rintangan suhu dan T adalah suhu.

Imej
Imej

R0 adalah 100ohms kerana ini adalah PT100, jika itu adalah PT1000, R0 akan menjadi 1000ohms. α ialah 0.00385 ohm / darjah C diambil dari lembaran data. Terdapat juga formula yang lebih tepat yang boleh didapati di sini tetapi formula di atas akan berfungsi untuk projek ini. Sekiranya kita mengubah formula, kita dapat mengira suhu untuk rintangan tertentu:

Imej
Imej

Katakan kita mahu mengukur sesuatu yang mempunyai julat suhu -51.85 hingga 130 darjah C dan kita meletakkan PT100 di litar yang ditunjukkan dalam gambar 1. Menggunakan persamaan di atas dan persamaan untuk voltan keluar dari pembahagi voltan (ditunjukkan pada gambar pertama) kita dapat mengira julat voltan. Bahagian bawah julat T = -51.85 (80ohms)

Imej
Imej

dan pada 130 darjah (150ohms):

Imej
Imej

Ini akan memberikan julat 0.1187V dan offset DC 0.142 kerana kita tahu suhu kita tidak akan sampai di bawah -51.85 darjah C, ini akan mengurangkan kepekaan dalam julat yang kita sayangi (80 hingga 130ohms) ketika kita memperkuat voltan ini. Untuk menghilangkan offset DC ini dan meningkatkan kepekaan kita, kita boleh menggunakan jambatan Wheatstone yang ditunjukkan pada gambar kedua.

Output pembahagi voltan kedua (Vb-) akan diturunkan dari output pembahagi voltan pertama (Vb +) menggunakan penguat pembezaan kemudian. Rumus untuk output jambatan hanyalah dua pembahagi voltan:

Imej
Imej

Voltan keluar untuk PT100 menjadi 80ohms dan menggunakan nilai lain dalam gambar:

Imej
Imej

dan untuk Pt100 menjadi 150ohms:

Imej
Imej

Dengan menggunakan Wheatstone kita menyingkirkan offset DC dan meningkatkan kepekaan setelah penguatan. Setelah mengetahui bagaimana jambatan Wheatstone berfungsi, kita boleh membincangkan mengapa kita menggunakan 80ohms dan 3.3kohms. 80ohms agak dijelaskan dari formula di atas, pilih nilai ini (kami akan memanggilnya perintang offset Roff) untuk menjadi julat bawah suhu anda atau lebih baik, sedikit di bawah bahagian bawah julat anda, jika ini digunakan untuk sistem kawalan untuk pengaturan suhu atau seperti itu, anda ingin tahu seberapa rendah suhu yang berada di bawah julat suhu anda. Jadi jika -51.85C adalah bahagian bawah julat anda, gunakan 74.975 ohm (-65 darjah C) untuk Roff anda.

Saya memilih 3.3k untuk R1 dan R3 kerana dua sebab, untuk mengehadkan arus dan meningkatkan linearitas output. Oleh kerana PT100 mengubah rintangan kerana suhu, melewati arus yang terlalu banyak akan memberikan bacaan yang salah kerana pemanasan sendiri jadi saya memilih arus maksimum 5-10mA. Apabila PT100 adalah 80ohms, arus adalah 1.775mA sehingga selamat di bawah julat maksimum. Anda mengurangkan rintangan untuk meningkatkan kepekaan tetapi ini boleh memberi kesan negatif pada linearitas, kerana kita akan menggunakan persamaan garis kemudian (y = mx + c) yang mempunyai output tidak linear akan memperkenalkan kesalahan. Gambar ketiga mempunyai grafik output jambatan menggunakan perintang atas yang berbeza, garis pepejal adalah keluaran sebenar dan garis putus-putus adalah penghampiran linear. Anda dapat melihat dalam grafik biru gelap (R1 & R3 = 200ohms) memberikan julat voltan terbesar tetapi keluarannya paling tidak linear. Biru muda (R1 & R3 = 3.3kohms) memberikan julat voltan terkecil tetapi garis putus-putus dan garis pepejal bertindih menunjukkan linearitasnya sangat baik.

Jangan ubah nilai ini agar sesuai dengan aplikasi anda, juga jika anda menukar voltan, pastikan arus tidak terlalu tinggi.

Langkah 3: Pengukuhan

Pengukuhan
Pengukuhan
Pengukuhan
Pengukuhan

Pada langkah terakhir, kami mendapati julat output dari dua pembahagi voltan yang dikurangkan adalah 0 hingga 0.1187 tetapi kami belum membincangkan cara mengurangkan voltan ini. Untuk melakukan ini, kita memerlukan amp pembezaan yang akan mengurangkan satu input dari yang lain dan memperkuatnya dengan keuntungan dari amp. Litar untuk pembeza ditunjukkan dalam gambar pertama. Anda memasukkan Vb + ke input terbalik dan Vb- di input tidak terbalik dan output akan menjadi Vb + - Vb- dengan keuntungan satu iaitu tanpa penguatan tetapi dengan menambahkan perintang yang ditunjukkan dalam gambar kami menambah keuntungan 5.731. Keuntungan diberikan oleh:

Imej
Imej

Ra adalah R5 & R7 dan Rb adalah R6 & R8, voltan keluar diberikan oleh:

Imej
Imej

Terdapat dua masalah dengan hanya menghubungkan amp ini ke output jambatan, kesan pemuatan dan mengubah keuntungan. Mengubah keuntungan amp memerlukan anda menukar sekurang-kurangnya dua perintang kerana dua pasang perintang harus sama, jadi mempunyai dua periuk yang harus mempunyai nilai yang sama akan menjengkelkan, jadi kami akan menggunakan sesuatu yang disebut instrumen amp yang saya bincangkan di bawah. Kesan pemuatan adalah perintang input ke amp mempengaruhi penurunan voltan di seluruh PT100, kita mahu voltan merentasi PT100 tidak berubah dan untuk melakukan ini kita dapat memilih perintang yang sangat besar untuk perintang input sehingga rintangan selari dari PT100 dan perintang input sangat dekat dengan rintangan PT100 tetapi ini boleh menyebabkan masalah dengan gangguan bunyi dan output voltan yang tidak akan saya hadapi. Cukup pilih jarak pertengahan dalam jajaran Kohms tetapi seperti yang saya katakan, mempunyai perintang kecil juga buruk, jadi kami akan mengubah litar sedikit.

Pada gambar kedua, kami mempunyai output jambatan yang disambungkan ke instrumen amp yang bertindak sebagai buffer amp untuk memisahkan dua bahagian litar (jambatan dan penguat) juga memungkinkan penggunaan untuk memperkuat input dengan mengubah hanya satu potensiometer (Rgain). Keuntungan amp instrumentasi diberikan oleh:

Imej
Imej

di mana Rc adalah dua perintang 3.9k di atas dan di bawah periuk.

Dengan mengurangkan Rgain, penguatan meningkat. Kemudian pada titik Va dan Vb (diperkuat Vb + dan Vb-), ia hanya amp pembeza seperti sebelumnya dan jumlah keuntungan litar hanya keuntungan yang berlipat ganda.

Imej
Imej

Untuk memilih keuntungan anda, anda ingin melakukan sesuatu seperti yang kami lakukan sebelumnya dengan Roff, kami harus memilih rintangan tepat di atas suhu maksimum anda dalam julat anda sekiranya berlaku. Kerana kami menggunakan Arduino yang mempunyai adc 5V, output maksimum litar harus 5V pada suhu maksimum yang anda pilih. Mari pilih 150ohms kerana rintangan maksimum dan voltan jambatan yang tidak dikuatkan ialah 0.1187V, keuntungan yang kita perlukan ialah 42.185 (5 / 0.1187)

Katakan kita mengekalkan Ra, Rb dan Rc sebagai 8.2k, 47k dan 3.9k, kita hanya perlu mencari nilai untuk periuk Rgain:

Imej
Imej

Jadi untuk mendapatkan 5 volt penuh dari julat suhu yang kita gunakan, ubah nilai Rgain kepada 1.226k. Voltan keluaran yang keluar dari amp pembeza diberikan oleh:

Langkah 4: Menghidupkan Litar

Menghidupkan Litar
Menghidupkan Litar
Menghidupkan Litar
Menghidupkan Litar
Menghidupkan Litar
Menghidupkan Litar

Ini adalah langkah terakhir litar, anda mungkin menyedari Vcc + dan Vcc- pada litar op amp, ini kerana mereka memerlukan voltan positif dan negatif untuk berfungsi dengan baik, anda boleh mendapatkan op-amp rel tunggal tetapi saya memutuskan untuk menggunakan amp ini kerana itulah yang saya ada selama ini. Oleh itu, kami akan membekalkan +6V dan -6V, ada tiga cara untuk melakukannya. Yang pertama ditunjukkan pada gambar pertama di mana kita harus dua bekalan kuasa atau dua terminal output dari satu bekalan kuasa, mempunyai kedua pada 6V dan mempunyai satu output positif yang disambungkan ke negatif yang lain. 6V bekalan teratas adalah + 6V kami, positif bekalan bawah adalah GND dan negatif bekalan bawah adalah -6V. HANYA MENGHUBUNGKANNYA SEPERTI INI JIKA GND DUA BEKALAN TERPISAH ATAU TIDAK AKAN merosakkan BEKALAN KUASA ANDA. Semua bekalan kuasa komersial akan memisahkan GND tetapi jika anda ingin memeriksa, gunakan penguji kesinambungan pada multimeter anda, jika ia berbunyi, jangan gunakan persediaan ini dan gunakan yang berikutnya. Pada bekalan buatan sendiri, saya meletupkan sekering melakukan ini.

Pada gambar kedua adalah persediaan kedua yang dapat kita miliki, ia memerlukan satu bekalan untuk menggandakan voltan yang lain tetapi tidak akan merosakkan bekalan jika GND disambungkan. Kami mempunyai dua bekalan, satu pada 12V dan yang lain pada 6V. 12V akan bertindak sebagai + 6V kami, 6V dari bekalan kedua akan bertindak sebagai GND dan dua GND sebenar dari bekalan akan bertindak sebagai -6V.

Persediaan terakhir ini adalah untuk bekalan kuasa dengan hanya satu output, ia menggunakan penguat buffer dari gain 1 untuk membuat ground virtual dengan melewati separuh voltan bekalan melalui amp buffer. Kemudian 12V akan bertindak sebagai + 6V dan terminal GND sebenar akan menjadi -6V.

Sekiranya anda ingin menggunakan bateri, saya cadangkan persediaan pertama tetapi masalah dengan bateri ialah voltan akan turun ketika mereka mula mati dan voltan dari jambatan akan turun juga, memberikan bacaan suhu yang salah. Anda tentu saja dapat membaca voltan dari bateri dan memasukkannya ke dalam pengiraan atau menggunakan pengatur dan lebih banyak bateri. Pada akhirnya, terpulang kepada anda.

Langkah 5: Litar Penuh dan Kod

Litar dan Kod Penuh
Litar dan Kod Penuh
Litar dan Kod Penuh
Litar dan Kod Penuh
Litar dan Kod Penuh
Litar dan Kod Penuh

Litar penuh ditunjukkan di atas dan ia dibuat di Circuits.io baru Autodesk yang membolehkan anda membuat litar di papan roti, mengedit gambarajah litar (ditunjukkan dalam gambar 2) dan diagram PCB dan bahagian yang terbaik, membolehkan anda mensimulasikan litar dari papan roti dan malah dapat memprogram Arduino dan menyambungkannya dalam mod papan roti, di sebelah bawah adalah simulasi dan anda boleh bermain-main dengan dua pot. Sekiranya anda ingin menggandakan litar dan memasukkan nilai anda sendiri, anda boleh mendapatkan litar di sini. Pot pertama adalah 70ohms dan bersiri dengan perintang 80ohm yang mensimulasikan PT100 dengan julat 80-150ohms, periuk kedua adalah keuntungan dari instrumentasi amp. Malangnya saya menggunakan perpustakaan yang saya muat turun untuk kod saya, jadi Arduino tidak termasuk dalam litar di bawah tetapi hanya ada dua wayar tambahan yang perlu anda sambungkan. Sekiranya anda lebih selesa dengan LTspice, saya memasukkan fail asc dengan litar.

Sambungkan pin A0 ke output amp Pembezaan

Sambungkan GND Arduino ke GND litar (BUKAN -6V)

Dan itulah litar yang dilakukan, sekarang ke kod. Sebelumnya saya menyebutkan bahawa kita akan menggunakan formula y = mx + c, sekarang kita akan mengira m (cerun) dan c (ofset). Di Arduino, kita akan membaca voltan tetapi persamaan suhu memerlukan kita mengetahui rintangan PT100 jadi cara yang dapat kita lakukan adalah dengan mengganti Serial.println (temp) dengan Serial.println (V) dan merekodkan voltan dan rintangan pada dua suhu. Semasa melakukan ujian ini, biarkan PT100 bersendirian sebentar, seperti satu atau dua minit dan jauhkan dari sebarang sumber haba (cahaya matahari, kipas komputer riba, badan anda, dll.).

Perkara pertama yang dapat kita ambil adalah suhu bilik, apabila rangkaian anda disambungkan dan berfungsi, catat voltan (Vt1) yang dibaca oleh Arduino pada monitor bersiri dan putuskan dengan cepat PT100 dan catatkan rintangannya (Rt1), jangan letakkan tangan pada probe semasa memutuskan sambungan kerana ini akan mengubah rintangan. Untuk suhu kedua, kita boleh meletakkan probe di dalam air ais atau air panas (berhati-hati jika menggunakan air panas) dan ulangi apa yang kita lakukan sebelum menemui Vt2 dan Rt2. Sebaik sahaja anda meletakkan probe di dalam cecair tunggu satu atau dua minit sehingga daya tahan dapat diselesaikan. Sekiranya anda berminat dengan tindak balas masa PT100, catatkan voltan dari monitor bersiri setiap 2 saat atau lebih dan kami dapat menarik grafik dari ini dan saya akan menerangkannya kemudian. Dengan menggunakan dua voltan dan rintangan, kita dapat mengira cerun seperti berikut:

Imej
Imej

Rt1 dan Rt2 adalah rintangan pada dua suhu dan sama berlaku untuk voltan Vt1 dan Vt2. Dari cerun dan salah satu daripada dua set titik yang anda rakam, kami dapat mengira ofset:

Imej
Imej

C semestinya dekat dengan Roff sebenar anda, Dari simulasi saya, saya mengira nilai-nilai ini:

Imej
Imej

Dari rintangan ini, kita dapat mengetahui suhu kita menggunakan formula yang kita ada pada awalnya:

Imej
Imej

Itu sahaja, kod untuk Arduino ada di bawah, jika anda mempunyai masalah, tinggalkan komen dan saya akan cuba membantu.

Tidak ada gambar litar yang saya buat ketika saya membuatnya beberapa ketika yang lalu dan tidak mempunyai PT100 lagi untuk dibuat semula dan diuji tetapi anda hanya perlu percaya bahawa ia berfungsi. Tidak banyak mengenai PT100 pada Instructables yang saya dapati, jadi itulah sebabnya saya membuat ini.

Pada langkah seterusnya, saya akan membincangkan jawapan masa PT100 dan jika anda tidak berminat dengan matematik, ketika anda mengukur perubahan suhu, biarkan PT100 berhenti sejenak sebelum membaca.

Sekiranya anda berminat untuk melihat projek lain yang saya buat, lawati projek saya

Blog: Roboroblog

Saluran YouTube: Roboro

Atau lihat Instruksional saya yang lain: di sini

Sekiranya HTML merosakkan kod di bawah, kod tersebut dilampirkan

* Kod ini mengira suhu menggunakan PT100

* Ditulis oleh Roboro * Github: <a href = "https://github.com/RonanB96/Read-Temp-From-PT100-… <a href =" https://github.com/RonanB96/Read-Temp- Dari-PT100-… <a href = "https://github.com/RonanB96/Read-Temp-From-PT100-… >>>>>>>>> * Circuit: <a href=" href="https://github.com/RonanB96/Read-Temp-From-PT100-… <a href=" https://github.com/ronanb96/read-temp-from-pt100-…="">>>>>>>>>> * Blog: <a href=" href="https://github.com/RonanB96/Read-Temp-From-PT100-… <a href=" https://github.com/ronanb96/read-temp-from-pt100-…="">>>>>>>>>> * Instrustable Post: <a href=" href="https://github.com/RonanB96/Read-Temp-From-PT100-… <a href=" https://github.com/ronanb96/read-temp-from-pt100-…="">>>>>>>>>> * */ //You'll need to download this timer library from here //https://www.doctormonk.com/search?q=timer #include "Timer.h" // Define Variables float V; float temp; float Rx; // Variables to convert voltage to resistance float C = 79.489; float slope = 14.187; // Variables to convert resistance to temp float R0 = 100.0; float alpha = 0.00385; int Vin = A0; // Vin is Analog Pin A0 Timer t; // Define Timer object

void setup() {

Serial.begin(9600); // Set Baudrate at 9600 pinMode(Vin, INPUT); // Make Vin Input t.every(100, takeReading); // Take Reading Every 100ms } void loop() { t.update(); // Update Timer } void takeReading(){ // Bits to Voltage V = (analogRead(Vin)/1023.0)*5.0; // (bits/2^n-1)*Vmax // Voltage to resistance Rx = V*slope+C; //y=mx+c // Resistance to Temperature temp= (Rx/R0-1.0)/alpha; // from Rx = R0(1+alpha*X) // Uncommect to convet celsius to fehrenheit // temp = temp*1.8+32; Serial.println(temp); }

Step 6: Time Response of PT100

Jawapan Masa PT100
Jawapan Masa PT100

Oleh itu, saya nyatakan bahawa PT100 mempunyai tindak balas yang perlahan tetapi kita boleh mendapatkan formula untuk suhu semasa yang dibaca oleh PT100 pada bila-bila masa. Respons PT100 adalah tindak balas pesanan pertama yang boleh ditulis dalam istilah Laplace iaitu fungsi pemindahan, seperti:

Imej
Imej

di mana tau (τ) adalah pemalar masa, K adalah keuntungan sistem dan s adalah operator Laplace yang boleh ditulis sebagai jω di mana ω adalah frekuensi.

Pemalar masa memberitahu anda berapa lama sistem pesanan pertama dapat diselesaikan pada nilai barunya dan peraturan atau jempolnya adalah bahawa 5 * tau adalah berapa lama masa yang diperlukan untuk menyelesaikan keadaan tetap baru. Keuntungan K memberitahu anda berapa banyak input yang akan diperkuat. Dengan PT100, keuntungannya adalah berapa banyak perubahan rintangan dibahagikan dengan perubahan suhu, dari memilih dua nilai rawak dari lembaran data ini, saya mendapat keuntungan 0.3856 ohm / C.

Sebelum saya katakan anda boleh merakam voltan setiap 2 saat setelah anda memasukkan probe ke dalam cecair, panas atau sejuk, dari ini kita dapat mengira pemalar masa sistem. Mula-mula anda perlu mengenal pasti di mana titik permulaan dan titik akhir, titik permulaan adalah voltan sebelum anda memasukkan probe ke dalam cecair dan titik akhir berada ketika ia selesai. Selanjutnya tolak mereka dan itulah perubahan voltan langkahnya, ujian yang anda lakukan adalah perubahan langkah yang merupakan perubahan mendadak input ke sistem, langkahnya adalah suhu. Sekarang pada grafik anda pergi ke 63.2% perubahan voltan dan masa ini adalah masa tetap.

Imej
Imej

Sekiranya anda memasukkan nilai tersebut ke fungsi pemindahan, anda kemudian mempunyai formula untuk menerangkan tindak balas frekuensi sistem tetapi itu bukan yang kami mahukan sekarang, kami mahukan suhu sebenar pada waktu t untuk satu langkah suhu sehingga kami akan pergi harus melakukan transformasi Laplace terbalik dari langkah ke dalam sistem. Fungsi pemindahan sistem pesanan pertama dengan input langkah adalah seperti berikut:

Imej
Imej

Di mana Ks adalah ukuran langkah iaitu perbezaan suhu. Jadi katakan probe diselesaikan pada 20 darjah C, dimasukkan ke dalam air pada suhu 30 darjah C dan probe mempunyai pemalar masa 8s, fungsi pemindahan dan formula domain masa adalah seperti berikut:

Imej
Imej

Δ (t) hanya bermaksud impuls iaitu ofset DC 20 darjah C dalam kes ini, anda hanya boleh menulis 20 dalam persamaan anda semasa mengira ini. Ini adalah persamaan standard untuk melangkah ke sistem pesanan pertama:

Imej
Imej

Di atas mengira suhu pada waktu t tetapi ini akan berfungsi untuk voltan kerana berkadar antara satu sama lain, anda hanya memerlukan nilai permulaan dan akhir, pemalar masa dan ukuran langkah. Laman web yang dipanggil Symbolab sangat bagus untuk memeriksa apakah matematik anda betul, ia boleh melakukan Laplace, integrasi, pembezaan dan banyak perkara lain dan ini memberi anda semua langkah di sepanjang jalan. Laplace terbalik yang berubah di atas boleh didapati di sini.

Disyorkan: