Witam wszystkich użytkowników tego forum.
To moja inicjacja i liczę, że znajdę jakąś pomoc wśród tylu fachowców
Bawiłem się trochę DS1820 przy użyciu ogólnie dostępnych programów, przeglądałem trochę źródeł i postanowiłem zrobić na pracę dyplomową aplikację w Delphi, której jednym z zadań będzie odczyt temperatury z kilku DS-ów na linii 1wire podpiętej przez RS232 do komputera.
Nie ma problemu jeżeli na linii jest jeden czujnik, niestety nie potrafię napisać procedury czytającej dane z kilku czujników, ponieważ nie znam zasady wg której to się odbywa. Proszę o krótkie naświetlenie procedurki wg której następuje komunikacja na linii 1wire.
Pozdrawiam
KOala
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięDS1820 kilka układów na linii- zasada odpytywania czujek
Moderatorzy:Jacek Bogusz, Moderatorzy
DS1820 kilka układów na linii- zasada odpytywania czujek
Witam.
Na początek proponowałbym zapoznanie się i przestudiowanie dokładnie dokumentacji czujnika. Są tam wyszczególnione komendy sterujące oraz przykładowe tryby pracy DS1820.
Jeśli chodzi o obsługę kilku czujników na jednej linii procedura ich obsługi wynika bezpośrednio z ogólnych właściwości i zasad obsługi tego typu magistral (podobnie jak np. I2C). Najważniejszy jest adres czujników podpiętych do jednej magistrali. Każdy z DS1820 ma unikatowy adres, na podstawie którego ten tryb pracy jest oparty. Z każdego czujnika należy pojedyńczo odczytać jego adres w momencie kiedy tylko on jest podpięty do magistrali. Po tej operacji następuje odpytywanie każdego dostępnego w systemie czujnika na podstawie uprzednio uzyskanego jego adresu.
Na początek proponowałbym zapoznanie się i przestudiowanie dokładnie dokumentacji czujnika. Są tam wyszczególnione komendy sterujące oraz przykładowe tryby pracy DS1820.
Jeśli chodzi o obsługę kilku czujników na jednej linii procedura ich obsługi wynika bezpośrednio z ogólnych właściwości i zasad obsługi tego typu magistral (podobnie jak np. I2C). Najważniejszy jest adres czujników podpiętych do jednej magistrali. Każdy z DS1820 ma unikatowy adres, na podstawie którego ten tryb pracy jest oparty. Z każdego czujnika należy pojedyńczo odczytać jego adres w momencie kiedy tylko on jest podpięty do magistrali. Po tej operacji następuje odpytywanie każdego dostępnego w systemie czujnika na podstawie uprzednio uzyskanego jego adresu.
Re: DS1820 kilka układów na linii- zasada odpytywania czujek
Tak, czytałem tego pdf-a jest tam przykładowa procedura odpytywania czujników na linii jednak mam problem z translacją tych danych do programu. Pascal nie jest moją najmocniejszą stroną niestety. Może ktoś ma jakieś żródło w Delphi z procedurką samego odpytywania?Witam.
Na początek proponowałbym zapoznanie się i przestudiowanie dokładnie dokumentacji czujnika. Są tam wyszczególnione komendy sterujące oraz przykładowe tryby pracy DS1820.
- Załączniki
-
- ds1820newnew.zip
- PDF z dokumentacjÂą DS1820
- (133.32KiB)Pobrany 147 razy
Witam. Procedura jest nastepujaca, krok po kroku:
1) Reset lini 1wire
2) Wyslanie komendy pominiecia porownywania numeru seryjnego - 0xCC
2) Wyslanie komendy konwersji temperatury - 0x44
^--- Po tej kombinacji wszystkie termometry zaczna konwersje temperatury.
3) Reset 1wire
4) Odczekanie ok. 1s - az skonczy sie konwersja
5) wyslanie komendy - MATCH ROM - 0x55
6) wyslanie numeru seryjnego ukladu z ktorego chcemy odczytac temperature
tzn. wyslanie 8 bajtow ktor okreslaja numer seryjny ukladu - odczyt numeru ponizej
7) wyslanie komendy do odczytu danych - 0xBE
8 ) Odczyt 9 bajtow z termometru
9) Przeliczenie na stopnie celcjusza.
Odczyt numeru seryjnego
1) Reset lini 1wire
2) Wyslanie komendy - 0x33
3) Odczyt 8 bajtow - numeru seryjnego
4) Reset 1wire
To jest procedura na odczyt numeru seryjnego z JEDNEGO ukladu podpietego do magistrali 1wire
Mam nadzieje, ze sie nie pomylilem. Pisane na podstawie dzialajacych programow w bascomie.
Pozdrawiam.
TO SA PROCEDURY DO TERMOMETRU DS1820 I DS18S20, ODCZYT TEMPERATURY Z DS18B20 JEST INNY - wszystko jest w nocie i internecie.
1) Reset lini 1wire
2) Wyslanie komendy pominiecia porownywania numeru seryjnego - 0xCC
2) Wyslanie komendy konwersji temperatury - 0x44
^--- Po tej kombinacji wszystkie termometry zaczna konwersje temperatury.
3) Reset 1wire
4) Odczekanie ok. 1s - az skonczy sie konwersja
5) wyslanie komendy - MATCH ROM - 0x55
6) wyslanie numeru seryjnego ukladu z ktorego chcemy odczytac temperature
tzn. wyslanie 8 bajtow ktor okreslaja numer seryjny ukladu - odczyt numeru ponizej
7) wyslanie komendy do odczytu danych - 0xBE
8 ) Odczyt 9 bajtow z termometru
9) Przeliczenie na stopnie celcjusza.
Odczyt numeru seryjnego
1) Reset lini 1wire
2) Wyslanie komendy - 0x33
3) Odczyt 8 bajtow - numeru seryjnego
4) Reset 1wire
To jest procedura na odczyt numeru seryjnego z JEDNEGO ukladu podpietego do magistrali 1wire
Mam nadzieje, ze sie nie pomylilem. Pisane na podstawie dzialajacych programow w bascomie.
Pozdrawiam.
TO SA PROCEDURY DO TERMOMETRU DS1820 I DS18S20, ODCZYT TEMPERATURY Z DS18B20 JEST INNY - wszystko jest w nocie i internecie.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 47 gości