Nudimo širok raspon najboljih 1-Wire DS18B20 senzorskih konektora, uključujući Nanoflex, DisplayPort, USB, Solarni, SATA, HDMI, TO JE IDEJA, SAS & mnogo više. Svi kabeli proizvedeni su prema najvišim industrijskim standardima. Korištenje sklopa senzorskog kruga za izradu kutija omogućuje vam da se usredotočite na dizajn i marketing, smanjiti troškove, i iskoristiti prednosti naših montažnih linija, QA procesi, i stručnost u proizvodnji.
Senzor DS18B20 komunicira pomoću “1-Žica” protokol, što znači da koristi jednu podatkovnu liniju za svu komunikaciju s mikrokontrolerom, što omogućuje povezivanje više senzora na istu liniju i identificiranje njihovim jedinstvenim 64-bitnim serijskim kodom; ova jedina podatkovna linija se povlači visoko pomoću otpornika i senzor prenosi podatke povlačenjem linije nisko tijekom određenih vremenskih odsječaka za slanje bitova informacija.
DS18B20 senzor temperature: Vodootporna sonda DS18B20 dizajnirana je za podvodnu upotrebu, sposoban za rad u mokrom ili vlažnom okruženju bez oštećenja vodom ili vlagom.
Napon napajanja senzora temperature: 3.0V ~ 5,25 V;
Raspon radne temperature:-55 ℃ +125 ℃ (-67 ℉ do +257 ℉);
Omogućuje mjerenje temperature od 9-bita do 12-bita Celzija;
Adapterski modul opremljen je pull-up otpornikom, i izravno se spaja na GPIO Raspberry Pi bez vanjskog otpornika;
Upotrijebite ovaj komplet adapterskog modula za pojednostavljenje povezivanja vodootpornog temperaturnog senzora s vašim projektom.
1. Ključne točke o 1-Wire protokolu:
Jedna podatkovna linija:
Za komunikaciju između senzora i mikrokontrolera potrebna je samo jedna žica.
Half-duplex komunikacija:
Podaci se mogu slati u oba smjera, ali samo jedan po jedan smjer.
Moć parazita:
DS18B20 može se napajati izravno iz podatkovne linije tijekom komunikacije, eliminirajući potrebu za zasebnim napajanjem u nekim slučajevima.
Jedinstvene adrese uređaja:
Svaki DS18B20 senzor ima jedinstveni 64-bitni serijski kod koji omogućuje mikrokontroleru da identificira i adresira pojedinačne senzore na sabirnici.
Koraci komunikacije s DS18B20:
1.1 Reset puls:
Mikrokontroler inicira komunikaciju povlačenjem podatkovne linije nisko na određeno vrijeme (reset puls).
1.2 Puls prisutnosti:
Ako je DS18B20 prisutan na autobusu, odgovorit će kratkim pulsom, ukazujući na njegovu prisutnost.
1.3 ROM naredba:
Mikrokontroler šalje ROM naredbu za čitanje jedinstvenog 64-bitnog koda određenog senzora (“Podudaranje ROM-a”) ili za adresiranje svih senzora na sabirnici (“Preskoči ROM”).
1.4 Funkcijska naredba:
Ovisno o željenoj operaciji (poput očitavanja temperature), mikrokontroler šalje specifičnu funkcijsku naredbu senzoru.
1.5 Prijenos podataka:
Podaci se prenose bit po bit, sa senzorom koji povlači podatkovnu liniju nisko za slanje a ‘0’ i pustiti liniju visoko da pošalje '1'.
2. Detaljno objašnjenje protokola komunikacije DS18B20
Razlog zašto se senzori DS18B20 naširoko koriste uglavnom je posljedica jedinstvenog komunikacijskog protokola – 1-Protokol za žičanu komunikaciju. Ovaj protokol pojednostavljuje zahtjeve za hardverske veze i pruža učinkovit način za prijenos podataka. Ovo će poglavlje duboko analizirati radnu mehanizam i postupak razmjene podataka u 1-linijskom komunikacijskom protokolu kako bi postavio solidan temelj za naknadnu programiranje.
2.1 Osnove protokola komunikacije od 1 žice
2.1.1 Značajke protokola komunikacije od 1 žice:
DS18B20 se također naziva komunikacijski protokol “s jednim autobusom” tehnologija. Ima sljedeće značajke: – Pojedinačna komunikacija sa autobusom: Za dvosmjerni prijenos podataka koristi se samo jedna podatkovna linija, što uvelike smanjuje složenost ožičenja u usporedbi s tradicionalnom višenamjenskom metodom komunikacije senzora. – Veza s više uređaja: Podržava povezivanje više uređaja na jednoj sabirnici podataka, te identificira i komunicira putem identifikacijskih kodova uređaja. – Mala potrošnja energije: Tijekom komunikacije, Uređaj može biti u stanju pripravnosti male snage kada ne sudjeluje u komunikaciji. – Visoka preciznost: S kraćim vremenom prijenosa podataka, Može smanjiti vanjske smetnje i poboljšati točnost podataka.
2.1.2 Format podataka i vremenska analiza jednožične komunikacije
Format podataka komunikacijskog protokola od 1 žice slijedi određeno pravilo vremena. Uključuje vrijeme inicijalizacije, napisati vrijeme i čitati vrijeme:
Inicijalizacija vremena: Domaćin prvo započinje vrijeme otkrivanja prisutnosti (Impuls) povlačenjem autobusa određeno vrijeme, a senzor tada šalje puls prisutnosti u odgovoru.
Pisati vrijeme: Kad domaćin pošalje vrijeme pisanja, Prvo se povuče u autobus za otprilike 1-15 mikrosekundi, zatim pušta autobus, I senzor se spušta niz autobus 60-120 Mikrosekundi za reagiranje.
Pročitajte vrijeme: Domaćin obavještava senzor za slanje podataka povlačenjem sabirnice i puštanjem, a senzor će nakon određenog kašnjenja iznijeti bit podataka na sabirnici.
2.2 Programska implementacija podatkovne komunikacije
2.2.1 Inicijalizacija i resetiranje 1-linijske komunikacije
Na razini softvera, inicijalizacija i resetiranje 1-Wire komunikacije je prvi korak komunikacije. Slijedi pseudo kod za implementaciju ovog procesa:
// OneWire funkcija inicijalizacije komunikacije
void OneWire_Init() {
// Postavite sabirnicu na način unosa i omogućite otpornik za privlačenje
PostaviPinMode(DS18B20_PIN, INPUT_PULLUP);
// Pričekajte da autobus miruje
Kašnjenje u mikrosekundama(1);
// Pošaljite impuls resetiranja
OneWire_Reset();
}
// OneWire funkcija resetiranja komunikacije
void OneWire_Reset() {
// Zaustavite autobus
PostaviPinMode(DS18B20_PIN, OUTPUT_LOW);
Kašnjenje u mikrosekundama(480);
// Pusti autobus
PostaviPinMode(DS18B20_PIN, INPUT_PULLUP);
Kašnjenje u mikrosekundama(70);
// Pričekajte prisutnost pulsa
ako (!WaitForOneWirePresence())
// Nije otkriven puls, možda senzor nije spojen ili inicijalizacija nije uspjela
HandleError();
Kašnjenje u mikrosekundama(410);
}
// Čeka se prisutnost pulsa
bool WaitForOneWirePresence() {
vratiti ReadPin(DS18B20_PIN) == 0; // Pretpostavimo da je niska razina prisutnost signala
}
2.2.2 Operacije čitanja i pisanja podataka
Operacije čitanja i pisanja podataka ključni su dio komunikacije senzora. Sljedeći kod pokazuje kako napisati bajt u jednožičnu sabirnicu:
// Upiši bajt u jednožičnu sabirnicu
void OneWire_WriteByte(bajt podataka) {
za (int i = 0; ja < 8; i++) {
OneWire_WriteBit(podaci & 0x01);
podaci >>= 1;
}
}
// Napiši malo na jednožičnu sabirnicu
void OneWire_WriteBit(bit podataka) {
PostaviPinMode(DS18B20_PIN, OUTPUT_LOW);
ako (podaci) {
// Otpustite autobus kada pišete 1
PostaviPinMode(DS18B20_PIN, INPUT_PULLUP);
Kašnjenje u mikrosekundama(1);
} drugo {
// Nastavite spuštati sabirnicu dok pišete 0
Kašnjenje u mikrosekundama(60);
}
PostaviPinMode(DS18B20_PIN, INPUT_PULLUP);
Kašnjenje u mikrosekundama(1);
}
Sljedeća je funkcija za čitanje bajta:
// Pročitajte bajt iz jednožilne sabirnice
bajt OneWire_ReadByte() {
bajt podataka = 0;
za (int i = 0; ja < 8; i++) {
podaci >>= 1;
ako (OneWire_ReadBit())
podaci |= 0x80;
}
vratiti podatke;
}
// Čitaj malo iz jednožične sabirnice
bit OneWire_ReadBit() {
PostaviPinMode(DS18B20_PIN, OUTPUT_LOW);
PostaviPinMode(DS18B20_PIN, INPUT_PULLUP);
Kašnjenje u mikrosekundama(3);
bool rezultat = ReadPin(DS18B20_PIN);
Kašnjenje u mikrosekundama(57);
vratiti rezultat;
}
2.2.3 Mehanizam provjere OneWire komunikacije
OneWire komunikacijski protokol koristi jednostavan mehanizam provjere u procesu razmjene podataka, obično čitanjem zapisanih podataka kako bi se provjerila točnost podataka. Slijedi primjer koda za provjeru zapisanih podataka:
bajt podataka = 0x55; // Pretpostavimo da podaci koji se šalju
OneWire_WriteByte(podaci); // Pišite podatke na OneWire sabirnicu
byte readData = OneWire_ReadByte(); // Očitajte podatke sa sabirnice OneWire
ako (readData != podaci) {
HandleError(); // Ako očitani podaci ne odgovaraju pisanim podacima, riješiti pogrešku
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





