En iyi 1-Wire DS18B20 sensör konnektörlerinden oluşan geniş bir ürün yelpazesi sunuyoruz, Nanoflex dahil, DisplayPort'u, USB, Güneş, SATA, HDMI, Ata fikri, SAS & çok daha fazlası. Tüm kablolar en yüksek endüstri standartlarına göre üretilmiştir. Kutu yapıları için Sensör Devresi Düzeneğini kullanmak, tasarımınıza ve pazarlamanıza odaklanmanıza olanak tanır, maliyetleri azaltmak, ve montaj hatlarımızın avantajlarından yararlanın, Kalite Güvence süreçleri, ve üretim uzmanlığı.
DS18B20 sensörü aşağıdakileri kullanarak iletişim kurar: “1-Tel” protokol, bu, bir mikro denetleyiciyle tüm iletişim için tek bir veri hattı kullandığı anlamına gelir, birden fazla sensörün aynı hatta bağlanmasına ve benzersiz 64 bit seri koduyla tanımlanmasına olanak tanır; bu tek veri hattı bir dirençle yukarıya çekilir ve sensör, bilgi bitlerini göndermek için belirli zaman aralıklarında hattı aşağıya çekerek verileri iletir..
DS18B20 Sıcaklık Sensörü: DS18B20 su geçirmez prob su altında kullanım için tasarlanmıştır, ıslak veya nemli ortamlarda su ve nemden zarar görmeden çalışabilme özelliği.
Sıcaklık sensörü besleme voltajı: 3.0V ~ 5.25V;
Çalışma sıcaklığı aralığı:-55 ℃ +125 °C (-67 ℉ ila +257 ℉);
9 bitten 12 bit Celsius'a kadar sıcaklık ölçümleri sağlar;
Adaptör modülü bir çekme direnciyle donatılmıştır, ve Raspberry Pi'nin GPIO'suna harici bir direnç olmadan doğrudan bağlanır;
Su geçirmez sıcaklık sensörünü projenize bağlamayı kolaylaştırmak için bu adaptör modülü kitini kullanın.
1. 1-Wire protokolüyle ilgili önemli noktalar:
Tek veri hattı:
Sensör ile mikrodenetleyici arasındaki iletişim için yalnızca bir kabloya ihtiyaç vardır.
Yarı çift yönlü iletişim:
Veriler her iki yönde de gönderilebilir, ama aynı anda yalnızca bir yön.
Parazit gücü:
DS18B20'ye iletişim sırasında doğrudan veri hattından güç verilebilir, bazı durumlarda ayrı bir güç kaynağına olan ihtiyacı ortadan kaldırır.
Benzersiz cihaz adresleri:
Her DS18B20 sensörü, mikro denetleyicinin veri yolu üzerindeki bireysel sensörleri tanımlamasına ve adreslemesine olanak tanıyan benzersiz bir 64 bit seri koda sahiptir..
DS18B20 ile iletişim adımları:
1.1 Nabzı sıfırla:
Mikrodenetleyici veri hattını belirli bir süre boyunca düşük seviyeye çekerek iletişimi başlatır. (Nabzı sıfırla).
1.2 Varlık nabzı:
Veriyolunda bir DS18B20 mevcutsa, kısa bir darbeyle yanıt verecektir, varlığını belirten.
1.3 ROM komutu:
Mikrodenetleyici, belirli bir sensörün benzersiz 64 bit kodunu okumak için bir ROM komutu gönderir. (“ROM'u eşleştir”) veya veriyolundaki tüm sensörleri adreslemek için (“Gemi odası”).
1.4 Fonksiyon komutu:
İstenilen işleme bağlı olarak (sıcaklığı okumak gibi), mikrodenetleyici sensöre belirli bir fonksiyon komutu gönderir.
1.5 Veri aktarımı:
Veriler parça parça iletilir, sensör veri hattını aşağıya çekerek bir mesaj göndermek için ‘0’ ve '1' göndermek için hattın yükseğe çıkmasına izin vermek.
2. DS18B20’nin 1 telli iletişim protokolünün ayrıntılı açıklaması
DS18B20 sensörlerinin yaygın olarak kullanılmasının nedeni büyük ölçüde benzersiz iletişim protokolünden kaynaklanmaktadır – 1-Tel iletişim protokolü. Bu protokol, donanım bağlantıları için gereksinimleri basitleştirir ve verileri iletmek için etkili bir yol sağlar. Bu bölüm, sonraki programlama uygulaması için sağlam bir temel oluşturmak üzere 1 satır iletişim protokolünün çalışma mekanizmasını ve veri değişim sürecini derinlemesine analiz edecektir..
2.1 1 telli iletişim protokolünün temelleri
2.1.1 1 telli iletişim protokolünün özellikleri:
DS18B20 1 telli iletişim protokolüne de denir. “tek otobüs” teknoloji. Aşağıdaki özelliklere sahiptir: – Tek otobüs iletişimi: Çift yönlü veri iletimi için yalnızca bir veri hattı kullanılır, bu, geleneksel çok telli sensör iletişim yöntemine kıyasla kablolamanın karmaşıklığını büyük ölçüde azaltır. – Çok görüşlü bağlantı: Bir veri veri yoluna birden çok aygıtın bağlanmasını destekler, ve cihaz tanımlama kodları aracılığıyla tanımlar ve iletişim kurar. – Düşük güç tüketimi: İletişim sırasında, Cihaz, iletişime katılmadığı zaman düşük güçlü bir bekleme durumunda olabilir. – Yüksek hassasiyet: Daha kısa veri iletim süresi ile, Harici paraziti azaltabilir ve veri doğruluğunu artırabilir.
2.1.2 1 telli iletişimin veri biçimi ve zamanlama analizi
1 telli iletişim protokolünün veri biçimi belirli bir zamanlama kuralını takip eder. Başlatma zamanlamasını içerir, Zamanlama yazın ve zamanlama oku:
Başlatma Zamanlaması: Ana bilgisayar ilk olarak varlık algılama zamanlamasını başlatır (Varlık nabzı) Belli bir süre otobüsü aşağı çekerek, ve sensör daha sonra yanıt olarak bir varlık darbe gönderir.
Yazma Zamanlaması: Ana bilgisayar bir yazma zamanlaması gönderdiğinde, önce otobüse iner 1-15 mikrosaniye, Sonra otobüsü serbest bırakır, Ve sensör otobüsü içeri çeker 60-120 Yanıtlamak için mikrosaniyeler.
Zamanlamayı Oku: Ana bilgisayar, otobüsü çekip yayınlayarak veri gönderme sensörünü bildirir, ve sensör belirli bir gecikmeden sonra veri bitini veriyoluna çıkarır.
2.2 Veri iletişiminin yazılım uygulaması
2.2.1 1 hatlı iletişimin başlatılması ve sıfırlanması
Yazılım düzeyinde, 1-Wire iletişiminin başlatılması ve sıfırlanması iletişimin ilk adımıdır. Bu işlemi uygulamak için sözde kod aşağıdadır:
// OneWire iletişim başlatma fonksiyonu
geçersiz OneWire_Init() {
// Veriyolunu giriş moduna ayarlayın ve çekme direncini etkinleştirin
PinMode'u Ayarla(DS18B20_PIN, Giriş_çekimi);
// Otobüsün boşta kalmasını bekleyin
GecikmeMikrosaniye(1);
// Bir sıfırlama darbesi gönder
OneWire_Reset();
}
// OneWire iletişim sıfırlama fonksiyonu
geçersiz OneWire_Reset() {
// Otobüsü aşağı çekin
PinMode'u Ayarla(DS18B20_PIN, ÇIKIŞ_DÜŞÜK);
GecikmeMikrosaniye(480);
// Otobüsü serbest bırak
PinMode'u Ayarla(DS18B20_PIN, Giriş_çekimi);
GecikmeMikrosaniye(70);
// Nabzın varlığını bekleyin
eğer (!WaitForOneWirePresence())
// Nabız algılanmadı, belki sensör bağlı değildir veya başlatma başarısız olmuştur
Taşıma();
GecikmeMikrosaniye(410);
}
// Bir nabzın varlığını bekliyorum
bool WaitForOneWirePresence() {
ReadPin'i döndür(DS18B20_PIN) == 0; // Düşük seviyenin bir sinyal varlığı olduğunu varsayalım
}
2.2.2 Veri okuma ve yazma işlemleri
Veri okuma ve yazma işlemleri sensör iletişiminin temel parçasıdır. Aşağıdaki kod, tek kablolu bir veri yoluna bir baytın nasıl yazılacağını gösterir:
// Tek kablolu bir veri yoluna bir bayt yazın
geçersiz OneWire_WriteByte(bayt verisi) {
için (int ben = 0; Ben < 8; I ++) {
OneWire_WriteBit(veri & 0x01);
veri >>= 1;
}
}
// Tek kablolu bir veriyoluna biraz yazın
geçersiz OneWire_WriteBit(bit verisi) {
PinMode'u Ayarla(DS18B20_PIN, ÇIKIŞ_DÜŞÜK);
eğer (veri) {
// Yazarken otobüsü serbest bırakın 1
PinMode'u Ayarla(DS18B20_PIN, Giriş_çekimi);
GecikmeMikrosaniye(1);
} başka {
// Yazarken otobüsü alçaktan çekmeye devam edin 0
GecikmeMikrosaniye(60);
}
PinMode'u Ayarla(DS18B20_PIN, Giriş_çekimi);
GecikmeMikrosaniye(1);
}
Sonraki bir bayt okuma fonksiyonudur:
// Tek kablolu veri yolundan bir bayt okuyun
bayt OneWire_ReadByte() {
bayt verileri = 0;
için (int ben = 0; Ben < 8; I ++) {
veri >>= 1;
eğer (OneWire_ReadBit())
veri |= 0x80;
}
verileri döndür;
}
// Tek kablolu veri yolundan biraz okuyun
bit OneWire_ReadBit() {
PinMode'u Ayarla(DS18B20_PIN, ÇIKIŞ_DÜŞÜK);
PinMode'u Ayarla(DS18B20_PIN, Giriş_çekimi);
GecikmeMikrosaniye(3);
bool sonucu = ReadPin(DS18B20_PIN);
GecikmeMikrosaniye(57);
sonuç döndür;
}
2.2.3 OneWire iletişiminin doğrulama mekanizması
OneWire iletişim protokolü, veri alışverişi sürecinde basit bir doğrulama mekanizması kullanır, genellikle verilerin doğruluğunu doğrulamak için yazılı verileri tekrar okuyarak. Aşağıda yazılı verileri doğrulamak için örnek bir kod verilmiştir:
bayt verisi = 0x55; // Gönderilecek verinin
OneWire_WriteByte(veri); // OneWire veri yoluna veri yazma
bayt readData = OneWire_ReadByte(); // OneWire veri yolundan verileri tekrar okuyun
eğer (Verileri oku != veri) {
Taşıma(); // Tekrar okuma verileri yazılı verilerle eşleşmiyorsa, hatayı ele al
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





