Siemka! A ja mam troszkę inną propozycję dla Ciebie. Nie zapisuj numerów czujników w pamięci programu. Poza tym lepiej jest mieć uniwersalny termometr gdzie jak uszkodzi się jeden czujnik, to z łatwością można zastąpić go innym. Zadeklaruj sobie takie zmienne: dim dsid(40) as eram byte ' zmienna tablicowa (EEPROM) dla 5 czujników dim...
Tak, oczywiście korzystałem z tego. Ale co to zmienia jak dalej nie działa? Mój kod został uproszczony na tyle, że chcę tylko wykonać polecenie Search ROM, a nie skanować całą sieć w poszukiwaniu wszystkich urządzeń. U mnie są tylko 2 i taki kod mi wystarcza. Ktoś ma jakieś sugestie co jest nie tak? Pozdrawiam.
Witam, obawiam się, że nie masz takiej możliwości. Ten numer, w uproszczeniu, to zawartość wewnętrznej pamięci ROM, nieedytowalny i programowany na etapie produkcji. Czyżby dalekowschodni producenci mieli tylko pulę kilku adresów i tłukli je na okrągło :) Pozdrawiam PS chyba zostaje ci użycie różnych pinów lub "rozdzielacza/multipleksera"
Kod podajesz w znacznikach kodu, niewiele osób się zainteresuje kodem w obrazku. Jak wcześniej działało, to pewnie kod jest OK, DS w zależności od ilości czujników i długości przewodów powinny mieć dobrany rezystor do linii danych, dla 1 na stykówce może zadziałać 10k, typowo jest OK dla wszystkich 4.7k, a czasami trzeba użyć mniejszego, np. 2-3 k....
Sprawdzając w jednym termometrze numery seryjne stwierdziłem, że na 5 DS18 4 to podróbki! To aż 80% układów.
O ile dobrze pamiętam, na obudowach kluczy tranzystorowych DS2405 też były umieszczone numery ROM. Jednak w przypadku DS18B20 jest chyba inaczej.
Ad. zgf1 Pewnie że się da tylko trzeba program przerobić. Ad. guziecpz DS18b20 i jego kolega DS18S20 ( Nie myl proszę tych czujników ) oraz pozostała rodzina to tak naprawdę mini mikro procesorki które mierzą temperaturę oraz przesyłają zmierzone wartości za pomocą magistrali 1-wire. Jak to się dzieje w środeczku - hmmmm długo by tłumaczyć ale znajdziesz...
na forum są dziesiątki tematów jak to zrobić. ja osobiście mam takie coś, że przy włączaniu układu mogę wejść w menu które po kolei sczytuje mi numery numery seryjne i wpisuje do eepromu, nastepnie przy kolejnym uruchomieniu czyta z eepromu zapisane numery i nie dość że mogę od razu wykonywac pomiary to jeszcze układy podporządkowane są tak jak chcę...
30 minut przy kompie i 1 Wire Search uruchomione i przetestowane. Kod jest skopiowany ze Start FIND ALL D200000237FDB028 1 0C000001179BF628 2 DF00000237E63528 3 4600000237D33F28 4 FIND ONLY 0x28 D200000237FDB028 1 0C000001179BF628 2 DF00000237E63528 3 4600000237D33F28 4 FIND ALL EXCEPT 0x10, 0x04, 0x0A, 0x1A, 0x23, 0x01 D200000237FDB028 1 0C000001179BF628...
Musisz odczytać numery seryjne tych czujników, a potem je odpowiednio adresować. Ja Ci nikt nie pomorze to wieczorem Ci wkleje przykład. PL
Trudno tak wróżyć a błąd pewnie jest błahy. Dlatego warto zawsze wykonać kilka testów. Znajdź to miejsce w kodzie i dopisz to co tam dodałem. To przy starcie pokaże numery seryjne zapisane w pamięci czyli sprawdzi czy zapis przebiegł pomyślnie. Numery pokazuję w postaci Hex bo się akurat zmieszczą na 16-nasto znakowym LCD. Jak w pamięci będa same FF...
Ja Ci radzę, zrób najpierw działający, dla jednego DSa a potem po prostu zmień PIN. Swoją drogą, ja nie rozumiem dlaczego ludzie nie korzystają z zalety ONE WIRE jaką jest możliwość wpięcia kilku czujników równolegle? Różni się to tylko tym, że trzeba znać numery seryjne czujników i zamiast Skip Rom zrobić Match Rom... tyle http://www.elektroda.pl/rtvforum/viewtop...
Do pełni szczęścia , brakuje Ci funkcji wyszukującej numery seryjne urządzeń , podłączonych do madistrali 1wire. Możesz odczytać pojedynczo te numery i zapisać je na stałe w pamięci programu , czy w eepromie , ale to takie .... prostackie(?) :D http://pdfserv.maxim-ic.com/en/an/AN187.... Piotrek
Nie znam bascoma, ale po tym co piszesz problem masz natury błędnego podejścia. Jak zabierzesz jeden czujnik to oczywiste jest, że urządzenie przy 1wire search zwróci czujniki w innej kolej kolejności. Np jak zabrałeś czujnik zwracany jako pierwszy (z "najmniejszym" numer seryjnym) to drugi czujnik stanie się pierwszym. Masz 2 wyjścia: - zapmiętać numery...
Nie da się, jak kupujesz czujniki to są trochę pomieszane i ich numery seryjne losowe (może jakbyś kupił u producenta większą ilość to da się nad tym zapanować). Jedyne rozwiązanie jakie widzę to dołożyć w urządzeniu dodatkowy jeden port 1wire, w nim odczytywać numer i dopisywać do listy adresów. W innym przypadku pozostaje tylko wspomniana metoda na...
Witam. Czy da sie z procesora (at90s8515) odczytać program do pliku .BAS ? Zrobiłem termometr na czterech czujnikach DS18B20 , zamontowałem go w samochodzie ale teraz chciałem dorobić do niego woltomierz żeby pokazywał aktualne napięcie akumulatora... ale niestety nie mam juz na komputerze programu do tego termometru. Nie będe pisał nowego programu...
Co do kodu, to wstawię coś wieczorem, jak wrócę z pracy. Jeśli chodzi o obsługę RFM12 to mam z tego wątku [url=http://www.elektroda.pl/rtvforum/to... z przed ostatniej strony ( jest tam też zresztą kilka moich postów ), natomiast nie ma tam ważnej linijki kodu, który odblokowywał kontroler w czasie pomiędzy odbiorem danych, a który...
Witam Szukałem w internecie odpowiedzi na swoje pytanie ale nie znalazłem konkretnej odpowiedzi. Straciłem 3 dni na doświadczenia i nic mi nie wychodzi. Pracuję nad urządzeniem które odczytuje temperaturę w czterech różnych miejscach. Dopóki wszystkie czujniki działają nie ma problemu. Jeżeli padnie któryś z czujników pojawia się problem bo po jego...
Program do odczytu temperatury z czterech DS18B20 i wyświetlenia na lcd 4x20 w załączniku. Funkcję dtostrf zastąpiłem przez itoa, ale nie wiem czy jest zapisana poprawnie. Normalnie używam dtostrf (do atmega8 się mieści), a z itoa nie mam jak przetestować. Numery seryjne wpisane na stałe. Funkcja do ich odczytania (każdy DS oddzielnie): unsigned char...
A wiec... dziekuje za odpowiedź:) teraz małe sprostowanie, nie uzywam układów DS18B20 tylko DS1820, odczyt ID pastylki przeprowadzam jednorazowo, zwierajac jedna z czterech zworek na płytce podłaczajac tylko jeden czujnik i właczajac układ co powoduje zapis ID do EEPROMA, czynnosc ta powtarzam 4 razy dla czterech ds-ów za kazdym razem przykładajac tylko...
Zabralem sie za termometr ds18b20. Wczesniej korzystalem z niego, wartosc temperatury wyswietlalem na LCD'ku i wszystko dzialalo. Teraz powrocilem do ukladu z ta roznica ze wart. temperatury wyrzucam szeregowo na kompa. Problem polega na tym ze w hyper terminalu wyswietla mi caly czas jedna wartosc (88). Kiedy wyciagam, w czasie pracy, procka uklad,...
Witam, podłączam 4 czujniki temp ds18b20 poprzez 1wire do atmega32. Chciałbym zapisać ich id do eepromu a potem odczytać z tablicy. [syntax=basic4gl]Dim Id1(8) As Byte zapis: For C = 1 To 8 Step 1 writeeeprom id1(c), c Next C odczyt: For C = 1 To 8 Step 1 readeeprom id1(c), c Next C wyswietlanie: For C = 1 To 8 Step 1 Lcd Hex(id1(c)) Next C[/syntax]...
Zastanawiam się, co tak właściwie oznacza katalogowa informacja na temat dokładności pomiaru czujnika DS18b20. Dla ustalenia uwagi załóżmy, że karta katalogowa mówi o dokładności +/-0,5 stopnia. Z drugiej strony sam czujnik zwraca wynik z rozdzielczością 1/16 stopnia. Pytanie jaka jest charakterystyka tej niedokładności i jak to się przenosi na oczekiwaną...
Witam, mam pytanie. Może dla niektórych wydać się śmieszne i zbyt proste, jednak szukam i nie moge znaleźć na nie odpowiedzi. Załóżmy że mam 10 termometrów ds18b20 na jednej szynie. komenda schear rom określi mi ilości i rodzaje układów slave. Czy mogę w jakiś sposób podglądnąc ile ich jest oraz ten adres jaki jest zapisany w każdym z nich?? Drugie...
Witam Próbuję uruchomić termometry DS18B20P i DS18B20+ oczywiście próbki z Dallas. Po dwu dniowej walce z 1-wire RS232 i USB, zostałem zmuszony do założenia wątku. Złożyłem układ według tego schematu: http://ds18b20.friko.pl/montaz.html Podłączyłem to do przejściówki RS232 -> USB. W programie iButton Viewer widzę magistralę oraz podłączone do niej czujniki....
Witam! Mam problem z odczytem ID czujników ds18b20 podłączonych do uC. [syntax=c] while(1) { check_ds18b20 = OneWire_reset(); if(check_ds18b20 == 1) { OneWire_write_byte(0x33); // READ_ROM lcd_goto_xy(0,0); for(int i=0; i<8; i++) { ds1_ID[i] = OneWire_read_byte(); show_buff(ds1_ID[i]); } }else { write_text_from_flash(LCDtext_2); // jeżeli brak DS-a...
Co może być przyczyną, epizodycznego wyrzucania wartości zerowych przez ten czujnik temperatury?
Witam, chciałbym się zapytać o to jak odczytać ID termometrów kiedy mam na szynie 1-Wire podłączone więcej niż jeden układ. żeby odczytać jeden, trzeba podać na szynę sekwencje: - reset; - wysłać polecenie 33h; - odczytywać kod od razu tak robiłem i to mi działa, ale teraz chciałbym odczytywać kody mając kilka termometrów. Czytam w dokumentacji że żeby...
czy na 1-wire musze za każdym razem nadawania danych do slave, wykrywac czy znajduje sie na szynie, czy tylko raz po włączeniu zasialnia.
http://obrazki.elektroda.net/6_119945096... Witam! Przedstawiam mój prosty lecz funkcjonalny termometr "Low-cost" do pomiaru temperatur w dwóch różnych punktach (np. wewnątrz mieszkania i na zewnątrz) Sercem układu jest procesor ATtiny25, czujnikami są znane i lubiane DS18B20 przyłączone do jednej lini danych (z powodu małej ilości pinów I/O...
DS18B20, i masz numer seryjny
Pewnie jakiś układ scalony i tak ma pamięć "nieulotną", w której pamięta konfigurację, więc może pamiętać także adres i parametry transmisji - to nie powoduje dodatkowych kosztów produkcji. Poza tym, wszelkie przełączniki mają tendencję do utraty kontaktowania, wtedy urządzenie przestaje poprawnie działać - a przy wybieraniu adresu mogłoby "samowolnie"...
Mam jeszcze inny wniosek. Znajdujemy tzw trola, i go wyrzucamy bo zakłuca pracę innych dsów, dajemy nowego-Ds18b20. Tanie chińczyki Może problemem chińczyków jest dublowanie numerów seryjnych czujników (serial number).
Jest jeszcze sprawa wydajności prądowej portów, na 51' nie uzyskasz dalekiego zasięgu ( długość kabla dla DS18B20 ). w AVR dajesz rezystor podciągający około 1....1.5k i śmigają, aż miło. jeżeli masz wyświetlacz to zrób to komunikacją opartą na numerach seryjnych. To proste i wygodne rozwiązanie. pozdrawiam.
Nie widzę tablicy do której zapisywany jest numer seryjny DS18B20. Na schemacie masz 3 dallasy to i 3 tablice powinny być
Muszę rozebrać swój(zerwać gluta z elektroniki) ale nie pamiętam by było tam coś takiego. Nic nie trzeba rozbierać, wystarczy przeczytać kartę katalogową układu. https://obrazki.elektroda.pl/6476980000_... W EEPROM zapisywany jest VID, PID użytkownika, konfiguracja. Zajmuje to mniej niż 256bajtów. Pozostałe można wykorzystać do własnych...
AVE... Załaduj poniższy plik do swojego PICa 16F886... Podłącz DS18B20 do pinu PORTB.5 Podłącz pin PORTB.0 przez rezystor 470Ω do pinu 2 portu szeregowego, oraz masę układu do pinu 5 portu szeregowego. Odpal jakiś program terminalowy i skonfiguruj go do odbioru danych z portu szeregowego z baudrate=2400. Po włączeniu PICa najpierw otrzymasz numer...
fajny kod:) Tylko czy wyliczanie crc z scratchpada i numeru seryjnego różni się? bo dla scratchpada, moja procedura chodzi bezbłędnie, tylko z numerem seryjnym problem...
Trochę masz to dziwnie napisane jeśli chodzi o odczyt temperatury. Co jak czas masz odświeżanie pętli głównej ?. Używanie rozkazu Skip Rom to lipa trochę. Jeśli masz ochotę to popraw to trochę tzn. warto odczytać przy starcie numery seryjne termometrów jak masz dwa i nie chce Ci się implementować procedury automatycznego przeszukania to poprostu odczytaj...
Zainstaluj bibliotekę DallasTemperature od https://www.milesburton.com/Dallas_Tempe... w niej jest przykład Multiple. W tym przykładzie do czujników odwołujesz się po ich numerze seryjnym, jest pokazane jak odczytać serial czujnika, potem odkomentowujesz linijki gdzie są podane przykładowe numery, wklejasz te odczytane, komentujesz...
Przebadałem reakcję układów slave na przedłużony reset. Oczywiste, że te zasilane pasożytniczo, zachowują się poprawnie, po powrocie zasilania po resecie zaczynają pracować wystawiając presence. Wewnętrzna pojemność jest rozładowana w czasie sygnału reset, a gdy wróci zasilanie (dlatego wymagane jest po resecie przetrzymanie magistrali w stanie wysokim)...
Witam. Jak zabezpieczyć ds18b20 przed niewłaściwym podłączeniem. Układ zasilany jest pasożytniczo Zwykła dioda na linii GND niestety nie zdaje egzaminu. Nie wyświetla się nawet numer seryjny układu. Ma ktoś jakiś pomysł?
Witam, Czasówki 1wire do zmiany. Sprawdzaj CRC numerów seryjnych.
Mnie natomiast zaciekawiło , podane przez tom262626 ID DS-a ID : 400 219 659 168 068 068 068 179 Takie numer seryjny DS18B20 , nie istnieje. Musiałeś coś pokręcić przy wyrzucaniu ID na LCD lub źle zadeklarować Reg_no :( Piotrek
Witaj Jest coś takiego jak automatyczne przeszukiwanie urządzeń one wire na jednej magistrali, czyli szukanie numeru seryjnego każdego z układów
Zrobiłem tak jak napisałeś rozdzieliłem te f-cje i nadal to samo... Numery seryjne zapisywane są w tablicy rom natomiast nie wiem czy nr. seryjne są różne gdyż nie wiem jak to sprawdzić... na pewno oba układy działają osobno natomiast razem nie chcą działać.
Witam miłośników CA80, w ostatnim czasie zainstalowałem sobie dwa gadżety na CA80 – RTC DS3231 /do aktualizacji czasu i daty, z możliwością ustawiania czasu i daty na RTC/ oraz termometr DS18B20. O ile z tym pierwszym nie ma problemów ze sterowaniem /wg I2C/, to z termometrem mam mały problem. Mam program na odczyt temperatury i działa prawidłowo...
Teraz mam kolejny problem. Chce korzstac z trzech czujnikow. Mam juz ich numery seryjne. Najpierw wysylam komende do wszystkich konwersji temperatury czekam jakies 3 sek. Co teraz mam wyslac aby odczytac temperature z jednego?? Numer seryjny ukladu czy cos innego?? Dodano po 55 Dobra. Nie odp. Juz zrobilem.
Pt100 i DS18B20 to całkiem różne czujniki temperatur i o ile sam wskaźnik/regulator nie jest przystosowany do obsługi obydwu rodzajów czujników to nie da się ich zamieniać. Czujnik Pt100 jest czujnikiem rezystancyjnym. Zbudowany jest z cienkiego drutu platynowego, którego opór elektryczny się zmienia pod wpływem temperatury. Im większa temperatura tym...
A więc kolego odczytałem numer seryjny i wyświetla mi, po konwersji wyniku na system dziesiętnym, 16. Czy to jest poprawnie czy znowu jakaś bzdura?
Jest poprawa, jednak gdy temperatura spada do 0, LCD wyświetla nr seryjne DS-a, 4 razy mignie tymi cyframi, po czym wyświetla temperaturę ujemną. Przy wzroście temperatury jest tak samo, gdy z ujemnej się zbliża do zera, ok 3-4 razy migną cyfry z odczytem nr. seryjnego DS-ów po czym pokazuje poprawną temperaturę.
Odkopuję temat. Mam już uruchomiony program. Chciałbym jednak, by odczytany numer seryjny został zapisany do jakiejś zmiennej, którą następnie można stosunkowo łatwo odczytać/porównać. Jakieś sugestie ?
...Czy w bascomie można zadeklarować tablicę dwu wymiarową Nie :!: Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu... Bo tak są skonstruowane - patrz tabelki w PDF-ku :) Czy jest możliwe najpierw wysłanie do wszystkich czujników polecenia mierzenia temperatury ... Jasne ;) '... 1wreset If Err=0 Then...
Jeśli nadal będą różne to problem z DSami Znalazłem temat w archiwum. Fragment A shift in device parameters of DS1820B B7 die (used in DS18B20, DS1820S, and DS1822 products) has caused several recent lots to experience EEPROM data corruption failures during power up. Although occurrence is rare, this failure can happen to any device during any power...
To nie jest poprawny zapis http://obrazki.elektroda.pl/3954802400_1... Życzę miłego dnia
Witam, napisałem program do odczytu temperatury z jednego DS18B20. Działa wszystko pieknie. Oto kod: [syntax=c]void zmierz_temp(void) { unsigned char devices,temp_L,temp_H; send_byte(0xCC); send_byte(0x44); delay_ms(750); devices=one_wire_reset(); send_byte(0xCC); send_byte(0xBE); temp_L=read_byte(); temp_H=read_byte(); devices=one_wire_reset(); delay_ms(200);...
Temat pewnie był opisany na tym forum kilkukrotnie. Najlepiej skorzystać z noty katalogowej układu. Tam wszystko jest dokładnie opisane. Rozumiem, że kilka czujników chcesz podpiąć na wspólnej magistrali 1-wire bo gdy stworzysz dla każdego czujnika osobną ten problem nie istnieje. Sposoby są ogólnie na to dwa. Pierwszy -wg. mnie prostszy ale mniej profesjonalny-to...
W ogóle skoro nie potrafisz odczytać tego co napisałem wyżej to znaczy że do końca nie rozumiesz co to tablica. Wyjaśnię najbardziej łopatologicznie. Wyobraź sobie, że tablica to pociąg z wagonami od 1 do 8. Każdy wagonik może przewozić daną liczbę. A cały pociąg ma swoją nazwę np. pociąg "Kopernik" Więc. Ds1(1)=9 Oznacza, że mamy tablicę o nazwie "Ds1",...
No i chyba się wyjaśniło choć rezultat i tak marny. Cokolwiek to jest to nie jest jednak DS18B20, tknęło mnie to co pisał Wojtek75 i sprawdziłem jeszcze raz. Family CODE w numerze seryjnym tych czujników jest &H10 co wskazuje na to, że pomimo pięknego napisu DS18B20 na obudowie jest to DS18S20 lub DS1820. I byłoby nawet pięknie, bo poradziłbym sobie...
U mnie zawsze umierały :) Ja czasem macam przy włączonym układzie i dobieram taki montaż żeby odpowiadał na response albo zwracał swój numer seryjny i jeszcze nigdy nie zabiłem tak scalaka, zapewne problem tkwi w długości czasu odwrotnego podłączenia.
numery seryjne głowic numery seryjne rozkodowanie numery seryjne identyfikacja
otwieranie zewnatrz zabezpieczenie wyjście wzmacniacz renault megane kontrolka świec żarowych
osuszacz powietrza osuszacz powietrza
Uszczelniacze wałka rozrządu VW LT 2.5 TDI - wymiary i marki Linde T20 AP wolno jedzie - możliwe przyczyny i diagnostyka