Kami menawarkan berbagai konektor sensor 1-Wire DS18B20 terbaik, termasuk Nanoflex, Port Layar, USB, Tenaga surya, SATA, HDMI, ITULAH IDE, SAS & masih banyak lagi. Semua kabel diproduksi dengan standar industri tertinggi. Menggunakan Rakitan Sirkuit Sensor untuk pembuatan kotak memungkinkan Anda fokus pada desain dan pemasaran, mengurangi biaya, dan menuai manfaat dari jalur perakitan kami, proses QA, dan keahlian manufaktur.
Sensor DS18B20 berkomunikasi menggunakan “1-Kabel” protokol, yang artinya menggunakan satu jalur data untuk semua komunikasi dengan mikrokontroler, memungkinkan beberapa sensor dihubungkan pada jalur yang sama dan diidentifikasi dengan kode serial 64-bit yang unik; jalur data tunggal ini ditarik tinggi dengan sebuah resistor dan sensor mentransmisikan data dengan menarik jalur rendah selama slot waktu tertentu untuk mengirim bit informasi.
Sensor Suhu DS18B20: Probe tahan air DS18B20 dirancang untuk penggunaan di bawah air, mampu beroperasi di lingkungan basah atau lembab tanpa rusak oleh air atau kelembapan.
Tegangan suplai sensor suhu: 3.0V ~ 5.25V;
Kisaran suhu pengoperasian:-55 ℃ ke +125 ℃ (-67 ℉ ke +257 ℉);
Menyediakan pengukuran suhu Celcius dari 9-bit hingga 12-bit;
Modul adaptor dilengkapi dengan resistor pull-up, dan langsung terhubung ke GPIO Raspberry Pi tanpa resistor eksternal;
Gunakan kit modul adaptor ini untuk menyederhanakan penyambungan sensor suhu tahan air ke proyek Anda.
1. Poin-poin penting tentang protokol 1-Wire:
Jalur data tunggal:
Hanya diperlukan satu kabel untuk komunikasi antara sensor dan mikrokontroler.
Komunikasi setengah dupleks:
Data dapat dikirim dua arah, tapi hanya satu arah dalam satu waktu.
Kekuatan parasit:
DS18B20 dapat diberi daya langsung dari jalur data selama komunikasi, menghilangkan kebutuhan akan catu daya terpisah dalam beberapa kasus.
Alamat perangkat unik:
Setiap sensor DS18B20 memiliki kode serial 64-bit unik yang memungkinkan mikrokontroler mengidentifikasi dan menangani masing-masing sensor di bus.
Langkah-langkah komunikasi dengan DS18B20:
1.1 Setel ulang pulsa:
Mikrokontroler memulai komunikasi dengan menarik jalur data rendah untuk durasi tertentu (mengatur ulang pulsa).
1.2 Kehadiran pulsa:
Jika DS18B20 ada di bus, itu akan merespons dengan pulsa pendek, menunjukkan kehadirannya.
1.3 perintah ROM:
Mikrokontroler mengirimkan perintah ROM untuk membaca kode unik 64-bit dari sensor tertentu (“Cocokkan ROM”) atau untuk mengatasi semua sensor di bus (“Lewati ROM”).
1.4 Perintah fungsi:
Tergantung pada operasi yang diinginkan (seperti membaca suhu), mikrokontroler mengirimkan perintah fungsi tertentu ke sensor.
1.5 Perpindahan data:
Data dikirimkan sedikit demi sedikit, dengan sensor menarik jalur data rendah untuk mengirim a ‘0’ dan membiarkan antrean menjadi tinggi untuk mengirim '1'.
2. Penjelasan rinci tentang protokol komunikasi 1-Wire DS18B20
Alasan mengapa sensor DS18B20 banyak digunakan sebagian besar karena protokol komunikasinya yang unik – 1-Protokol komunikasi kawat. Protokol ini menyederhanakan persyaratan koneksi perangkat keras dan menyediakan cara yang efisien untuk mengirimkan data. Bab ini akan menganalisis secara mendalam mekanisme kerja dan proses pertukaran data protokol komunikasi 1 jalur untuk meletakkan dasar yang kuat untuk praktik pemrograman selanjutnya.
2.1 Dasar-dasar Protokol Komunikasi 1-Kabel
2.1.1 Fitur Protokol Komunikasi 1-Kabel:
Protokol Komunikasi 1-Wire DS18B20 juga disebut “bus tunggal” teknologi. Ini memiliki beberapa fitur berikut: – Komunikasi bus tunggal: Hanya satu jalur data yang digunakan untuk transmisi data dua arah, yang sangat mengurangi kerumitan pengkabelan dibandingkan dengan metode komunikasi sensor multi-kawat tradisional. – Koneksi multi-perangkat: Mendukung menghubungkan beberapa perangkat pada satu bus data, dan mengidentifikasi dan berkomunikasi melalui kode identifikasi perangkat. – Konsumsi daya rendah: Selama komunikasi, perangkat dapat berada dalam kondisi siaga berdaya rendah saat tidak berpartisipasi dalam komunikasi. – Presisi tinggi: Dengan waktu pengiriman data yang lebih singkat, itu dapat mengurangi gangguan eksternal dan meningkatkan akurasi data.
2.1.2 Format data dan analisis waktu komunikasi 1 kabel
Format data protokol komunikasi 1 kabel mengikuti aturan waktu tertentu. Ini termasuk waktu inisialisasi, waktu tulis dan waktu baca:
Waktu inisialisasi: Tuan rumah pertama-tama memulai waktu deteksi kehadiran (Kehadiran Pulsa) dengan cara menarik turun bus dalam jangka waktu tertentu, dan sensor kemudian mengirimkan pulsa kehadiran sebagai respons.
Tulis waktu: Saat host mengirimkan waktu penulisan, itu pertama-tama menurunkan bus sekitar 1-15 mikrodetik, lalu melepaskan busnya, dan sensor menarik bus masuk 60-120 mikrodetik untuk merespons.
Baca waktunya: Tuan rumah memberi tahu sensor untuk mengirim data dengan menarik bus ke bawah dan melepaskannya, dan sensor akan mengeluarkan bit data pada bus setelah penundaan tertentu.
2.2 Implementasi perangkat lunak komunikasi data
2.2.1 Inisialisasi dan reset komunikasi 1 jalur
Di tingkat perangkat lunak, inisialisasi dan reset komunikasi 1-Wire adalah langkah pertama komunikasi. Berikut ini adalah kode semu untuk mengimplementasikan proses ini:
// Fungsi inisialisasi komunikasi OneWire
batalkan OneWire_Init() {
// Atur bus ke mode input dan aktifkan resistor pull-up
Setel Mode Pin(DS18B20_PIN, INPUT_PULLUP);
// Tunggu sampai busnya menganggur
PenundaanMikrodetik(1);
// Kirim pulsa reset
OneWire_Reset();
}
// Fungsi reset komunikasi OneWire
batalkan OneWire_Reset() {
// Turunkan busnya
Setel Mode Pin(DS18B20_PIN, KELUARAN_LOW);
PenundaanMikrodetik(480);
// Lepaskan busnya
Setel Mode Pin(DS18B20_PIN, INPUT_PULLUP);
PenundaanMikrodetik(70);
// Tunggu kehadiran pulsa
jika (!TungguUntukSatuWireKehadiran())
// Tidak ada denyut nadi yang terdeteksi, mungkin sensornya tidak terhubung atau inisialisasinya gagal
Menangani Kesalahan();
PenundaanMikrodetik(410);
}
// Menunggu kehadiran pulsa
bool WaitForOneWirePresence() {
kembalikan ReadPin(DS18B20_PIN) == 0; // Asumsikan level rendah adalah kehadiran sinyal
}
2.2.2 Operasi pembacaan dan penulisan data
Operasi pembacaan dan penulisan data adalah bagian inti dari komunikasi sensor. Kode berikut menunjukkan cara menulis byte ke bus satu kabel:
// Tulis satu byte ke bus satu kabel
membatalkan OneWire_WriteByte(data byte) {
untuk (ke dalam saya = 0; Saya < 8; saya++) {
OneWire_WriteBit(data & 0x01);
data >>= 1;
}
}
// Tulis sedikit ke bus satu kabel
void OneWire_WriteBit(bit data) {
Setel Mode Pin(DS18B20_PIN, KELUARAN_LOW);
jika (data) {
// Release the bus when writing 1
Setel Mode Pin(DS18B20_PIN, INPUT_PULLUP);
PenundaanMikrodetik(1);
} kalau tidak {
// Continue to pull the bus low when writing 0
PenundaanMikrodetik(60);
}
Setel Mode Pin(DS18B20_PIN, INPUT_PULLUP);
PenundaanMikrodetik(1);
}
Next is the function to read a byte:
// Read a byte from the one-wire bus
byte OneWire_ReadByte() {
byte data = 0;
untuk (ke dalam saya = 0; Saya < 8; saya++) {
data >>= 1;
jika (OneWire_ReadBit())
data |= 0x80;
}
mengembalikan data;
}
// Read a bit from the one-wire bus
bit OneWire_ReadBit() {
Setel Mode Pin(DS18B20_PIN, KELUARAN_LOW);
Setel Mode Pin(DS18B20_PIN, INPUT_PULLUP);
PenundaanMikrodetik(3);
bool result = ReadPin(DS18B20_PIN);
PenundaanMikrodetik(57);
return result;
}
2.2.3 Verification mechanism of OneWire communication
The OneWire communication protocol uses a simple verification mechanism in the data exchange process, usually by reading back the written data to verify the correctness of the data. The following is a sample code for verifying the written data:
byte data = 0x55; // Assume that the data to be sent
OneWire_WriteByte(data); // Write data to the OneWire bus
byte readData = OneWire_ReadByte(); // Read back data from the OneWire bus
jika (readData != data) {
Menangani Kesalahan(); // Jika data baca kembali tidak sesuai dengan data tertulis, menangani kesalahan tersebut
English
Afrikaans
العربية
বাংলা
bosanski jezik
Български
Català
粤语
中文(简体)
中文(漢字)
Hrvatski
Čeština
Nederlands
Eesti keel
Suomi
Français
Deutsch
Ελληνικά
हिन्दी; हिंदी
Magyar
Bahasa Indonesia
Italiano
日本語
한국어
Latviešu valoda
Lietuvių kalba
македонски јазик
Bahasa Melayu
Norsk
پارسی
Polski
Português
Română
Русский
Cрпски језик
Slovenčina
Slovenščina
Español
Svenska
ภาษาไทย
Türkçe
Українська
اردو
Tiếng Việt





