Problem dotyczy możliwości utraty zawartości EEPROM dla układów DS18B20, DS18S20, DS1822 (Rev. B7): 1. Występuje bardzo rzadko i w specyficznych warunkach. 2. Nie można dokładnie określić partii towaru narażonej na błąd. 3. Utrata zawartości EEPROM-u powoduje stratę kalibracji i wartości rejestrów TH i TL 4. Utrata zawartości może nastąpić tylko w trakcie...
LChucki napisał: Nie widziałem bibliotek na Arduino, które sprawdzałyby czy po zakończeniu RESET faktycznie magistral przyjęła poziom "H", Wyżej wymieniona przeze mnie biblioteka również to sprawdza - funkcja readScratchPad(). Nie sprawdza, a jedynie odczytuje. Co więcej, nigdzie przy odczycie temperatury nie ma juz sprawdzania CRC, więc poza stratą...
Chyba nawet lepiej całkiem przenieść kawałek opisany jako "konwersja temp dla wszystkich dsow" przed pierwszy odczyt. Bo Twoim sposobem konwersja będzie (niepotrzebnie) wykonywana dwukrotnie. Ale ja nie jestem "Bascomiczny", więc uprzedzam, że mogę się mylić ;)
Cóż coś za coś. 1w opiera się na różnicach czasu i każde zakłócenie powoduje błędy.
Witam. Czy włączyłeś optymalizację kodu: -Os ? Warto też dołączyć bibliotekę: "math.h" ponieważ używasz zmiennych double, zmniejszy to objętość kodu wynikowego; i zmiennym nadać volatile. Czy dobrze skonfigurowałeś projekt? Poniższe : char str Dodano po 12 Na temat "dtostrf()" i "sprintf()" poczytaj ich opis w AVR-Libc np. na tej stronie https://savannah.nongnu.org/projects/avr...
Tuta masz błąd. [syntax=c] void POKA (temp0) [/syntax]
No niestety podmieniłem biblioteki i nic same błędy
WItam Najlepiej zrób tak: linie DQ podłącz do pinu procka i podciagnij ją rezystorkiem 4,7kohm do +5V a mase do masy. Nie podłączaj zasilania czujnika. Ja miałem takie problemy własnie gdy wykorzystałem techlogię 2wire taka jak ty. Gdy zmieniłem tak jak Ci napisałem wszytko było już ok. Pozdrawiam Shevu
pawel-jwe napisał: Spróbuj skompilować to w AVRStudio, tylko nie zapomnij zainstalować Winavr .. Niestety program nie ma nic wspólnego ani z AVRStudio ani z WinAVR. Wybaczcie, mój błąd ;) myślałem że chodzi o uC a nie PC.
deklaracja funkcji u08 ds18b20Setup(dallas_rom_id_T* rom_id, u08 resolution, s08 alarm_low, s08 alarm_high); u08 ds18b20Start(dallas_rom_id_T* rom_id); i błędy ds18b20.h:56: error: expected ')' before '*' token ds18b20.h:61: error: expected ')' before '*' token o co chodzi??
Może zamiast dochodzić czy zawyża czy nie zawyża? co się dzieje? - pokaż po prostu frgment kodu odpowiedzialny u ciebie za odczyt temperatury i jej konwersję - bo może tu masz nadal błędy?
tam nigdzie nie ma czegos takiego jak "main.c", jeżeli możesz to zerknij na ten przykładowy makefile Jezeli dodam to w tej: SRC = $(TARGET).c ; ds18b20.c linijce to wywala mi takie błędy: ds18b20.o process_begin: CreateProcess((null), ds18b20.o, ...) failed. make (e=2): Nie można odnaleźć określonego pliku.
Mógłbyś chociaż napisać, jakie dokładnie błędy występują.
Witam. Mam procedurę odczytu trzech czujników temperatury: [syntax=vbnet] Sub Odczyt_ds18b20 Reset Watchdog Disable Interrupts 1wreset Select Case Ktory_ds Case 0: 1wwrite &HCC 1wwrite &H44 Case 1: 1wwrite &H55 1wwrite Ds1(1) , 8 'adres pierwszego czujnika 1wwrite &HBE Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty T = Odczyt(2) : Shift T , Left...
Po prostu nie wywołuj SetChannel, jeśli nie została odczytana żadna nowa wartość. Ponadto, jeśli chcesz zgłaszać błędy, to może moglibyśmy wprowadzić jakiś rodzaj tematu łańcuchowego do publikowania błędów? Dodaj go również do Home Assistant Discovery. Jeśli na przykład wystąpi problem z DS18B20 (brak czujnika), moglibyśmy po prostu opublikować błąd...
Mam napisany program do obsługi sterownika do akwarium. Program działa na Atmega 328P i ma obsługiwać 3 czujniki ds18b20, układ rtc ds1302, 5 przycisków do sterowania, przekaźnika do włączania światła o określonej godzinie oraz wyświetlacz wyświetlający temperaturę oraz godzinę o której światło ma się wyłączać. Wyświetlacz na sterowniku sh1106. Póki...
Dołącz i edytuj plik config.h z folderu, w którym są źródła tego przykładu. W tym pliku jest zdefiniowany port i pin. Ustaw odpowiednio dla Twojego układu.
Wrzuć kompletny projekt.
Witam ! Podłączyłem do Atmega16 3 sztuki DS18B20. Każdy na osobnym przewodzie, od 2 m do 15 m. Oczywiście linia do transmisji podciągnięta do plusa przez 4k7. Po podłączeniu czwartego czujnika, pojawiąją się ciągłe błędy w odczytach temperatury. Pojawiają się nagle, albo po dwóch dniach. Wystarczy odłączyć jeden z czujników i wszystko wraca do normy....
Przepraszam poniosło mnie A czy mógłbyś poprawic mi inne błędy?
Łączę to w ten sposób: https://obrazki.elektroda.pl/9438237900_... Czyli źle. Przeanalizuj to co napisałem o pullup i wyniki pomiaru multimetrem. Sprawdź jakie napięcie mikrokontroler traktuje jako poziom niski a jakie jako wysoki. Wskazówka: Zobacz w innych projektach jak włącza sie klawisze i jak je obsługuje. Prawie zawsze napięcia...
Zamiast kombinować odczytuj temperaturę + CRC. Jeśli czujnik jest niepodłączony to odczytasz same 0xFF, czyli CRC będzie nieprawidłowe dla odczytanego ciągu bajtów. Zresztą także podczas normalnej pracy należy sprawdzać CRC przesłanych danych, gdyż możesz wykryć w ten sposób niektóre uszkodzenia czujnika, lub zakłócenia transmisji.
Masz źle podłączone zasilanie w procku. Do wyświetlacza musisz dodać potencjometr do regulacji kontrastu. Nie wiem też czy do 1W nie trzeba rezystorów podciągających(przejrzyj dokumentację ds18b20). Schemat jest niekompletny bo samo pokazanie label nie zrobi Ci padów do podłączenia zasilacza, gniazda programatora i wyświetlacza.
Niestety DHT11 nie jest sprzedawany w formie metalowego próbnika. Ja potrzebuje przymocować go do metalowych pionów obiegu ciepłej wody. Czy możesz mnie jakoś nakierować którą bibliotekę powinien zastosować żeby to działało? Alby czy da się pominąć protokół one wire w przypadku podłączonego jednego termometru DS18B20?
Skoro dwa czujniki widzi to ja bym spróbował znaleźć te dwa które widzi. Źródłem problemu może być też budowa portu wyjściowego na TX, dla 1wire musi być otwarty kolektor/dren, inaczej port sam w sobie będzie wprowadzać błędy.
Z własnego doświadczenia wiem że czujniki są stabilne. A nie tak jak piszesz ze można mieć 5 różnych odczytów w krótkim czasie. Używam w systemie pomiarowym 70 szt DS18B20 odczytywane są co 15 sekund i wyniki są stabilne. Akurat u mnie nie ma wpływu powiew powietrza czy coś podobnego ponieważ czujniki są wbite w "doniczki" i mierzą temperaturę gleby....
ok zaprogramowało tylko chyba mam jakieś błędy w kodzie bo nie wyświetla temperatury, Pisze samo "Termometr" a czujnik temp mam podłączony. Co może być nie tak?
Najlepiej będzie jednak jak pokażesz kod. Algorytm odczytu ROM-adresu rzeczywiście powinien wyglądać tak jak opisujesz. Być może uda się dostrzec jakieś błędy w samej funkcji.
wprowadziłem następujące zmiany w układzie: - usunąłem LM2596. wemos zasilam od razu z 5v. resztę osprzętu zasilam z 3.3v z wemos - doinstalowałem brakujące 3.3v do sterownika silnika. Po zmianie poprawił się odczyt z d218b20. Teraz już nie wypadają i są cały czas dostępne. Niestety dalej są błędy: obrót silnika po wystartowaniu układu, restart układu...
Blad odczytu z DS18B20 objawia się odczytem temperatury -127 st., tyle, że może to również oznaczać błąd czujnika, brak łącznoeci itp., więc nie jest to jednoznaczne z brakiem zasilania. Pozdr
Wyjąłem wyświetlacz, aby zobaczyć, co kryje się pod nim. HC32F005C6PA - to chyba będzie MCU, a 74HC595D - to driver do wyświetlacza. https://obrazki.elektroda.pl/4780271500_... Kwestia połączenia z chmurą też już się wyjaśniła, mój WBR1 jest uszkodzony, bo dostał zasilanie 5 V. Przerabiałem zasilanie DS18B20 na 5 V, bo sterownik jest...
Zapewne źle napisane oprogramowanie - obsługa czujnika temperatury powoduje opóźnienia lub błędy w obsłudze wyświetlacza, albo na odwrót.
ale to jest procedura do DS18S20, który różni się nieco formatem podawanego wyniku od DS18B20 ;)
No przeglądałem. Prawie wszystko co jest w przykładach bibliotek arduino jest wysyłane na serial-a. Nie mogę sobie poradzić z wyłuskaniem tych wartości do zmiennej, jakbym tego nie zapisał to zawsze błędy.
Jeszcze wprowadziłem pewną modyfikację,tak aby kolejny wentylator włączał się dopiero przy wyższej temp. Jest to zrobione poprawnie? To ci może pracowac; czy jest poprawnie?............ Owszem, wentylatory bedą włączac się stopniowo, ale wyłączenie ich nastąpi jednocześnie po osiągnięciu temp poniżej 'min'. Ten fragment programu powyżej może powodowac...
Mam identyczny układ i opory są takie same, sprawdź czy masz wszystko opdowiednio ustawione w procku, czy przypadkiem ddr nie jest źle ustawiony, no i czy polaryzacja jest OK. W większości przypadków za takie zachowanie odpowiadają głupie błędy, np. zwarcie na ścieżkach
Wg. schematu Duch__ ruszył za 2 razem bo za 1 razem miałem błędy programowe ale to z mojej winy, z 6 oceniam na 6+.
Warto dodać, że driver 1w w kernelach dla H3 jest (był) zbugowany i nie działał poprawnie przy 240MHz (gdzie SoC bez obciążenia tyle właśnie przyjmuje). Przy 480MHz sporadycznie pojawiają się błędy, ale do pełni szczęścia trzeba 600MHz.
Jesteś jednym z pionierów bo sprzęt drogi i mało popularny, więc sam musisz sprawdzić co się dzieje. Pierwsze co bym sprawdził, czy piny IO działa OK - miganie LED, potem kup sobie jakiś analizator Saleae (klony na Allegro kilkadziesiąt PLN), w programie Saleae Logic masz dekoder 1-Wire, możesz podejrzeć co się dzieje na magistrali, czy to Arduino nie...
Nie wiem co rozumiesz przez stwierdzenie: " aby regulacja temperatury była zależna od czasu", jak i kiedy realizujesz obsługę przerwań ale błędy odczytu temperatury prawdopodobnie są wynikiem zakłócania cyklu odczytu ds-a przez przerwanie od timera. Poczytaj o zależnościach czasowych 1-wire. Jest to interfejs asynchroniczny i musisz zapewnić aby poszczególne...
Według not katalogowych nie powinno się przekraczać temperatury 100°C w trybie parasite. U mnie błędy pojawiały się już przy 80-85 stopniach.
Witam, Najpierw należy definiować założenia projektu czyli: - jak często będzie wykonywany odczyt temp. - w jaki sposób będzie wyświetlana odczytana temperatura - podać na jakim zestawie startowym będzie uruchamiany itd. Oczywiście należy zacząć od przeczytania karty katalogowej DS18B20. Następnie należy pokazać co się zrobiło a forumowicze pomogą poprawić...
po pierwsze wez w palce czujnik i sprawdz czy temperatura sie podniesie po drugie wstaw do programu funkcje error bo jezeli wskazuje 15 to znaczy ze odczytales z czujnika temperature 15 stC
...Cały mój kod pochodzi z tej strony: jaros85 :arrow: Jak już przepisujesz cudzy kod, to przepisuj bezbłędnie, a jeżeli chcesz go sam zmodyfikować , to MUSISZ rozumieć co robisz. Oto źródła Twoich kłopotów: Twój kod //Wysłanie całego bajtu //... pom = wartosc>>1; //... } } w oryginale //Wysłanie całego bajtu //... pom = wartosc>>i;...
Znaczy i to i to. Po pierwsze na czas samego wysyłania komendy interfejsem 1wire należy zablokować przerwania (bo po co prosić się samemu o błędne pomiary), a kontrola sumy CRC jest obowiązkowa tak czy inaczej, bo ona pozwoli nam wyeliminować błędy związane m. in. z zakłóceniami.
Z przeglądarki (z palca) działa, ESP widzę w routerze, ale Domoticz nie przyjmuje. Nie umiem odczytać, co tak naprawdę ESP wysyła :(
Witam Łatwiej transmitować sygnał cyfrowy na odległość, ewentualne błędy wykrywane mogą być przez CRC, przy czujniku analogowym obróbka zaszumionego sygnału jest kłopotliwa a kalibracja utrudniona. Piotr
No to jest spięcie- musisz znaleźć gdzie. Odłącz DS i włacz zasilanie. Jak będzie spięcie- to przewody. A jak bez DS pomierzysz napięcia i będą dobre a po wpięciu DS zwarcie- no to niestety... Układy elektroniczne są wrażliwe na błędy.
Witam. Tu ktoś miał co nieco podobny problem. http://forum.ep.com.pl/viewtopic.php?p=8... Okazało się że wartość rezystorów podciągających R2 i R3 wynosząca 4,7k dla niektórych czujników DS18B20 jest za wysoka. Jeżeli występują błędy pomiaru temperatury należy zmniejszyć wartość rezystorów R2 i R3 do 2,2k.
Tak mam je dodane, mimo to wywala błędy PS: Posiadam je z tej samej strony, którą podałem wyżej
Najlepiej było by się pozbyć błędów, a nie tylko nie brać ich pod uwagę. Błędy co 15 sekund to chyba trochę za często. Jak sprawdzić czy działą CRC?
excray: Powinna i zapewne zwraca, jeśli 12 górnych bitów temp jest wcześniej jedynkami. zweinstein: Pierwszy błąd masz w odczyt_DS() - temp1 i temp2 powinny być typu uint8_t. Kolejne błędy masz w funkcjach, których nie chcesz pokazać.
Witam, Uaktualniłem Arduino do wersji 2.2.1 i teraz nie mogę skompilować małego programu dla DS18B20 - na kilka czujników. W poprzednich wersjach działał dobrze i bez problemów wgrywał się na ESP32. Compilation error: invalid conversion from 'OneWire*' to 'uint8_t' {aka 'unsigned char'} W kodzie nic nie zmieniałem - proszę o podpowiedź dlaczego są błędy...
Podłączenie czujnika sprawdzane kilka razy więc błędy być nie powinno, po jego odłączeniu wyświetlacz wskazuje -------- czyli dostajemy PRESENCE od czujnika.
Możemy pomyśleć nad czymś takim ale błąd pomiaru będzie znacznie większy. Przy pomiarze temperatury DS18B20 ma błąd chyba pół stopnia czyli w najgorszym przypadku 1 stopień z dwóch czujników, przy różnicy temperatur np. 3 stopnie daje to błąd 33%. I kolejna sprawa my rejestrujemy wartość chwilową pomiaru co 120s. Żeby zarejestrować ile energii przepłynęło...
Próbowałem już wszystkiego DS-y zawyżają temperature na 100% lub błędy w kodzie.(3 miesiące z tym walcze) zamówiłem kolejne dwa DS-y.
Teraz wiesz dlaczego musiałeś pozamieniać te elementy? Obecnie bez problemu połączysz te elementy ze ścieżkami które będziesz prowadził na płytce za pomocą narzędzia Route . Poniżej małe błędy które musisz jeszcze poprawić http://obrazki.elektroda.pl/8127499900_1... GND powinno być skierowane ku dołowi. Sygnał z PD2 pokrywa symbol GND...
Dziękuję za pomoc. Problem rozwiązany. Błędy były powodowane przerwaniami obsługi wyświetlacza. Po kilku zasugerowanych modyfikacjach wszystko działa bez zarzutu. Pozdrawiam, Łukasz
A czujniki temperatury mają zasilanie czy pracują w trybie parasite power? Temperatura 85C to stan rejestrów po resecie układu czyli między innymi po zaniku zasilania. Jeśli w czasie konwersji temperatury układ nie ma zasilania to może być właśnie taki efekt końcowy.
to ma być wyświetlanie 4 temperatur na raz wraz z napięciem, bez żadnych przycisków :) a co do wyświetlacza to napewno trzeba zmienić, tylko nie wiem który byłby lepszy 4*16 czy 4*20.. przepraszam za błędy, już kod źródłowy poprawiłem, kompiluje się:)
Witam. Po pierwsze napisz w jaki sposób podajesz stan wysoki na linie IO. Po drugie niezapominaj o czasie min 750ms zwłoki potrzebny do konwersji. Po trzecie sprawdź czy nie występują błędy w czasie komunikacji. To tyle na początek. pozdrawiam
Mogę naprowadzić: zapominasz o kodzie, który widziałeś, a który korzysta z delay() i robisz wszystko od nowa na przerwaniach. Problem w tym, że przerwanie związane z obsługą DS18B20 powinno wywłaszczać przerwanie wyświetlacza, co na ATmega w zasadzie jest niemożliwe. W związku z tym wypada rozejrzeć się za obsługą DSa przy użyciu UARTa, co daje pewne...
Pomyliłeś podłączenie masy i +5V przy LCD . Brak zasilania procka . Już poprawiłem i dokończyłem schemat. Zamieszczam tutaj plik mojego schematu, może ktoś przejrzy i wyłapie ew. błędy. W skrócie: Do mikrokontrolera PIC16F877 podłączone zostało: -LCD HD44780 -Dwa czujniki temp. DS18B20 -Czytnik kart MMC -Czujnik ciśnienia atm. MPX4115 Do stabilizacji...
Kolego emarcus, mógłbyś mi ten kod doprowadzić do poprawnej postaci i wystawić tu na elektrodzie? Przeanalizował bym sobie swoje błędy i później może bym ich nie popełniał przy pisaniu następnych programów.
Witam, Potrzebuję porady co zrobić? Zbudowałem sterownik odpowiadający za pracę kotłowni + solar. Sercem jest Atmega 328 połączona z tabletem ARV + VisualBasic. Chcąc zabezpieczyć kotłownię i solara zainstalowałem aku 24V 225Ah i zakupiłem do niego przetwornicę firmy Volt pełny sinus. I problem. Po przełączeniu się układu na zasilanie awaryjne nie mam...
Witam. Mam problem z układem ESP8266 V2 od Amici + DS18B20. Układ działał około 2 lat bez żadnych problemów. Ostatnio zaczeły pojawiać się po pewnym czasie, błędy, które wykrzaczały cały układ. Nadmieniam, że układ składa się z 5 termometrów i płytki. Prosty temat do odczytu temperatur. Teraz ciekawostka, otóż problem nie pojawia się w ogóle do temperatury...
Proszę o sprawdzenie poniższego schematu, w szczególności ERC Errors. Nie bardzo wiem jak je skorygować, być może są błędy przez co stabilizator się grzeje (bez włożonej atmegi z wylutowanymi DS18B20). Może ktoś się pokusi o zaprojektowanie płytki dwustronnej ? Chciałbym porównać jak robią to lepsi :-)
https://obrazki.elektroda.pl/5078506600_... Opublikowany niedawno raport wskazał, ze większość sprzedawanych poza oficjalną dystrybucją układów DS18B20 może być podróbkami lub kopiami, wykonywanymi przez inne niż Maxim firmy. Omawiany układ to prosty, cyfrowy sensor temperatury z interfejsem 1-Wire. Jeśli kupowaliście go na portalach...
(at)Grzegorz_Ni Skoro masz problem z komercyjnym modułem, to chyba lepiej zapytać o rozwiązanie producenta? Skoro na 30m nie działa, po podłączeniu kablem rekomendowanym przez Dallas, twórcę standardu 1-wire, to znaczy, że skopany jest kupiony kontroler - błędy elektryczne, lub softwarowe. Chyba, że producent wprost określa, że moduł obsługuje tylko...
Jak ktoś ma zacięcie to proponuję dwa DS18B20 użyć do pomiaru wilgotności jako czujniki suchy mokry i z nich wyliczyć wilgotność. To naprawdę działa. Porównywalem odczyty z higrometrami które były wzorcowane i błędy były 1%. Nie testowałem pomiarów wilgotności poniżej 10 stopni i powyżej 40. Było mi to nie potrzebne. Wszystko rozbija się tylko o przepisanie...
W nocie katalogowej tego układu jest podany czas jaki maksymalnie może upłynąć od wysłania rozkazu konwersji temperatury do podania strong pullup. Stosowałem tę metodę na avr bez żadnych problemów. Sprawdź czy naprawdę procesor wystawia duży prąd na port. Nie napisał kolega nic o tym co oznacza stwierdzenie "nic takie rozwiązanie nie daje". Nie wiadomo...
Ale jak pisałem ten projekt Duch ma błędy i forumowicze mają same problemy. W Twoim przypadku było kilka błędów które się na siebie nałożyły. 1. to nadpisywanie zmiennej ss string as 6(za krótka) powinna być 7 lub 8 2. złe pozycjonowanie napisów na LCD 3. złe podłączenie DSów (zasilanie) to że u innych działa to nie znaczy że jest dobrze) jeśli miałbyś...
I i $crystal=
Poprawiłem obliczenia pojedynczej cyfry lecz w zaznaczonej linijce w pierwszym okienku z fragmentem kodu wykrzyknikami, pojawia się błąd i nie wiem dlaczego zmienna Znak jest zdeklarowana w ten sposób: Dim Znak as Bit a pojawia się komunikat: error:105 StoreBit error [0] A co z tymi przerwaniami bo do końca nie mogę tego złapać są tak jak powinny być...
Zeppo, czym to kompilujesz? Czy kompilator nie czepia się przy instrukcji TRIS? Ja bym się od razu przyczepił (na jego miejscu). Instrukcji "TRIS" oficjalnie już nie ma. Zamiast niej powinieneś w swoim programie używać takiej konstrukcji: bsf STATUS,RP0 ; ustaw bank 1 movlw b'00000001' ; ustaw pin RA0 movwf TRISA ; jako wejście bez podciągania bcf STATUS,RP0...
Nie, program zadziała nawet przy odczycie od razu po convert_t. Otóż ds w rejestrze cały czas trzyma dane, a są one zmieniane tylko po pomiarze, czyli po ok. 750ms od polecenia konwersji(przy tej resolution). Wtedy jednak narażamy się na błędy odczytu, gdy trafimy na moment update rejestrów ds'u.
Poruszę tylko 2 sprawy: 1)Jeżeli do odmierzania 1 s użyłeś Timer2 "napędzany" kwarcem 32768Hz , to po kiego grzyba procedurę odliczania sekund podkładasz pod przerwanie INT0 :?: On Int0 1s Zamiast włączać przerwania INT0 , włącz przerwania Timer2. On Timer2 1s Config Timer2 = Timer , Async = On , Prescale = 128 Enable Time2 '... 2)Myślałem, że już widziałem...
... kurczę wykorzystałem idealnie zerżnięte procedury z noty MAXima http://www.maxim-ic.com/appnotes.cfm/an_... Spróbuj tych procedur - również od MAXIM-a :D
ok bledy naprawione ale zwraca mi zmienna 0.0 z termometru może źle zainicjowany jest pin do dq i procesora bo używam go do termometru i jednocześnie wiatraka a moze mam jakis błędny odczyt... na modulestartowym i w artykule do niego przeznaczonym pisze ze termometr to ds1820 na nim wygrawerowane jest DALLAS ds18b20 jest to roznica ktora moze spowodowac...
Przy transmisji 1-wire też mogą wystąpić błędy, po to sie sprawdza CRC żeby wykluczyć ich występowanie. W przypadku 1-wire bardzo istotne jest dobre dobranie czasów wiec błędy mogą wystąpić. A tak poza CRC to ile dajesz DS-owi na obliczenie temperatury? Jaką rozdzielczość ustawiłeś w DS18B20 ? Standardowo jest 12 bitów nie tak jak w DS18S20, DS1820...
Racja. Mój błąd.
nie mi chodzi czy wiesz co ty ustawiasz ? (a gdybys wiedzial co ty robisz to by tego tematu nie bylo) napisalem ci kod sprawdz czy dobrze napisalem poza tym brakuje config lcd Błędy w Locate co to znaczy Locate 12 , 2 ?
1. W filmie było napisane, że czujnik temperatury to DS18B20. A jak jest zrobiony? Nota katalogowa i wszystko jasne :) 2. Po co kolega wytyka mi "błędy", jeśli sam nie wie co pisze? - Nóżka "0" nie jest wykorzystywana, bo też po co? Proponuje zapoznać się z przekaźnikiem z naciskiem na jego sposoby podłączania i wyprowadzenia..
oczywiscie ze podciagnołem, jak na razie z jednej strony przy wyswietlaczu 3,3k ale czytałem o 1k z obu stron Dodano po 5 Moment bo teraz nie kminie rozumiem że może będą błędy w transmisji danych ale nie powinien się sterownik od tego zawieszać.
Rzeczywiście nie zauważyłem w nocie katalogowej że to widok od dołu. Dziś rano kupiłem kolejny czujnik ale podłączyłem go na wszelki wypadek inaczej (znalazłem schemat) czyli dwie zewnętrzne nóżki do masy a środkową do uC oraz przez rezystor 4,4k do zasilania. Program Stefana działa :) Wielkie dzięki koledzy bardzo mi pomogliście:) PS Niektórzy dopiero...
0,5 st C w DS18b20 to bład pomiarowy dopuszczalny przez producenta a rozdzielczosc pomiaru to 0,1 stC a dokładnie 0.0625 st C czyli 1/16 stopnia
Witaj! Co masz na myśli mówiąc "jednocześnie"? Masz na myśli immobiliser z termometrem w jednym? :) Ten przykład tutaj działa :) To niewątpliwie, bo kiedyś go uruchomiłem ... z pełnym sukcesem, tak więc musisz próbować :) Albo pisz co jest niejasne, co Ci nie działa, albo jakie masz błędy ... Ja teraz zmagam się z zegarem :) Chcę zrobić zegar ATMEGA8+PCF+właśnie...
Program digitemp 3.6.0 skompilowałem w końcu na samym routerze (cross kompilacja wywalała tylko błędy). Niby działa, ale nie wykrywa DS18b20. Ten sam program na Linux Mint wykrywa go bez problemu. Zauważyłem, że cross compilator optware na moje Tomato dorzuca dwa patche przed kompilacją. Po ich ręcznym dorzuceniu do pilków źródłowych Digitemp 3.6.0...
Witam, myślę że program resetuje się i nie wychodzi z setup(), co łatwo sprawdzić. Tak na pierwszy rzut oka. Spróbuj dać wdt_reset() na początku, zaraz za wdt_enable(WDTO_1S). Jeśli używane funkcje zwracają błędy, to powinieneś je odczytać. Z czegoś takiego raczej zrezygnuj: "regBank.set(40002, (float) (czujnik_2.getTempC()*10));". Pozdrawiam.
Zacznij wszystko od początku,najpierw napisz dobry program dla JEDNEGO - DS18B20. Przeczytaj temat i odkryj, że to już robiłem. Błąd leżał w nieodpowiedniej wartości rezystora podciągającego. Najpierw próbuj odpowiedzieć sobie dlaczego dana funkcja(rzecz) nie działa , a dopiero gdy faktycznie nie potrafisz odpowiedzieć sobie na zadany temat pytaj kolegów...
;* ;***************************************... ;*PROCEDURA WYLICZANIA SUMY KONTROLNEJ Z NUMERU SERYJNEGO UKŁADU 1-Wire ;***************************************... ;* ;* ;*******************************OPIS****... ;*Kolejne bajty numeru seryjnego...
mam nastepujacy problem mam program ktory po nacisnieciu klawisza pokauje mi temp. Problem w tym ze zawsze po nacisnieciu go 7 raz pojawia sie -12 C a potem 2 razy oki . I krzaki a potem reset Fragment kodu: Sub Read1820 Wait 1 1wreset 1wwrite &HCC 1wwrite &HBE Bd(1) = 1wread(9) 1wreset Tmp = Bd(1) And 1 If Tmp = 1 Then Decr Bd(1) T = Makeint(bd(1)...
Nie należy ignorować tylko stwierdzić co jest powodem odczytywania bzdurnej temperatury, brak presence, brak danych, złe crc (o ile biblioteka je czyta i sprawdza co jest rzadkością) i zaradzić temu jeśli się da. P Całkowicie się zgadzam. Pisząc "ignorować" miałem bardziej na myśli bardziej to, żeby tego nie wyświetlać ;) Sądzę, że jeżeli takie błędy...
Nie chce być nie uprzejmy albo coś ale masz tyle błędów w schemacie, że najlepiej zrobię jak odeśle Cię do artykułow na ten temat.: http://mikrokontrolery.blogspot.com Poczytaj trochę i popraw ten schemat. Jeśli chodzi o stabilizator to zapewne pomyliłeś wyprowadzenia i dlatego otrzymujesz takie napięcie. Może jakieś zdjęcie pokaż? Wtedy będziemy mogli...
Być może, że to jest jeszcze starsza wersja niż 5.2 i dlatego masz takie problemy. Gdzieś były wystawione wsady do wersji 5.0 i 4.7, ale teraz to trudno znaleźć. Jak coś znajdę w swoich zasobach, to wystawię. znalazłem bin wersji 9.52, teraz poszło dalej, tylko teraz buzer pika i wyświetla błędy, ale jest lepiej, jutro ciąg dalszy :) z bina uzyskałem...
Jeszcze gorzej. "v1Wire_SendBit" to już zupełnie jakaś porażka. Może na przykładzie Ci wytłumaczę. [syntax=c]DS_0; //presence _delay_us(500); DS_1; _delay_us(65); j = DS_IN; _delay_us(300); return j[/syntax] Na końcu tej funkcji Presence jest czas 300uS. Znajdź go u siebie. A teraz pomyśl, zrobiłeś presence i już bez czekania przechodzisz do wysyłania...
Jeżeli kolega może podłączyć kwarc 16MHz, to po powrocie z pracy mogę załączyć sprawdzony program termometru z atmegą 32, wspomnianym kwarcem i obsługą LCD 2x16. Układ DS18b20, jak inne układy 1-wire wymagają bardzo dokładnych czasów, żeby się poprawnie skomunikować. Ja też trochę powalczyłem zanim zobaczyłem prawidłową temperaturę. Zgodnie z obietnicą:...
Parę set moich sterowników obsługuje instalacje właśnie na Dallasie. Od jakiegoś czasu (kilka lat) to nie jest już Dallas tylko MAXIM. Tak na marginesie. Osobiście używam układu DS18B20 do pomiarów miejscowych. 10m skrętki komputerowej (z linki, nie drutu) podłączonej do konwertera (selfmade) 1-Wire na RS232 i programiku do odczytu temperatury (dostępny...
Pisanie programu to nie wszystko, trzeba jeszcze umieć usuwać błędy i go testować Sprawdź czy teraz coś Ci wyświetli: [syntax=c]ds18b20_pad[0] = 0x90; ds18b20_pad[1] = 0x01; temp = (ds18b20_pad[1] << 8) | ds18b20_pad[0]; if(temp < 0) temp = -temp; temp >>= 4;[/syntax]
Tak jak pisze kol. (at)BlueDraco nie ma powodów, aby czujnik był zasilany inaczej niż procesor. Całość może działać na 3,3V, co upraszcza układ. Spadek napięcia będzie żaden na 20m, policz sobie go z prawa Ohma. Błędy eliminuje się poprzez sprawdzanie CRC dla transmisji, zresztą sam UART eliminuje część błędów, gdyż bity są samplowane wielokrotnie,...
błędy ds18b20 ds18b20 błędy odczytu termostat ds18b20
pracuje silnik wyjęciu kluczyka peugeot scroll touchpad czujnik dolot powietrza skoda
truma c6002 uziemienie kaloryferem
Błąd A13 w zmywarce Indesit DFP5731 - przyczyny i rozwiązania Co to jest k164ŁA8? Wyjaśnienie kodu HTML i układu scalonego