Oferujemy szeroką gamę najlepszych złączy czujników DS18B20 1-przewodu, w tym NanoFlex, Displayport, USB, Słoneczny, Sata, HDMI, Ata Ide, Sas & wiele innych. Wszystkie kable są produkowane zgodnie z najwyższymi standardami branżowymi. Korzystanie z zespołu obwodu czujnika dla kompilacji pudełek pozwala skupić się na projektowaniu i marketingu, zmniejszyć koszty, i czerpią korzyści z naszych linii montażowych, Procesy QA, oraz wiedza specjalistyczna produkcyjna.
Czujnik DS18B20 komunikuje się za pomocą “1-Drut” protokół, co oznacza, że używa pojedynczej linii danych do całej komunikacji z mikrokontrolerem, umożliwiając podłączenie wielu czujników na tej samej linii i identyfikowane przez ich unikalny 64-bitowy kod szeregowy; Ta pojedyncza linia danych jest wyciągana wysoko za pomocą rezystora, a czujnik przesyła dane, ciągnąc linię nisko w określonych przedziałach czasowych, aby wysłać bity informacji.
DS18B20 Czujnik temperatury: Wodoodporna sonda DS18B20 została zaprojektowana do użytku podwodnego, zdolne do pracy w mokrych lub wilgotnych środowiskach bez uszkodzenia przez wodę lub wilgoć.
Napięcie zasilania czujnika temperatury: 3.0V ~ 5,25 V.;
Zakres temperatur pracy:-55 ℃ to +125 ℃ (-67 ℉ to +257 ℉);
Zapewnia pomiary temperatury od 9-bitowych do 12-bitowych Celsjusza;
Moduł adaptera jest wyposażony w rezystor podciągający, i bezpośrednio łączy się z GPIO Raspberry Pi bez rezystora zewnętrznego;
Użyj tego zestawu modułu adaptera, aby uprościć podłączenie wodoodpornego czujnika temperatury z projektem.
1. Kluczowe punkty dotyczące protokołu 1-przewodu:
Pojedyncza linia danych:
Potrzebny jest tylko jeden drut do komunikacji między czujnikiem a mikrokontrolem.
Komunikacja pół-dupleksu:
Dane mogą być wysyłane w obu kierunkach, Ale tylko jeden kierunek na raz.
Moc pasożyta:
DS18B20 może być zasilany bezpośrednio z linii danych podczas komunikacji, w niektórych przypadkach eliminowanie potrzeby oddzielnego zasilania.
Unikalne adresy urządzenia:
Każdy czujnik DS18B20 ma unikalny 64-bitowy kod szeregowy, który umożliwia mikrokontrolerowi identyfikację i adresowanie poszczególnych czujników w autobusie.
Kroki komunikacji z DS18B20:
1.1 Zresetuj puls:
Microcontroller inicjuje komunikację, ciągnąc linię danych niską przez określony czas trwania (Zresetuj puls).
1.2 Puls obecności:
Jeśli w autobusie jest obecny DS18B20, Odpowiedzi krótkim impulsem, wskazując jego obecność.
1.3 Polecenie ROM:
MicroController wysyła polecenie ROM, aby przeczytać unikalny 64-bitowy kod określonego czujnika (“Dopasuj rom”) lub zająć się wszystkimi czujnikami w autobusie (“Pokój statku”).
1.4 Polecenie funkcji:
W zależności od pożądanej operacji (Jak czytanie temperatury), MicroController wysyła do czujnika określone polecenie funkcji.
1.5 Przesyłanie danych:
Dane są przesyłane bit bit, z czujnikiem ciągnącym linię danych, aby wysłać ‘0’ i pozwalając linii, aby wysłać „1”.
2. Szczegółowe wyjaśnienie 1-przewodowego protokołu komunikacji DS18B20
Powodem, dla którego czujniki DS18B20 są szeroko stosowane, jest głównie wynika z unikalnego protokołu komunikacji – 1-Protokół komunikacji przewodowej. Ten protokół upraszcza wymagania dotyczące połączeń sprzętowych i zapewnia wydajny sposób przesyłania danych. Ten rozdział głęboko przeanalizuje mechanizm działający i proces wymiany danych 1-linii protokołu komunikacji, aby położyć solidne podstawy do późniejszej praktyki programowania.
2.1 Podstawy 1-wire protokoły komunikacji
2.1.1 Cechy 1-przewodowego protokołu komunikacji:
Nazywany jest również protokół komunikacji DS18B20 1-Wire “pojedynczy autobus” technologia. Ma następujące funkcje: – Komunikacja z pojedynczym autobusem: Tylko jedna linia danych jest używana do dwukierunkowej transmisji danych, co znacznie zmniejsza złożoność okablowania w porównaniu z tradycyjną metodą komunikacji czujników z wieloma przewodami. – Połączenie wielu urządzeń: Obsługuje łączenie wielu urządzeń w jednej magistrali danych, oraz identyfikuje i komunikuje się za pomocą kodów identyfikacji urządzeń. – Niskie zużycie energii: Podczas komunikacji, Urządzenie może znajdować się w stanie rezerwowym o niskiej mocy, gdy nie uczestniczy w komunikacji. – Wysoka precyzja: Z krótszym czasem transmisji danych, może zmniejszyć zakłócenia zewnętrzne i poprawić dokładność danych.
2.1.2 Format danych i analiza czasu komunikacji 1-wire
Format danych 1-przewodowego protokołu komunikacji jest zgodny z określoną regułą czasową. Obejmuje czas inicjalizacji, Napisz czas i przeczytaj czas:
Czas inicjalizacji: Host najpierw rozpoczyna czas wykrywania obecności (Puls obecności) Pociągając autobus przez pewien czas, a czujnik następnie wysyła impuls obecności w odpowiedzi.
Napisz czas: Kiedy host wyśle czas zapisu, Najpierw zatrzymuje autobus na około 1-15 Microsekunds, Następnie uwalnia autobus, a czujnik wjeżdża z autobusu 60-120 Mikrosekundy do odpowiedzi.
Przeczytaj czas: Host powiadamia czujnik o wysyłaniu danych poprzez pobranie autobusu i zwalniając, a czujnik wyprowadzi bit danych w magistrecie po pewnym opóźnieniu.
2.2 Wdrożenie oprogramowania komunikacji danych
2.2.1 Inicjalizacja i reset komunikacji 1-liniowej
Na poziomie oprogramowania, inicjalizacja i reset komunikacji 1-przewodowej jest pierwszym krokiem komunikacji. Poniżej znajduje się pseudo kod do wdrożenia tego procesu:
// Funkcja inicjalizacji komunikacji OneWire
void onewire_init() {
// Ustaw magistię na tryb wejściowy i włącz rezystor podciągania
Modna moda(DS18B20_PIN, Input_pullup);
// Poczekaj, aż autobus będzie bezczynny
Opóźnienie(1);
// Wyślij puls resetowania
Onewire_Reset();
}
// Funkcja resetowania komunikacji OneWire
void onewire_reset() {
// Ściągnąć autobus
Modna moda(DS18B20_PIN, Output_low);
Opóźnienie(480);
// Zwolnij autobus
Modna moda(DS18B20_PIN, Input_pullup);
Opóźnienie(70);
// Poczekaj na obecność pulsu
Jeśli (!Waitforonewirepresence())
// Nie wykryto pulsu, może czujnik nie jest połączony lub inicjalizacja nie powiodła się
Obsługiwanie();
Opóźnienie(410);
}
// Czekam na obecność pulsu
Bool Waitforonewirepresence() {
zwróć ReadPin(DS18B20_PIN) == 0; // Załóżmy, że niski poziom jest obecnością sygnału
}
2.2.2 Operacje odczytu i pisania danych
Operacje odczytu i pisania danych są podstawową częścią komunikacji czujników. Poniższy kod pokazuje, jak napisać bajt do autobusu na jednocześnie:
// Napisz bajt do autobusu na jedno-drucie
void onewire_writebyte(Dane bajtów) {
Do (int i = 0; I < 8; I ++) {
Onewire_Writebit(dane & 0x01);
dane >>= 1;
}
}
// Napisz trochę do autobusu na jedno-drucie
void onewire_writebit(dane bitowe) {
Modna moda(DS18B20_PIN, Output_low);
Jeśli (dane) {
// Wypuść autobus podczas pisania 1
Modna moda(DS18B20_PIN, Input_pullup);
Opóźnienie(1);
} w przeciwnym razie {
// Kontynuuj pociągnięcie autobusu podczas pisania 0
Opóźnienie(60);
}
Modna moda(DS18B20_PIN, Input_pullup);
Opóźnienie(1);
}
Dalej jest funkcja do odczytania bajtu:
// Przeczytaj bajt z autobusu z jednym drutem
BYTE Onewire_Readbyte() {
Data bajtów = 0;
Do (int i = 0; I < 8; I ++) {
dane >>= 1;
Jeśli (Onewire_Readbit())
dane |= 0x80;
}
Dane zwracające;
}
// Przeczytaj trochę z autobusu z jednego przewodu
Bit Onewire_Readbit() {
Modna moda(DS18B20_PIN, Output_low);
Modna moda(DS18B20_PIN, Input_pullup);
Opóźnienie(3);
BOOL Result = Readpin(DS18B20_PIN);
Opóźnienie(57);
Wynik zwrotu;
}
2.2.3 Mechanizm weryfikacyjny komunikacji OneWire
Protokół komunikacji OneWire wykorzystuje prosty mechanizm weryfikacji w procesie wymiany danych, zwykle poprzez odczytanie pisemnych danych w celu zweryfikowania poprawności danych. Poniżej znajduje się przykładowy kod weryfikacji danych pisemnych:
Dane bajtów = 0x55; // Załóżmy, że dane zostaną wysłane
Onewire_WriteByte(dane); // Zapisz dane do magistrali Onewire
BYTE READDATA = Onewire_Readbyte(); // Odczytaj dane z magistrali Onewire
Jeśli (ReadData != dane) {
Obsługiwanie(); // Jeśli dane odczytu nie pasują do danych pisemnych, obsłużyć błąd
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





