Łą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...
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...
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
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
ale to jest procedura do DS18S20, który różni się nieco formatem podawanego wyniku od DS18B20 ;)
Nie powinieneś odczytywać (getTemp) temperatury częściej niż wysyłasz żądanie (requestTemperatures) jej odczytu, bo wtedy odczytujesz ostatnio zapamiętaną wartość w DS18B20. Program też nie sprawdza, czy wystąpił błąd odczytu. Przeanalizuj sobie przykłady w: https://github.com/milesburton/Arduino-T... Ponadto...
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)...
Po pobieżnym przyjrzeniu się programowi nasuwają mi się takie wnioski. 1. Zadeklarowałeś wejścia, ale zostawiłeś je jako "pływające". Powinieneś port-y przycisków podciągnąć do plusa, czyli ustwić stan wysoki =1 2. Nie widzę deklaracji dla magistrali 1wire dla DS-ów i całej procedury odczytu i zapisu danych do pamięci. Być może to celowe na tym etapie,...
Witam. Realizuję właśnie odczyt temperatury na płytce Nucleo z wykorzystaniem ds18b20. Mam następujący problem. Odczytując LSB i MSB z czujnika pojawia się błąd w postaci tego że MSB ma wyższą wartość niż można by było zakładać. Po odczycie temperatury wyrzuciłem sobie obydwie wartości na konsolę przez UART. W temperaturze pokojowej widać że LSB się...
Zakładam, że temp -127C jest błędem A dokładniej < -50C lub > 50C Naukowa metoda :-) Tak naprawdę to nie wiesz co się dzieje ma magistrali! Czy brak odpowiedzi na reset, czy złe CRC jak w ogóle jest czytane a wątpię w to. Sprawdzaj CRC! Wcześniej jednak zrób sobie log co się dzieje na magistrali: - reset - presence - search rom (tu masz crc)...
powinno, w dodatku proponuje wydłużyć czas pomiedzy odczytami. A jeśli odczytujesz dane z dallasa to port ustawiasz na 1?
a 8MHz masz?:> Sprawdź PCB Rezystor 4.7kΩ masz na linii danych? Może podaj konkretnie co pokazuje sie na lcd. "Przyczepiliście się" :D do sprzętu , a żaden z Was nie zajrzał do kodu ;) A błąd ukrył się sprytnie , w deklaracji zmiennej T1 , która powinna być typu Integer , a jest ... :?: Piotrek
no masz rację pomyliłem się tylko jak z tym odczytem ?
Była seria DS18B20, które potrafiły sie rozkalibrować. Błąd sięgał +/- 2 stopnie. Był taki temat na Elektrodzie.
Skoro program działał to może coś z ustawianiem taktowania uP się "wysypało" ? Jako , że tutaj czasy opóźnień są strategiczne, to podczas programowania (w Makefile) musisz podać prawidłowy zegar taktujący. Może tutaj jest błąd?
A wyświetlacz jest skonfigurowany jak 16*2?
Czy ten błąd pojawia się na tym "czwartym" czy na wszystkich ?
https://obrazki.elektroda.pl/1760348500_... Witam. Mam już w posiadaniu kolejny czujnik temperatury DS18B20. Czujnik ten podłączyłem zgodnie ze schematem umieszczonym na zdjęciu. Do jednej dużej podpiąłem 5V, do drugiej Dane (pin cyfrowy np: 13) oraz GND, z Arduino. Dodatkowo umieściłem rezystor 4,7k ohm, w celu dokładnego odczytu...
Podpięte w trybie normal czy parasite? Pokaż kod. Timingi ok?
można prosić o jakieś sugestie ?? może źle ustawiam parametry komunikacji ?? w sumie pierwszy raz w życiu pisze coś pod Rsa wiec dlatego to tak wygląda :) Dlaczego te dane nie nadchodzą ?? też miałem własnie takie podejrzenia tylko senk w tym , że kompletni niewiem gdzie jest błąd :|
Teraz coś odbiera, tylko konwersja temperatury nie bardzo mi wychodzi : http://obrazki.elektroda.pl/1298763700_1... [syntax=c] int main(void){ char * dtostrf (double __val, signed char __width, unsigned char __prec, char *__s); char tt2[5]; DDRB |= (1<<4);PORTB |= (1<<4);//tc77 uint16_t tt = 0; sei(); Inicjacja_spi1(); while(1){...
Witam Od kilku dni męczę sie z próbą odczytu temperatury z czujnika DS18B20 przy pomocy bibliotek rklibavr. Czujnik jest podpięty do portu PB0 w procesorze amtega8, rezystor podciągający ma wartość 4,74K dane zczytane z czujnika są wyświetlane na standardowym wyświetlaczu 2x16. Atmega pracuje na wewnętrznym oscylatorze 1Mhz, całość jest zasilana ze...
Ten plik o ile się nie mylę to jest sama biblioteka, w dodatku niekompletna ponieważ kompilator wywala całą masę błędów :/ Edit. I jeszcze jedno znalazłem kolejny przykład spróbowałem skompilować i tym razem dzieją się takie cuda: http://scr.hu/8e6i/jt5tp kody: DS18B20.h [syntax=c]#ifndef DS18B20_H #define DS18B20_H /* DS18B20 przyłączony do portu PA0...
Widzę, oczami wyobraźni, że masz poważny błąd w 16tej linii kodu...
Z opisu w programie wynika, że opóźnienie w programie pomiędzy konwersją a odczytem wynosi 950us. Nie wiem czy to błąd czy powód. Gdyby było to 950ms to byłobu dobrze.
Wygląda na błąd w programie, bo z DS18B20 nie może wyjść 6548.
błąd w procedurze odczytu - jak pisał przedmówca. Próbowałeś mój kod uruchomić?
A skompilowało się? Bo tam był błąd (Icnr zamiast Incr).
Nie kojarzę już przy jakiej okazji otrzymywałem ten błąd. Ale zaproponować Ci mogę skorzystanie z tych kodów:[url=http://www.stsystem.elektroda... czujnik, [url=http://www.stsystem.elektroda.eu/pr... czujników. Kody działają w 100%, pochodzą z wdrożonego rozwiązania. Przyjrzyj...
Piotrek_P napisał: Co do zamieszczonego kodu to nie wiem czy Ci się źle wkleił bo kilka piewszych linii nie jest "zakomentowanych". Już poprawiłem, błąd przy wklejaniu. majeranek53 napisał: Czy włączyłeś optymalizację kodu: -Os Dzięki wielkie to właśnie pomogło. Teraz mogę bez problemu zaprogramować atmęge. Oczywiście odwdzięczam się za pomoc. Teraz...
Error pojawia się gdy nie jest podłączony DS18B20. SHT11 ma odczyt CRC i też pojawia się błąd po nieprawidłowej transmisji, znaczy powinien się pokazać ale u nie jeszcze to nie nastąpiło. Mam innego SHT-ka na innej płytce i tam często zdarzają się błędne odczyty.
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...
Masz na myśli odczyt wbudowanego ADC? Szczerze mówiąc to kiedyś się tym bawiłem i nie pamiętam problemów z ADC, chociaż mogłem po prostu nie zauważyć. Pamiętam że problem z odczytem to był z DS18B20 pod 1wire, pierwszy odczyt był zawsze do kitu, następne jednak były OK, ale to raczej nie był błąd Bascoma.
Oki poszło wielkie dzięki banalny błąd a tyle nerwów Przepraszam admina więcej błędów nie będzie :)
Problem jest z funkcją odczytu temperatury. Nie wiem jak to rozwiązać. Jak wrzucę sensors.requestTemperatures(); do funkcji valnor to wyrzuca błąd. Jak zmienię wyzwalanie valnor z Parada.attach_ms na wyzwalanie z z programu cyklicznie to nie działa Modbus lub coś się zawiesza.
Witam, właśnie pragnę podłączyć dwa czujniki do szyny 1-wire, problem w tym, że przy sekwencji odczytu 64bitowego romu, nie zgadza mi się CRC (jeden czujnik podłączony) i po zaadresowaniu go na szynie, nic się nie dzieje, odbieram same jedynki. przy odbiorze scratchpada crc oczywiście poprawne i wszystko biega... menu: in R16, SREG push R16 rcall...
Może ja wyjaśnię jaśniej. Generujesz przerwanie od timera np. co 800ms, czy 1s. I w przerwaniu wykonujesz operacje: 1. Odczyt temperatury do zmiennej 2. Komenda Convert_T Odpowiadając na Twoje pytanie - 750ms to MINIMALNY czas między CONVERT_T a odczytem (dla 12-bit). Więc odczyt po 1, 2, 3600 sekundach po CONVERT_T nie jest błędem. Dzięki takiej metodzie...
Przepraszam, mój błąd. Wcześniej miałem czujnik pod PC2, teraz pod PB0 i ten sam problem.
Po wielu bitwach stoczonych nad "projektem" zjedzonych nerwach i spalonym jednym czujniku, układ działa... pomijam fakt błędnego podłączenia wyświetlaczy, jednak główną przyczyną było zupełnie co innego - błędne odczytanie wartości temp z scratchpad'a oraz brak definicji F_CPU w pliku ds18b20.c Podczas walki z programem, po prawidłowym zapisaniu formuły...
Tam koleś rozbił Z, a ja chce to programowo zrobić, ogólnie to ten kod w testbench działa mi ale w realnym układzie to sie nie sprawdza , jak metoda polecasz szukanie błędu ??
To może to jest sprawa błędu w programie - coś wpisuje gdzie nie trzeba i potem źle działa?
Tak wyszukiwanie poprzez SEARCHROM (0xF0) i zapis do tablicy odczytanych wartości. Dzięki porównam z tym (dość podobne) co mam może jakiś błąd wypatrze. Mógłbyś jeszcze zapodać ow_reset()
Do DS18b20 napisano tyle bibliotek, że możesz z łatwością znaleźć błąd o ile taki istnieje, tudzież na próbę wykorzystać gotową bibliotekę. Bardziej mnie ciekawi, gdzie w kodzie wysyłasz dane do tego wyświetlacza ?
Witam, wykorzystuję układ ds18b20 do pomiaru temperatury. Układ działa prawidłowo przez około 30s od załączenie zasilania. Następnie odczyty pokazują temperaturę 9 lub 10stopni. Podczas normalnej pracy temperatura jest przetwarzana prawidłowo. Do pull-up'a wykorzystuję wewnętrzny rezystor podciągający uC. Czy ktoś spotkał się z podobnym problemem? Co...
Czytałem ,że dallasy mają błąd 0,5 i gdyby tyle było to byłoby fajnie ale ja mam 1,5.Tem termometr testowy ma atest tak że trzba mu wierzyć.Dallasy też można programować tylko jeszcze niewiem jak. I może taki błąd odejmować procesor prze odczytem tylko trzeba mieć kody zródłowe i wiedze jakto zrobić.
Nie chce wiedzieć że wystąpił błąd, wystarczy że nie wyświetli błędnego pomiaru a na wyświetlaczu zostanie ostatni poprawny wynik.
Jarosław J --> po pierwsze postaraj się jak najszybciej robić odpowiednie wcięcia w kodzie to będzie łatwiej nie tylko nam tutaj na forum analizować twój kod - ale tobie samemu będzie łatwiej a to jest nawet ważniejsze ;) po drugie masz tam gdzieś w tej swojej pętli głównej coś takiego: Convallt ' "Convert ALL T on the 1w-bus" Waitms 1 czyli...
Kazjo , CRC (Cyclic Redundancy Check) to wartość kontrolna, a nie "kod błędu". http://definicje.digipedia.pl/def/102553...
Niestety - jak się okazało - kontrola CRC to mało - zdarza się, że wpadnie błąd mimo kontroli... Będę chyba musiał rozbić czujniki na 2 linie.
Witam. Przede wszystkim jak wysyłasz instrukcje do termometru aby zrobił pomiar to musisz odczekać 750ms, w przeciwnym wypadku będzie błąd odczytu. Po odczekaniu tego czasu resetujesz linie 1-wire i robisz odczyt wartości.
(...) y jeżeli elektronicznie podłączenie jest sprawne, zaproponujesz listing (AVR GCC) testujący taka "obciążoną" magistralę wyświetlający adresy odczytanych termometrów, ich parametry i temperatury oraz szacunek, który z nich to fake. Program ma możliwie najwięcej nieprawidłowości wychwycić (obsługa błędów). Rozpoznanie podróbek DS18B20 wymaga zaimplementowania...
Podłącz klasycznie 3 przewodami na próbę z 5V. Ja straciłem cierpliwość do dwuprzewodowego łączenia tych termometrów. Przy 7 sztukach w sieci jeszcze jakoś tam mi to chodziło (pojawiał się błąd 85C). Jak dodałem 8-y to wszędzie 0C
Połączyłem pin Vcc z AVcc i po podłączeniu zasilania wyświetlają mi się same kwadraty. Wydaje mi się że albo spaliłem atmegę tym połączeniem albo usunąłem z niej program poprzez wcześniejsze próby odczytania lub weryfikacji programu. gdy próbowałem ponownie wgrać program wyskoczył mi błąd podobnie przy próbie odczytu lub zapisu fusebitów.
Stany nie ustalone i inne dziwne rzeczy . Dmucham na zimne jak to elektryk a nie elektronik . Ksarim podesłał mi kod działający ale po modyfikacjach portów LCD i 1Wire wyświetla mi Temp. : 0 °C (nie znam się ale po mojemu nie widzi ds ale powinien pokazywać jak zobaczy ds'a 82,5 o ile dobrze pamiętam ) PS czytam Datasheet'y :D Zapodałem oscyloskop i...
Rezystora nie mam, gdyż ds'a zasilam osobno na Vcc a DQ tylko do danych chce używać.(może tu mój błąd...) Co do częstotliwości taktowania to używam wewnętrznego oscylatora, próbowałem w CVR ustawiać 1, 4 i 8 mhz i nic.
Czy na pewno nie ma przerwy na magistrali 1Wire ? Ten program jest sprawdzony i należy szukać błędu w połączeniu i konfiguracji. Czy Atmega jest nowa tzn. bezpośrednio ze sklepu ?
Czy ktoś jest w stanie przeprowadzić jeszcze jakieś testy jak dziś lub jutro? W600+DS18B20, W800+DS18B20 itp? Właśnie przetestowałem sterownik W800+DS1820 (LN882H+DS1820 już działał dobrze): Działa jak urok, moim zdaniem W800 był najbardziej niezawodną platformą pod względem taktowania i DS1820 i mogę potwierdzić, że nadal działa bardzo dobrze (ponad...
Witam złożyłem układ ze strony http://www.kapelec.com/altivie1.htm zamiast układu DS1820 zastosowałem DS18B20 no i mam problem ponieważ po podłączeniu układ pokazuje mi jakieś "dziwne"temperatury gdzie mam szukać problemu??w układzie?? czy w zamienniku?? Dodano po 4 układ złożyłem bez czujnika ciśnienia ale nie powinien on wpływać na pomiar temperatury...
Siedem lat temu założyłem tutaj konto, nigdy na wasz temat (elektrody ogólnie) nie miałem wyrobionej opinii. Zawsze mnie śmieszyło to co o was mówią w internecie. Że od razu z grubej rury zaczynacie, a z waszych postów nic nie wynika. Nie można odpowiedzieć normalnie na pytanie, tylko musisz sobie posty ponabijać? Przykro mi że elektroda to forum dla...
A sprawdź jakie dane scz... zcz... tfu. odczytujesz z czujnika. Czy to błąd komunikacji czy konwersji. Ja zawsze tak sprawdzam przy problemach. Wyświetlam na LCD-ku obok siebie dane "surowe" i przekonwertowane. I przeważnie to pomaga.
Oj, jednak po raz kolejny sprawdziło się powiedzenie 'kto pyta nie błądzi' :) Aż mi teraz wstyd, ale jednocześnie odetchnąłem z ulgą. Już różne kombinacje odczytu, zapisu próbowałem tworzyć, poprawiać, pisać na nowo, ale że błąd na takim poziomie popełnię to bym się nie spodziewał. Dzięki wielkie zumek
Dzieki za wyrozumialosc, ale sjakby co to juz sobie poradzilerm z tym. pozdrawiam.. To może byś wytłumaczył gdzie był błąd może ktoś kiedyś będzie miał ten sam problem i ten temat mu pomoże.
Przecież masz wyżej napisane, jak to zrobić. canMsg.data Co to ma według Ciebie robić? Przepraszam, wprowadziłem cie w błąd. Float t to ja dodałem. Dodano po 1 Przecież masz wyżej napisane, jak to zrobić. canMsg.data Co to ma według Ciebie robić? Przepraszam, wprowadziłem cie w błąd. Float t to ja dodałem. A tu masz odpowiedz z Serial.print: CAN ID:AA...
Czy tak może być? Nie. Po komendzie: "1wwrite &H55" Spodziewana jest komenda wpisu adresu adresu device do której odnoszą się dalsze komendy, ponadto: Błędem jest stosowanie tejsamej flagi (niby stopniowej) do wielu operacji bez jej kasowania. Zauważ że flaga=1, lub flaga =2 utrzymuje sie przez dłuższy czas, o wiele dłuzszy niż 'przewinięcie 'pętli...
Ręce to opadają i masz rację ;) Masz błąd w definicji zmiennej do której wpisujesz ID czujników to nie jest jeden bajt tylko tablica 8x8bitów czyli 8 bajtów. Adresujesz nie istniejące czujniki bo ich adresy sa niepoprawne, wysyła procek ciagle ten sam bajt. Dim Adres1 As Byte 'adres pierwszego Dim Adres2 As Byte 'adres drugiego Dim Adres3 As Byte 'adres...
Nie działa mi odczyt danych z DS18B20 Nie mam pomysłu co dalej robić W zasadzie masz kilka alternatywnych wyjść: Niektóre z nich to: - nie robić nic, porzucić projekt i powrócić do ulubionej gry….. albo pogłębić wiedzę o testowanym urządzeniu, konkretnie DS18B20 i wtedy zacząć coś z niego odczytywać. - innym, jednocześnie najłatwiejszym ruchem jest:...
OK, mój błąd. To są 2 pierwsze bajty. Pomyliłem z rejestrami Th i Tl. Powinieneś czytać też CRC i sprawdzać czy są odczytane poprawne dane.
Praktyka mówi że 1wire ma jeszcze bardzo szybki reset. Tak że układ i2c <> 1wiire na pewno się wyrobi. Mowa o resecie w overdrive? W, którym termometrze? PS Jak pomiary przepływności danych DS2480 i 2482? Moje pomiary praktyczne i wyliczenia teoretyczne są poprawne czy popełniłem błąd 0,2%? Jak na razie, prawie wszystkie odpowiedzi obywatela...
Witam, niedawno zainteresowałem się programowaniem mikrokontrolerów AVR i elektroniką w ogóle. Od kilku dni próbuję zrobić prosty termometr w oparciu o czujnik Dallas 18B20, wyświetlacz LCD 2x16 ze sterownikiem HD44780 i mikrokontroler Atmega8. Korzystam z biblioteki pana mirkka do obsługi LCD, natomiast do obsługi czujnika temperatury korzystam z tej...
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...
Maciek, dzięki za biblioteczkę :D na bank się przyda. W programowaniniu nie jestem dobry. Raczej sobie raczkuje. Program docelowo był pisany na rodziałkę 12bit czyli muszę zmienić int t = (temp1 + (temp2 * 256)) / 16; na: int t = (temp1 + (temp2 * 256)) / 9; tak? (przeczytałem notę, trzeba tak xD) - tu wychodzi brak pełnego...
https://obrazki.elektroda.pl/2304717700_... Nie pamiętam już skąd wziąłem ten schemat, wszystko działa dobrze, jeśli jest mały prąd. Ostatnio podłączyłem taśmę LED 5A i mosfet bardzo się grzeje. Zlutowałem też układ wg innego schematu i wtedy grzał się mniej. Niestety ten drugi układ powodował zakłócenie odczytu danych z termometra...
chyba problem tkwi w czym innym. procedura reset zwraca mi kod błędu ERR = 1. Myślałem że pomyliłem VDD z GND, gdy zamienię ja miejscami dalej to samo.
Na magistrali 2-przewodowej bez "strong pullup-a" (odsyłam do karty katalogowej) może (choć nie musi) występować znaczny błąd pomiaru nawet rzędu kilku st. C oraz znacznie wydłuża się czas konwersji. Pamiętajcie o tym, sam się kiedyś naciąłem.
Witam. Dzięki za podpowiedź, ja popełnilem wtedy błąd nie zwracając uwagi na czujnik DS 'a. Ja miałem DS18B20 a w programie jest DS1820. Inaczej się przelicza temperaturę.
Cały czas obydwa zegary obserwuję. Oczywiście jak nie jestem w pracy. W zielonym jest najnowsza wersja softu w czerwonym jeszcze bez auto-daty. Jak na razie obydwa idą jak burza bez żadnych błędów. Wspaniałą sprawą jest to sekwencyjne wyświetlanie czas-data-czas- temperatura. Absolutny luksus i wygoda. Żadnego zbędnego manipulowania tact-switch! Wszystko...
Na pierwszy rzut oka w Twoim kodzie, jak i u autora, nie ma żadnej manipulacji trybem wyjścia portu - pinu. Po wrzuceniu tego na STM32F722RE okazuje się, że nie ma to znaczenia. Przy ustawieniu trybu pinu na wyjście z open drain, odczytanie rejestru IDR daje poprawne działanie, bez zmiany trybu na wejście. Sprawdziłem to na porcie A i pinie PA0. Nie...
Jak widzę będzie się kolega zmagał z programem w Bascom. Jeżeli chodzi o one 1Wire to możemy podłączyć to na 2 sposoby: - z dwoma przewodami - wtedy używamy tylko lini DQ (linia DQ powinna być podciągnięta do zasilania poprzez rezystor 3k3 - 4k7 do zasilania ponieważ porty mikro kontrolera mają zbyt małą wydajność) i GND. Zasilanie odbywa się przez...
Ja pisuję w ASM'ie PIC'ków. Mogę Ci tylko podpowiedzieć "założenia algorytmu": - Przy 8 czujnikach pominąłem każdorazowy odczyt adresów ROM - odczytuję je tylko przy instalacji systemu (zapis każdego ID do EEPROM) - przy komunikacji, jak czujnik się nie zgłasza, obsługuję procedurę BŁĄD (ignoruję odczyt) P.S. Na porcie mam "pullup'a" 2.2k (a nie,jak...
1. Możesz usunąć 2. 3. Tak, usuń drugi odczyt i dodaj tę komendę - powinno zadziałać. Poza tym skoro zmienne LsbN i MsbN nie są nigdzie wykorzystywane to możesz zamiast tworzyć 7 par zmiennych używać ciągle jednej i tej samej pary 4. Przemyśl ten punkt. 5. Najwyższy czas - bez tego błędne odczyty (spowodowane błędem komunikacji) też polecą w eter.
Building target: t1.axf Invoking: MCU Linker arm-none-eabi-gcc -nostdlib -L"/home/LPC1114/CMSISv2p00_LPC11xx... -Xlinker -Map="t1.map" -Xlinker --gc-sections -mcpu=cortex-m0 -mthumb -T "t1_Debug.ld" -o "t1.axf" ./src/cr_startup_lpc11xx.o ./src/crp.o ./src/t1.o -lCMSISv2p00_LPC11xx -llm /usr/local/lpcxpresso_7.5.0_254/lpcxpres...
Ok jakoś sie udało z czujnikiem pokazuje właściwą temperaturę. Serdecznie dziękuję za naprowadzenie mnie na błąd :). I mam jeszcze pytanie czy mogę zrobić tak ażeby po naciśnięciu przycisku procesor załączał mi wyświetlacz i podświetlanie, ale beż używania przekaźnika ?
1-wire czujniki DS18b20 odczyt z korekcja CRC Korekcją? Chodzi chyba bardziej o kontrolę poprawności (wykrywanie błędu transmisji) a nie o korygowanie błędów. Mam pytanie odnośnie podtrzymania RTC na kondensatorze. Do jakiego napięcia jest ładowany i ile czasu pozwala na pracę zegarka? Piszesz, że wymontowałeś go z jakiegoś sprzętu RTV. Znasz jego...
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...
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...
Rzeczywiście błąd. Poprawiłem tylko to co pokazałeś i nagle czujnik pokazał 24 stopnie. teraz mam problem bo nie mam żadnej zmiany odczytu. 24 i stoi. mogę ogrzewać ile chce i nic. Ddczytałem te bajty osobno i mam: temp1=11011001 temp2=01100000 co jest bez sensu. Pierwsze pięć bitów temp2 powinno oznaczać znak temperatury a wiec albo 00000 albo 11111...
Rzeczywiście pomogło :D dzięki Błąd strasznie głupi. W funkcji odczytu całego bajtu nie daje wartości początkowej zmiennej bajt dlatego przy ponownym uruchomieniu tej funkcji przypisywana jest jej przypadkowa wartość. Swoją drogą dlaczego przy pierwszym uruchomieniu tka nie było? Dzięki wszystkim.
witam! Tak jak w temacie, od jakiegos czasu próbuje uruchomić termometr DS18B20 ,używam kompilatora CAVR (CodeVision)i tamtejszych bibliotek do ds18b20.h, z przykładów wszystko wynika bardzo prost, inicjalizacja , a potem już tylko odczyt zapomocą odpowiedniej, metody , jednak niestety tak nie jest. Termometr zwraca mi wartość -9999 co w dokumentacji...
if(!ow_reset()) { ow_write_byte(0xCC); ow_write_byte(0x44); } // minimum 750us na przetwarzanie temeratury; for(i=0;i<250;i++)wyswietl... // wyswietla 00 przez czas konwersji if(!ow_reset()) { ow_write_byte(0xCC); ow_write_byte(0xBE); } lsb = ow_read_byte();...
Jak już poznałem lib do DS18B20 to przeraziłem się, gdy okazało się, że ignoruje CRC. I tak się rodzą plotki w necie, a wszystko przez brak wiedzy o bibliotece OneWire, na które bazuje biblioteka DS18B20. Ale to już jest off-topic. Co ma wspólnego lib OneWire do CRC? OneWire nie liczy CRC! Tak samo OneWire nie obsługuje bądź nie EEPROM w DS18B20! OneWire...
OK. Uznajemy hardware za działający prawidłowo. Na 500us zwieram DQ do masy, później czekam 40us i sprawdzam czy jest stan niski. Czekam kolejne 300us i sprawdzam czy jest stan wysoki. Jeśli tak - uznaje że czujnik jest i odpowiada. Ten kawałek działa (udaje się wykryć czujnik). Tu nie widzę błędu w rozumowaniu. Może tylko wydłużył bym czas oczekiwania...
Witam, podłączę się pod ten temat ze swoim problemem. DS18B20 wskazuję mi temperaturę ok. 17C, natomiast w tym samym momencie termostat pieca CO wskazuje ok. 20C. Czujniki położone są obok siebie, CRC się zgadza, wskazania temp. zachowują się logicznie tzn. po dotknięciu DS'a temp. się zwiększa, a następnie spada poczynając od najmniej znaczącej pozycji,...
Bez pełnego kodu chyba nikt ci nie powie, gdzie jest błąd. BTW, w XMEGA można skonfigurować pin jako wyjście typu open drain, w efekcie nie trzeba wykorzystywać sztuczki z przełączaniem pinu na wejście, żeby uzyskać stan 1 na 1-wire. To upraszcza kod, a przy okazji można jeszcze łatwiej do komunikacji wykorzystać USART. IMHO przy liczbie dostępnych...
Witam, tworzę coś na kształt stacji meteo, odczyt temperatur, wilgotności i ciśnienia. Do pomiaru ciśnienia zastosowałem BMP085 i tu pojawił się problem, teoretyczne wszystko działa, ale pomiary temperatury i ciśnienia strasznie pływają. Zaraz po włączeniu odczyty są chyba najbardziej wiarygodne, później temperatura podnosi się o ok.2-3°C i automatycznie...
Witam, Na pewno masz błąd w procedurze odczytującej, w jednym z rozkazów zgubiłeś znaczek #. Masz w kodzie, w procedurze "odczyt danych": MOV R2,2d LCALL delay_reg ;10us a powinno być MOV R2,#2d LCALL delay_reg ;10us Po co w procedurze "inicjalizacja_1wire" masz tak duże opóźnienie (procedura delay_long), wystarczyłoby 480us. Przydałoby się również...
R-MIK powiem Ci, że jesteś ewenement :) Z jednej strony w różnych tematach, w których się wypowiadasz, pokazujesz, że masz dużą wiedzę i czasem wyłapujesz rzeczy, na które nikt inny nie zwrócił uwagi - jak choćby skutek użycia SkipROM, czyli de facto nie wyszukiwania czujnika, tylko odczytu czegokolwiek, co odpowie na magistrali. Tutaj co prawda jedynie...
prosty błąd: uint16_t t; powinno być int16_t t; - bo odczyt z DS jest liczbą ze znakiem w kodzie U2. if (t < 0) { znak = '-'; t = -t; // zamiast tajemniczej negacji z dodaniem jedynki, która robi to samo, ale za to magiczniej } A dalej poszukaj, leniuszku - jeszcze dwa kroki.
Nie wierzę... Nie wykrywało czujników przez brak rezystora 2,2K... Popatrz ile czasu (dni) swojego i kolegów Ci podpowiadających zmarnowałeś, choć już w pierwszym poście miałeś odpowiedź: Masz rezystor podciągający? Niektórzy o nim zapominają. Zmień swoje podejście do elektroniki i czytaj datasheety lub chociaż: http://obrazki.elektroda.pl/5834764600_1...
Zauważyłem ,że jesli chce wyświetlic na lcd albo wysłac do terminala zmienną inną niż byte kompilator w programie wykrywa bład, który mówi,że etykiety nie znaleziono wygłada on tak: Error:61 Line: 32 Label not found $regfile = "m16def.dat" $crystal = 4000000 $lib "mcsbyte.lib" $baud = 2400 Config 1wire = Portd.7 Config Lcdpin = Pin...
Witam, pozwoliłem sobie na drobną modyfikacje Twojego kodu. Dobrze się przyglądnij, porównaj działanie w symulatorze a zobaczysz gdzie jest błąd. Powodzenia!!! $regfile = "m8def.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config...
odczytu ds18b20 ds18b20 błędy odczytu błąd odczytu płyty
polonez tylne zawieszenie germanowy wzmacniacz mikrofon otoczenia
biblioteka hx711 szukam pracy elektronik
Lokalizacja bezpiecznika w klimatyzatorze Blaupunkt Moby Blue Gdzie znaleźć starą sprężarkę US-4?