Premature optimization is the root of all evil. Proponuję uruchomić jednak funkcję referencyjną i jak będzie działąć, to krok po kroczku wywalać to co niepotrzebne - gdy w pewnym momencie przestanie działać, to będziesz wiedział dlaczego i co jednak jest nie-zbędne. Argument o tym, że "tobie wystarcza" jest lekko lewy, skoro wystarcza ci niedziałająca...
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"
O ile dobrze pamiętam, na obudowach kluczy tranzystorowych DS2405 też były umieszczone numery ROM. Jednak w przypadku DS18B20 jest chyba inaczej.
Sprawdzając w jednym termometrze numery seryjne stwierdziłem, że na 5 DS18 4 to podróbki! To aż 80% układów.
No tak ale gdbyby zegar był zły to pewnie nic byś nie odczytał z DS18B20. Jeśli masz numery seryjne termometrów to super adresuj je wydawaj komendy i odczytuj temperaturę na bieżąco, ja tak robię przez co nie mam tych ogromnych opóźnień związanych z konwersją u mnie działa podzieliłbym się chętnie kodem ale ja mam to w C. Tak jak mówię nie wiem jak...
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"...
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...
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....
Z pewnością szybciej napiszesz to od nowa, a numery seryjne odczytasz sobie bez rozbebeszania auta i zapamiętasz np. w EEPROMie.
Musisz odczytać numery seryjne tych czujników, a potem je odpowiednio adresować. Ja Ci nikt nie pomorze to wieczorem Ci wkleje przykład. PL
DS18B20, i masz numer seryjny
Spróbuję rozdzielić tak jak napisałeś :D i wtedy sprawdzę czy działa i się odezwę... W takim razie to chyba nie jest tutaj problemem (ale to nie zmienia faktu że powinno się to zrobić tak jak Tobie napisałem). Jesteś pewien, że poprawnie odczytałeś numer seryjny z obu czujników i że oba numery w tablicy są różne?
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...
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)...
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ę...
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...
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.
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
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...
Nie widzę tablicy do której zapisywany jest numer seryjny DS18B20. Na schemacie masz 3 dallasy to i 3 tablice powinny być
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, 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);...
...Tzn głównie interesuje mnie jak je rozróżnić tak żeby procek wiedział który jest który i odpowiednio z nich obliczał temp??... To jest akurat prosta sprawa.Skoro mają być na jednej magistrali , to tak czy siak , musisz odczytać ich numery seryjne(ID,adres).Jaki już to zrobisz , to po family code łatwo rozpoznasz , który numer należy do którego DS-a....
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...
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...
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...
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...
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...
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...
Witam Oto przykładowy program w BASCOM AVR obsługujący dwa czujniki o znanych numerach seryjnych: '***************************************... 'Konfiguracja AVR '***************************************... $regfile = "m162def.dat" $crystal = 16000000 $baud = 2400 Config Porta = 255 Porta = 255 Config Portb = 255 Portb = 255 Config...
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
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.
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...
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...
Witam. Takie pytanie mam: czy DS18S20 różnią się w poszukiwaniu search rom od DS18B20? Nie za bardzo chce mi to działać, kod jak poniżej: [syntax=c] char scratchpad[9]; static char rom[2][8]; char strITOA[2]; unsigned char reset (void) { DDRB |= (1<<PB6); PORTB &= ~(1<<PB6); _delay_us (480); DDRB &= ~(1<<PB6); _delay_us (80);...
Witaj Jest coś takiego jak automatyczne przeszukiwanie urządzeń one wire na jednej magistrali, czyli szukanie numeru seryjnego każdego z układów
https://obrazki.elektroda.pl/3897021500_... Opisany poniżej miniaturowy zamek elektroniczny z układami 1WIRE w odróżnieniu od setek podobnych projektów posiada pewną specyficzną cechę: współpracuje nie tylko z układami DALLAS DS1990 czy RW1990, ale w zasadzie z każdym układem z interfejsem 1WIRE posiadającym własny niepowtarzalny adres...
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.
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...
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...
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...
Miernik temperatur do PC pod zatokę 3.5 cala https://obrazki.elektroda.pl/2237807500_... Projekt powstał na zamówienie znajomego, ale trochę spędziłem nad nim czasu i nie wszystko szło jak po myśli, więc pomyślałem, że może przy okazji powstanie z tego ciekawy artykuł do działu DIY. Założenia Tematem miał być miernik trzech temperatur...
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...
DS2430A : - 256-bit Electrically Erasable Programmable Read Only Memory (EEPROM) plus 64-bit one-time programmable application register - Unique, factory-lasered and tested 64-bit registration number (8-bit family code + 48-bit serial number + 8-bit CRC tester) assures absolute identity because no two parts are alike. - ... http://cfa-www.harvard.edu/~thunter/data...
Ale to wymusza stosowanie 1Wire 3-przewodowego. Przynajmniej w moich zastosowaniach to odpada. Ale to uniemożliwia zmianę czujnika w trakcie pracy. Wiem, tak się nie robi: ale powiedz to użytkownikom. Panowie, panowie ;) może to ja się mylę ale z drugiej strony tyle tu pomysłów pada na uproszczenie sobie czy klientowi życia przy konfiguracji zarówno...
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...
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 ?
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?
Obsługa DSa - timingi - są zrobione na przerwaniu. Tylko problem pozostaje nawet odczytując np. co 1 sek. wartości z kolejnych układów. Ale dziś już poskładałem "kabelki" i nie mam możliwości dalszych testów. Skoro są na granicy to dlaczego nic nie szwankuje mierząc 1 czy dwa układy. Problemy są przy większej ilości. Obawiam się, że mierząc i odczytując...
Nie wiem czy to można nazwać postępem, ale wygląda że jest lepiej ale nie tak do końca. Po pierwsze nie wolno oddzielnie podawać napięcia pod czujnik ds18b20, momentalnie nagrzewa się - nie wiem dlaczego, myślałem że już go spaliłem, ale na to wygląda że żyje, w przypadku ds18b20p (wersja PAR) nic się nie dzieje i nie jest wykrywany. Czytając o wersji...
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.
Co to znaczy programy Arduino w języku c? Dodano po 4 Jasne, oto przykłady programów w języku C na Arduino dla podanych zadań: ### 1. Wyświetlanie napisu zawierającego polskie znaki Jeśli używasz wyświetlacza LCD, możesz napotkać problem z polskimi znakami, ponieważ standardowe wyświetlacze LCD nie obsługują ich bezpośrednio. Możesz spróbować zastąpić...
Witaj Kolego. Kiedyś robiłem projekt na DS18B20 i miałem popdobny problem ale pocieszę Cię łatwo można go rozwiązać. Któryś z kolegów forowiczów napisał Ci wyżej iż 85C to jest normalna temperatura którą odczytasz zaraz po włączeniu układu. Jeśli chcesz mieć poprawny pomiar to niestety musisz się dostosować do tego co jest napisane w dokumentacji. Ja...
Witam wszystkich forumowiczów. Z góry przepraszam jeśli umieściłem temat w złym miejscu. Posiadam arduino uno r3 , 5 sztuk termometrów ds18b20 i do tego wyświetlacz LCD 4x20. Miałem podłączone 4 termometry w trybie pasożytnicym z odczytem numerów seryjnych termometrów z rezystorem 2.2k i wszystko pięknie działało. Mój problem pojawił się gdy podłączył...
Udało mi się trochę odchudzić program. Wykorzystałem tablice + inkrementacja numeru komórki w tablicy. Chciałem wykorzystać FOR - NEXT, ale coś nie działa jak trzeba Do Locate 1 , 1 Lcd A Locate 1 , 7 Lcd B Locate 2 , 1 Lcd C Locate 2 , 7 Lcd D Locate 1 , 13 Lcd E Locate 1 , 19 Lcd F 'If Szukaj = 0 Then Call Przeszukaj_i2c 'End If Loop End '***********************...
Właśnie... Jest jeszcze motyw taki, że PIN, którym podłączam się do 1Wire to INT0, przerwania na oba zbocza. Zbocze opadające zeruje timerek a zbocze narastające sprawdza ile upłynęło czasu (ile trwał impuls). Jeśli czas trwania impulsu oznacza RESET PULSE od mastera, zaczyna się cała obsługa w moim SLAVE. W nocie katalogowej jest napisane, że jeśli...
https://obrazki.elektroda.pl/1625698700_... https://obrazki.elektroda.pl/1666677600_... https://obrazki.elektroda.pl/5507649800_... Co lepsze oscyloskopy zawierają analizatory protokołów, rejestratory przebiegów. Niewątpliwie oscyloskop jest urządzeniem pomiarowym. Wydaje się więc, że taki skaner/emulator...
No hej! Więc miło że ktoś poruszył temat tego „badziewia” od Dallasa… Wszystko robię mniej więcej tak jak napisałeś… tzn. póki co nie bawię się numerami seryjnymi. Co do różnych przykładów dostępnych na stronach Dallasa, to też z nimi walczyłem… ale do sedna. Udało mi się odczytać pierwszy bajt numeru seryjnego mojego czujnika,...
Całego kodu nie mogę podrzucić, bo: - nie mam odczytu z eepromu, - nie wiem, czy zapis do eeprom ma być jednorazowy w momencie programowania procesora, czy ma być jednorazowy po pierwszym uruchomieniu programu, czy ma być wielokrotny w dowolnym momencie np. po zmianie termometru i wciśnięciu - dajmy na to - dowolnego guzika, - nie mam zrealizowanego...
Faktycznie mój post był bardzo lakoniczny, i stwierdzenie ze nic nie działa jestr bez senu, chodziło mi tylko o to czy ktoś może ma jakieś gotowe rozwiązania. Ja znalazłem taki plik: library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating...
http://obrazki.elektroda.pl/5623098300_1... Założenie jest takie aby szybko i sprawnie zbierać dane z rozproszonych czujników i wyświetlać je w ładnej formie i mieć możliwość porównania wyników za pomocą wykresów. http://meteo.lipowa.net/temperatury2 Do działania takiego systemu potrzebujemy serwer HTTP z php i publicznym adresem IP...
Tworzę sterownik który będzie operował na 4szt DS18b20 Program jest pisany w bascom Czy w bascomie można zadeklarować tablicę dwu wymiarową Tablica (4)(8) Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu. Podobno po wysłaniu za pierwszym razem numeru układu inne milczą a wskazany nadsłuchuję 1wreset 1wwrite...
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....
Do sprzedania moduły pomiaru temperatury produkcji Mera-Projekt. Są to moduły gdzie na USB mamy przez FTDI232 emulację terminala. Tam wysyłając np. literkę "T" otrzymujemy nr seryjne oraz temperaturę z podłączonych DS18B20. http://obrazki.elektroda.pl/9027417000_1... Miały służyć do pewnego projektu jednakże nie mam już na niego czasu....
numery seryjne głowic numery seryjne rozkodowanie numery seryjne identyfikacja
monitor fujitsu laptop instalacja samsung windows kierunki szybko migają
biblioteka hx711 biblioteka hx711
Jak wyłączyć tryb demo w radiu Blaupunkt R6? Schemat modułu zapłonowego Skoda Favorit - gdzie znaleźć?