Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Ini adalah panduan singkat tentang cara mendapatkan nomor seri individual dari sensor suhu 1-kawat DS18B20 Anda.
Ini berguna untuk proyek yang membutuhkan banyak sensor.
Hal-hal yang Anda butuhkan:
- Arduino 5v (UNO, Mega, Pro Mini dll) - Arduino UNO R3 - AliExpress
- Sensor Suhu DS18B20 - AliExpress
- 4.7k - 1/4w Resistor THT - AliExpress
- Papan tempat memotong roti - AliExpress - eBay
- Kabel Jumper - Pria ke Pria - AliExpress
- Komputer dengan Arduino IDE terpasang
Langkah 1: Tambahkan Perpustakaan yang Diperlukan ke Arduino IDE
- Buka Arduino IDE (saya menggunakan 1.8.1)
- Klik "Sketsa" -> "Sertakan Perpustakaan" -> "Kelola Perpustakaan…"
- Pilih bilah pencarian dan ketik "dallas"
- Klik "DallasTemperature" dan klik "Instal"
Atau Anda dapat mengunduh Perpustakaan dari sini:
Pustaka ini mencakup Pustaka OnWire.
Langkah 2: Hubungkan DS18B20
Menggunakan papan roti menghubungkan +5V, GND dan Digital Pin 2 (Pin 2 sudah diatur dalam sketsa contoh) dari Arduino menggunakan jumper papan tempat memotong roti Male to Male.
Hubungkan paralel DS18B20 ke strip terminal 3x pada papan tempat memotong roti.
- Pin 1 (GND) -> GND (Ground 0V)
- Pin 2 (DATA) -> Pin Digital 2
- Pin 3 (Vdd) -> +5V
Untuk Mode Daya Normal, sambungkan Resistor 4.7K dari +5V ke kabel Digital Pin 2 pada papan tempat memotong roti.
Tautan berikut adalah sumber yang bagus untuk sensor suhu 1-kawat DS18B20.
www.tweaking4all.com/hardware/arduino/ardu…
Langkah 3: Muat Contoh Sketsa "Single"
Setelah Anda memasangnya, Anda siap untuk memuat Sketsa "Tunggal" Suhu DallasBuka Arduino IDE (Saya menggunakan 1.8.1)Klik "File" -> "Contoh" -> "Suhu Dallas" -> "Tunggal"Saya menambahkan dalam penundaan(5000); pada baris 103 untuk memberi saya waktu untuk menyalin nomor seriPilih formulir papan yang sesuai "Alat" -> "Papan" Pilih port yang sesuai "Alat" -> "Port"Sekarang "Unggah" Sketsa "Sketsa" -> "Unggah" Klik "Tools" -> "Serial Monitor" pastikan baud rate cocok dengan milik saya adalah 9600Jika sketsa Anda tidak diunggah, periksa Board, Port, driver USB, dll.
Langkah 4: Salin Nomor Seri
Dari "Serial Monitor" Anda akan melihat baris ke-4 adalah "Device 0 Address: xxxxxxxxxxxxxxxx"
Ini adalah Nomor Seri DS18B20
Jika "0000000000000000" maka ada masalah saat membaca DS18B20 Anda.
Sorot dengan mouse Anda dan tekan CTRL + C pada keyboard Anda lalu lewati di Notepad
Untuk proyek saya yang lain, kode saya menggunakan larik angka-angka ini. Saya memformat ulang string HEX ke format berikut.
DeviceAddress tempSensorSerial[9]= {
{0x28, 0xFF, 0x07, 0xA6, 0x70, 0x17, 0x04, 0xB5}, {0x28, 0xFF, 0xB2, 0xA6, 0x70, 0x17, 0x04, 0x28}, {0x28, 0xFF, 0x42, 0x98, 0x70, 0x17, 0xD3}, {0x28, 0xFF, 0x86, 0xA8, 0x70, 0x17, 0x04, 0xA6}, {0x28, 0xFF, 0x2B, 0x65, 0x71, 0x17, 0x04, 0x76}, {0x28, 0xFF, 0x66, 0x62, 0x62, 0x17, 0x04, 0xF5}, {0x28, 0xFF, 0xD9, 0x9B, 0x70, 0x17, 0x04, 0x9C}, {0x28, 0xFF, 0x98, 0x6A, 0x71, 0x17, 0x04, 0xED}, {0x28, 0xFF,, 0x42, 0x71, 0x17, 0x04, 0x4C} };
Langkah 5: Selesai
Sekarang Anda dapat mengidentifikasi masing-masing sensor suhu 1-kawat DS18B20 dalam kode Anda dan menggunakan fungsi seperti ini:
float getTemperature(byte j){
sensor.requestTemperaturesByAddress(tempSensorSerial[j]);
float tempC = sensor.getTempC(tempSensorSerial[j]);
kembalikan suhu;
}