Ponujamo široko paleto najboljših 1-Wire senzorskih konektorjev DS18B20, vključno z Nanoflexom, DisplayPort, USB, sončna, SATA, HDMI, TO JE IDEJA, SAS & veliko več. Vsi kabli so izdelani po najvišjih industrijskih standardih. Uporaba sklopa senzorskega vezja za izdelavo škatle vam omogoča, da se osredotočite na vaš dizajn in trženje, zmanjšati stroške, in izkoristiti prednosti naših tekočih linij, QA procesi, in proizvodno strokovno znanje.
Senzor DS18B20 komunicira z uporabo “1-Žica” protokol, kar pomeni, da uporablja eno samo podatkovno linijo za vso komunikacijo z mikrokrmilnikom, omogoča povezavo več senzorjev na isto linijo in identifikacijo z njihovo edinstveno 64-bitno serijsko kodo; ta posamezna podatkovna linija je povlečena visoko z uporom in senzor prenaša podatke tako, da potegne črto nizko v določenih časovnih intervalih za pošiljanje bitov informacij.
Temperaturni senzor DS18B20: Vodotesna sonda DS18B20 je zasnovana za podvodno uporabo, lahko deluje v mokrem ali vlažnem okolju, ne da bi ga voda ali vlaga poškodovala.
Napajalna napetost temperaturnega senzorja: 3.0V ~ 5,25 V;
Območje obratovanja:-55 ℃ do +125 ℃ (-67 ℉ do +257 ℉);
Zagotavlja od 9-bitne do 12-bitne meritve temperature Celzija;
Adapterski modul je opremljen z vlečnim uporom, in se neposredno poveže z GPIO Raspberry Pi brez zunanjega upora;
S tem kompletom adapterskega modula poenostavite priključitev vodoodpornega temperaturnega senzorja na vaš projekt.
1. Ključne točke o protokolu 1-Wire:
Enotna podatkovna linija:
Za komunikacijo med senzorjem in mikrokontrolerjem je potrebna samo ena žica.
Poldupleksna komunikacija:
Podatki se lahko pošiljajo v obe smeri, ampak samo eno smer naenkrat.
Parazitska moč:
DS18B20 se lahko med komunikacijo napaja neposredno iz podatkovne linije, v nekaterih primerih odpravlja potrebo po ločenem napajalniku.
Edinstveni naslovi naprav:
Vsak senzor DS18B20 ima edinstveno 64-bitno serijsko kodo, ki mikrokrmilniku omogoča identifikacijo in naslovitev posameznih senzorjev na vodilu.
Koraki komunikacije z DS18B20:
1.1 Ponastavi impulz:
Mikrokrmilnik sproži komunikacijo tako, da podatkovno linijo potegne nizko za določen čas (ponastavite impulz).
1.2 Utrip prisotnosti:
Če je na avtobusu prisoten DS18B20, odzval se bo s kratkim impulzom, kar kaže na njegovo prisotnost.
1.3 ukaz ROM:
Mikrokrmilnik pošlje ukaz ROM za branje edinstvene 64-bitne kode določenega senzorja (“Ujemaj ROM”) ali za naslavljanje vseh senzorjev na vodilu (“Ladijska soba”).
1.4 Funkcijski ukaz:
Odvisno od želene operacije (kot odčitavanje temperature), mikrokrmilnik senzorju pošlje določen funkcijski ukaz.
1.5 Prenos podatkov:
Podatki se prenašajo bit za bitom, s senzorjem, ki nizko potegne podatkovno linijo, da pošlje a ‘0’ in spustimo črto visoko, da pošljemo "1".
2. Podrobna razlaga komunikacijskega protokola 1-Wire DS18B20
Razlog za široko uporabo senzorjev DS18B20 je predvsem njegov edinstven komunikacijski protokol – 1-Žični komunikacijski protokol. Ta protokol poenostavlja zahteve za strojne povezave in zagotavlja učinkovit način za prenos podatkov. To poglavje bo poglobljeno analiziralo delovni mehanizem in proces izmenjave podatkov 1-vrstičnega komunikacijskega protokola, da bi postavilo trdne temelje za nadaljnjo prakso programiranja.
2.1 Osnove komunikacijskega protokola 1-Wire
2.1.1 Značilnosti komunikacijskega protokola 1-Wire:
Imenuje se tudi 1-Wire komunikacijski protokol DS18B20 “enojni avtobus” tehnologija. Ima naslednje lastnosti: – Komunikacija z enim vodilom: Za dvosmerni prenos podatkov se uporablja samo ena podatkovna linija, kar močno zmanjša kompleksnost ožičenja v primerjavi s tradicionalno večžično senzorsko komunikacijsko metodo. – Povezava z več napravami: Podpira povezovanje več naprav na eno podatkovno vodilo, ter identificira in komunicira prek identifikacijskih kod naprav. – Nizka poraba energije: Med komunikacijo, naprava je lahko v stanju pripravljenosti z nizko porabo energije, ko ne sodeluje v komunikaciji. – Visoka natančnost: S krajšim časom prenosa podatkov, lahko zmanjša zunanje motnje in izboljša natančnost podatkov.
2.1.2 Format podatkov in časovna analiza 1-žične komunikacije
Format podatkov 1-wire komunikacijskega protokola sledi določenemu časovnemu pravilu. Vključuje čas inicializacije, čas pisanja in čas branja:
Čas inicializacije: Gostitelj najprej zažene merjenje časa zaznavanja prisotnosti (Utrip prisotnosti) z vlečenjem avtobusa za določen čas, in senzor nato v odgovor pošlje impulz prisotnosti.
Napišite čas: Ko gostitelj pošlje čas pisanja, najprej ustavi avtobus za približno 1-15 mikrosekundah, nato sprosti avtobus, in senzor potegne avtobus noter 60-120 mikrosekundah za odgovor.
Preberite čas: Gostitelj obvesti senzor, da pošlje podatke, tako da potegne vodilo navzdol in ga sprosti, in senzor bo po določeni zakasnitvi oddal podatkovni bit na vodilo.
2.2 Programska izvedba podatkovne komunikacije
2.2.1 Inicializacija in ponastavitev 1-linijske komunikacije
Na programski ravni, inicializacija in ponastavitev komunikacije 1-Wire je prvi korak komunikacije. Sledi psevdo koda za izvedbo tega postopka:
// Funkcija inicializacije komunikacije OneWire
void OneWire_Init() {
// Nastavite vodilo na vhodni način in omogočite vlečni upor
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
// Počakajte, da avtobus miruje
Zakasnitev mikrosekund(1);
// Pošlji ponastavitveni impulz
OneWire_Reset();
}
// Funkcija ponastavitve komunikacije OneWire
void OneWire_Reset() {
// Potegnite avtobus
SetPinMode(DS18B20_PIN, IZHOD_NIZEK);
Zakasnitev mikrosekund(480);
// Sprostite avtobus
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Zakasnitev mikrosekund(70);
// Počakajte na prisotnost utripa
če (!WaitForOneWirePresence())
// Utrip ni bil zaznan, morda senzor ni povezan ali inicializacija ni uspela
HandleError();
Zakasnitev mikrosekund(410);
}
// Čakanje na prisotnost pulza
bool WaitForOneWirePresence() {
vrni ReadPin(DS18B20_PIN) == 0; // Predpostavimo, da je nizka raven prisotnost signala
}
2.2.2 Operacije branja in pisanja podatkov
Operacije branja in zapisovanja podatkov so osrednji del komunikacije senzorjev. Naslednja koda prikazuje, kako zapisati bajt v enožično vodilo:
// Zapišite bajt v enožično vodilo
void OneWire_WriteByte(bajtni podatki) {
za (int i = 0; i < 8; i ++) {
OneWire_WriteBit(podatke & 0x01);
podatke >>= 1;
}
}
// Napišite malo na enožično vodilo
void OneWire_WriteBit(bitni podatki) {
SetPinMode(DS18B20_PIN, IZHOD_NIZEK);
če (podatke) {
// Sprostite avtobus med pisanjem 1
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Zakasnitev mikrosekund(1);
} drugače {
// Med pisanjem še naprej povlecite vodilo nizko 0
Zakasnitev mikrosekund(60);
}
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Zakasnitev mikrosekund(1);
}
Naslednja je funkcija za branje bajta:
// Preberite bajt iz enožičnega vodila
bajt OneWire_ReadByte() {
bajtni podatki = 0;
za (int i = 0; i < 8; i ++) {
podatke >>= 1;
če (OneWire_ReadBit())
podatke |= 0x80;
}
povratne podatke;
}
// Preberi malo o enožičnem vodilu
bit OneWire_ReadBit() {
SetPinMode(DS18B20_PIN, IZHOD_NIZEK);
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
Zakasnitev mikrosekund(3);
bool rezultat = ReadPin(DS18B20_PIN);
Zakasnitev mikrosekund(57);
vrni rezultat;
}
2.2.3 Mehanizem preverjanja komunikacije OneWire
Komunikacijski protokol OneWire uporablja preprost mehanizem preverjanja v procesu izmenjave podatkov, običajno z branjem zapisanih podatkov, da preveri pravilnost podatkov. Sledi vzorčna koda za preverjanje zapisanih podatkov:
bajtni podatki = 0x55; // Predpostavimo, da so podatki, ki jih je treba poslati
OneWire_WriteByte(podatke); // Zapišite podatke v vodilo OneWire
byte readData = OneWire_ReadByte(); // Preberi nazaj podatke iz vodila OneWire
če (readData != podatki) {
HandleError(); // Če se prebrani podatki ne ujemajo z zapisanimi podatki, odpraviti napako
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





