DS18B20: sensor suhu untuk cairan

DS18B20

Ada berbagai sensor kelembapan dan suhu yang tersedia, seperti LM35. Beberapa dibangun ke dalam modul untuk penggunaan khusus dengan Arduino. Tetapi secara umum, mereka mengukur suhu kering, yaitu suhu udara. Tetapi ada model konkret yang berhasil mengukur suhu dalam cairan dan disebut DS18B20. Keunikan yang mungkin berguna untuk beberapa proyek DIY Anda yang lebih eksotis di mana Anda juga bermain dengan beberapa jenis cairan yang perlu Anda ketahui parameter ini.

Sebenarnya DS18B20 tidak hanya mengukur suhu di dalam cairan, tetapi juga dapat sangat berguna untuk mengukur suhu lingkungan yang lembab dan juga di bawah sedikit cairan. Jadi Anda juga bisa menggunakannya untuk mengukur suhu udara jika lingkungan cukup sarat dengan kelembaban. Dan seperti yang saya katakan, fitur mampu merendamnya dalam cairan untuk mengukur suhunya adalah salah satu fitur yang membuatnya sangat praktis.

Apa itu DS18B20?

Saya rasa sudah cukup jelas, ini adalah sensor elektronik yang mampu mengukur suhu media gas atau cairan. Selain itu, ada enkapsulasi atau kemasan yang berbeda dari DS18B20, seperti yang dasar yang Anda lihat di gambar utama, atau juga dapat diintegrasikan ke dalam beberapa PCB, probe submersible, dll. Untuk proyek Anda, Anda harus memilih format yang paling sesuai dengan yang Anda inginkan.

Misalnya, selain TO-92 biasa, ada juga microSOP. Mungkin untuk berintegrasi dengan Arduino yang paling sesuai adalah TO-92, karena dengan tiga pinnya sangat mudah untuk dimasukkan ke papan tempat memotong roti untuk koneksi.

pinout

Pin Ds18b20

El Pinout DS18B20 mudah untuk diidentifikasi. Misalnya, mengambil paket Dallas TO-92, yang merupakan salah satu yang paling populer, sebagai referensi, Anda dapat melihat bahwa paket itu memiliki tiga pin. Jika Anda meletakkannya dari depan, yaitu dengan bagian yang membulat ke belakang dan melihat permukaan datar tempat tulisan itu muncul, pin di kiri Anda adalah 1 dan pin di kanan Anda adalah 3. Oleh karena itu, 1 untuk GND atau arde, 2 untuk data dan 3 untuk tegangan suplai.

Di sini kita harus mengatakan itu, nilai-nilai yang harus Anda ketahui:

  • Pin 1: Anda harus menghubungkannya ke pin GND Arduino, yaitu ke 0v.
  • Pin 2: pin ini adalah DQ atau data, yang akan mengirim suhu yang diukur oleh sensor ke Arduino melalui protokol tertentu yang dikenal sebagai 1-Wire dan itu akan membutuhkan perpustakaan dan fungsi khusus untuk Arduino IDE. Itu akan memungkinkan hanya menggunakan satu pin Arduino untuk menghubungkan banyak sensor dengan protokol ini ...
  • Pin 3: Dapat diberi daya dari 3 hingga 5,5v, sehingga Anda dapat menghubungkannya ke output 5v Arduino.

Karakteristik teknis dan lembar data DS18B20

Seperti biasa menarik untuk mengetahui karakteristik teknisnya sensor untuk mengetahui cara kerjanya, agar tidak merusaknya, dan yang terpenting agar kita tahu di mana batas pengukurannya, karena jika nilai yang ingin kita ukur tidak berada di antara keduanya, itu tidak akan membantu kita dan Anda harus mencari alternatif lain.

Untuk melakukan ini, yang terbaik adalah mengunduh file lembar data produsen, seperti yang ada di Dallas itu Anda bisa lihat di sini. Di sana Anda akan menemukan semua informasi yang diperlukan. Dan ingat bahwa meskipun semua DS18B20 mungkin serupa, tergantung pada pabrikan atau paket Anda mungkin menemukan beberapa perubahan ...

Tetapi terlepas dari keunikannya, berikut adalah beberapa data teknis dasar:

  • Kisaran suhu: -55 hingga 125ºC, oleh karena itu, dapat mengukur dalam gas atau cairan pada suhu yang sangat rendah dan juga tinggi.
  • Kesalahan: DS18B20 sensitif terhadap gangguan atau gangguan eksternal yang dapat memberikan nilai yang salah dalam pengukuran. Margin of error adalah plus minus 2ºC, meskipun pada suhu antara -10ºC dan 85ºC, artinya jika kita tidak mendekati batas, bisa jadi hanya setengah derajat.
  • Resolusi: Anda dapat bekerja dengan beberapa resolusi atau variasi minimal yang dapat Anda deteksi dengan pin analog Arduino. Mendukung 9-bit, 10-bit, 11-bit, dan 12-bit (default). Artinya, dapat mengukur dari setengah hingga setengah derajat, dari seperempat hingga seperempat derajat, dari 0,125 hingga 0,125ºC, atau dari 0,0625ºC masing-masing. Anda dapat mengubah pemrograman ini melalui kode pemrograman.
  • Tegangan suplai: 3 hingga 5,5v
  • harga: 1 hingga 3 €

Integrasi dengan Arduino

Diagram koneksi Arduino - ds18b20

Meski ada berbagai cara untuk menghubungkannya, yang paling cocok adalah yang Anda lihat di diagram ini. Ini cukup sederhana, dengan pin GND di koneksi yang sesuai dari papan Arduino, kekuatan yang sama dan kemudian data ke analog Arduino yang telah Anda pilih dalam kode pemrograman Anda di Arduino IDE. Tapi bagus juga untuk memasang resistor pull-up 4,7k (jika jarak kabel probe sensor lebih besar, resistansinya harus lebih rendah, misalnya untuk 5m dari 3,3k, untuk 10 dari 2,2, XNUMXk,…) untuk pin data dan karenanya selalu tinggi.

Untuk pemrograman di Arduino IDE dan integrasinya yang baik dengan DS18B20 dan protokol yang sangat khusus itu, Anda disarankan untuk mengunduh pustaka Suhu Dallas y Satu Kawat dari lingkungan. Dan kode dasarnya, bisa jadi seperti ini contoh yang saya tunjukkan:

#include <OneWire.h>
#include <DallasTemperature.h>

// Pin donde se conecta el bus 1-Wire (DQ)
const int pinDatosDQ = 9;

// Instancia a las clases OneWire y DallasTemperature
OneWire oneWireObjeto(pinDatosDQ);
DallasTemperature sensorDS18B20(&oneWireObjeto);
 
void setup() {
    // Iniciamos la comunicación serie a 9600 baudios
    Serial.begin(9600);
    // Iniciamos el bus 1-Wire del sensor
    sensorDS18B20.begin(); 
}
 
void loop() {
    // Indicamos que tome la temperatura
    Serial.println("Midiendo temperatura");
    sensorDS18B20.requestTemperatures();
 
    // Lee y muestra la temperatura (recuerda que puedes conectar más de uno con 1-wire)
    Serial.print("La temperatura del sensor 0 es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(0));
    Serial.println(" C");
    Serial.print("La temperatura del sensor x es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(1));
    Serial.println(" ºC");
    
    delay(1000); 
}

Info lebih lanjut - Manual Pemrograman Arduino (PDF Gratis)


Jadilah yang pertama mengomentari

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.