Nudimo širok raspon najboljih 1-Wire konektora za senzore DS18B20, uključujući Nanoflex, DisplayPort, USB, Solar, SATA, HDMI, TO JE IDEJA, SAS & mnogo više. Svi kablovi su proizvedeni po najvišim industrijskim standardima. Korištenje sklopa senzorskog kruga za izradu kutija omogućava vam da se usredotočite na svoj dizajn i marketing, smanjiti troškove, i iskoristite 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 liniju podataka za svu komunikaciju sa mikrokontrolerom, omogućavajući više senzora da budu povezani na istoj liniji i identifikovani po njihovom jedinstvenom 64-bitnom serijskom kodu; ova jedna linija podataka se povlači visoko pomoću otpornika i senzor prenosi podatke tako što povlači liniju nisko tokom određenih vremenskih intervala kako bi poslao bitove informacija.
DS18B20 Senzor temperature: Vodootporna sonda DS18B20 dizajnirana je za podvodnu upotrebu, sposoban za rad u vlažnom ili vlažnom okruženju bez oštećenja vodom ili vlagom.
Napon napajanja temperaturnog senzora: 3.0V ~ 5.25V;
Raspon radne temperature:-55 ℃ do +125 ℃ (-67 ℉ to +257 ℉);
Pruža mjerenja temperature od 9 do 12 bita Celzijusa;
Adapterski modul je opremljen pull-up otpornikom, i direktno se povezuje na GPIO Raspberry Pi bez eksternog otpornika;
Koristite ovaj komplet adapterskih modula da pojednostavite povezivanje vodootpornog temperaturnog senzora na vaš projekat.
1. Ključne tačke o 1-Wire protokolu:
Jedna linija podataka:
Za komunikaciju između senzora i mikrokontrolera potrebna je samo jedna žica.
Poludupleks komunikacija:
Podaci se mogu slati u oba smjera, ali samo u jednom pravcu.
Moć parazita:
DS18B20 se može napajati direktno iz podatkovne linije tokom komunikacije, eliminišući potrebu za odvojenim napajanjem u nekim slučajevima.
Jedinstvene adrese uređaja:
Svaki senzor DS18B20 ima jedinstveni 64-bitni serijski kod koji omogućava mikrokontroleru da identifikuje i adresira pojedinačne senzore na sabirnici.
Koraci komunikacije sa DS18B20:
1.1 Resetujte puls:
Mikrokontroler pokreće komunikaciju tako što povlači liniju podataka nisko za određeno vrijeme (resetovanje pulsa).
1.2 Puls prisutnosti:
Ako je DS18B20 prisutan na sabirnici, reagovaće kratkim pulsom, ukazujući na njegovo prisustvo.
1.3 ROM komanda:
Mikrokontroler šalje ROM naredbu za čitanje jedinstvenog 64-bitnog koda određenog senzora (“Uparite ROM”) ili za adresiranje svih senzora na sabirnici (“Preskoči ROM”).
1.4 Komanda funkcije:
U zavisnosti od željene operacije (poput očitavanja temperature), mikrokontroler šalje specifičnu naredbu funkcije senzoru.
1.5 Prijenos podataka:
Podaci se prenose bit po bit, sa senzorom koji povlači liniju podataka nisko da pošalje a ‘0’ i pustiti liniju da ide visoko da pošalje '1'.
2. Detaljno objašnjenje 1-Wire komunikacijskog protokola DS18B20
Razlog zašto se senzori DS18B20 naširoko koriste je u velikoj mjeri zbog njegovog jedinstvenog komunikacijskog protokola – 1-Protokol žične komunikacije. Ovaj protokol pojednostavljuje zahtjeve za hardverske veze i pruža efikasan način za prijenos podataka. Ovo poglavlje će duboko analizirati radni mehanizam i proces razmjene podataka 1-linijskog komunikacijskog protokola kako bi se postavila čvrsta osnova za kasniju praksu programiranja..
2.1 Osnove 1-Wire komunikacijskog protokola
2.1.1 Karakteristike 1-Wire komunikacijskog protokola:
DS18B20 1-Wire Communication Protocol se također naziva “single bus” tehnologije. Ima sljedeće karakteristike: – Komunikacija sa jednim autobusom: Za dvosmjerni prijenos podataka koristi se samo jedna linija podataka, što uvelike smanjuje složenost ožičenja u poređenju sa tradicionalnom metodom komunikacije senzora sa više žica. – Povezivanje više uređaja: Podržava povezivanje više uređaja na jednu sabirnicu podataka, i identifikuje i komunicira putem identifikacionih kodova uređaja. – Mala potrošnja energije: Tokom komunikacije, uređaj može biti u stanju pripravnosti niske potrošnje energije kada ne učestvuje u komunikaciji. – Visoka preciznost: Sa kraćim vremenom prijenosa podataka, može smanjiti vanjske smetnje i poboljšati tačnost podataka.
2.1.2 Format podataka i analiza vremena 1-žične komunikacije
Format podataka 1-wire komunikacijskog protokola slijedi određeno vremensko pravilo. Uključuje vrijeme inicijalizacije, vrijeme pisanja i vrijeme čitanja:
Tajming inicijalizacije: Domaćin prvo pokreće mjerenje vremena otkrivanja prisutnosti (Puls prisutnosti) povlačenjem autobusa na određeno vreme, a senzor zatim šalje puls prisutnosti kao odgovor.
Napišite tajming: Kada domaćin pošalje vrijeme pisanja, prvo povuče autobus za otprilike 1-15 mikrosekunde, zatim pušta autobus, i senzor povlači sabirnicu 60-120 mikrosekunde za odgovor.
Čitanje vremena: Domaćin obavještava senzor da pošalje podatke tako što povlači sabirnicu i otpušta je, a senzor će poslati bit podataka na magistralu nakon određenog kašnjenja.
2.2 Softverska implementacija komunikacije podataka
2.2.1 Inicijalizacija i resetovanje 1-linijske komunikacije
Na nivou softvera, inicijalizacija i resetovanje 1-Wire komunikacije je prvi korak komunikacije. Slijedi pseudo kod za implementaciju ovog procesa:
// OneWire funkcija inicijalizacije komunikacije
void OneWire_Init() {
// Postavite sabirnicu na ulazni mod i omogućite pull-up otpornik
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
// Sačekajte da autobus ne radi
DelayMicroseconds(1);
// Pošaljite impuls za resetovanje
OneWire_Reset();
}
// OneWire komunikacijska funkcija resetiranja
void OneWire_Reset() {
// Povuci autobus
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
DelayMicroseconds(480);
// Pusti autobus
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
DelayMicroseconds(70);
// Sačekajte prisustvo pulsa
ako (!WaitForOneWirePresence())
// Nije detektovan puls, možda senzor nije povezan ili inicijalizacija nije uspjela
HandleError();
DelayMicroseconds(410);
}
// Čeka se prisustvo pulsa
bool WaitForOneWirePresence() {
vrati ReadPin(DS18B20_PIN) == 0; // Pretpostavimo da je nizak nivo prisutnost signala
}
2.2.2 Operacije čitanja i pisanja podataka
Operacije čitanja i pisanja podataka ključni su dio senzorske komunikacije. Sljedeći kod pokazuje kako napisati bajt u jednožičnu sabirnicu:
// Upišite bajt u jednožičnu sabirnicu
void OneWire_WriteByte(bajt podataka) {
za (int i = 0; i < 8; i++) {
OneWire_WriteBit(podaci & 0x01);
podaci >>= 1;
}
}
// Napišite malo u jednožičnu sabirnicu
void OneWire_WriteBit(bitni podaci) {
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
ako (podaci) {
// Pustite sabirnicu kada pišete 1
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
DelayMicroseconds(1);
} ostalo {
// Continue to pull the bus low when writing 0
DelayMicroseconds(60);
}
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
DelayMicroseconds(1);
}
Next is the function to read a byte:
// Read a byte from the one-wire bus
byte OneWire_ReadByte() {
byte data = 0;
za (int i = 0; i < 8; i++) {
podaci >>= 1;
ako (OneWire_ReadBit())
podaci |= 0x80;
}
vratiti podatke;
}
// Read a bit from the one-wire bus
bit OneWire_ReadBit() {
SetPinMode(DS18B20_PIN, OUTPUT_LOW);
SetPinMode(DS18B20_PIN, INPUT_PULLUP);
DelayMicroseconds(3);
bool result = ReadPin(DS18B20_PIN);
DelayMicroseconds(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(podaci); // Write data to the OneWire bus
byte readData = OneWire_ReadByte(); // Read back data from the OneWire bus
ako (readData != data) {
HandleError(); // If the read-back data does not match the written data, handle the error
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





