Łą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...
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
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
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,...
moze bys tak powiedział co było?
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)...
Była seria DS18B20, które potrafiły sie rozkalibrować. Błąd sięgał +/- 2 stopnie. Był taki temat na Elektrodzie.
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 ?
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...
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?
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...
A wyświetlacz jest skonfigurowany jak 16*2?
Czy ten błąd pojawia się na tym "czwartym" czy na wszystkich ?
Wygląda na błąd w programie, bo z DS18B20 nie może wyjść 6548.
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 :|
Podpięte w trybie normal czy parasite? Pokaż kod. Timingi ok?
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.
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){...
Widzę, oczami wyobraźni, że masz poważny błąd w 16tej linii kodu...
A skompilowało się? Bo tam był błąd (Icnr zamiast Incr).
Oki poszło wielkie dzięki banalny błąd a tyle nerwów Przepraszam admina więcej błędów nie będzie :)
błąd w procedurze odczytu - jak pisał przedmówca. Próbowałeś mój kod uruchomić?
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()
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...
Przepraszam, mój błąd. Wcześniej miałem czujnik pod PC2, teraz pod PB0 i ten sam problem.
Nie chce wiedzieć że wystąpił błąd, wystarczy że nie wyświetli błędnego pomiaru a na wyświetlaczu zostanie ostatni poprawny wynik.
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...
(...) 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...
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.
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
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.
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 ?
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.
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...
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...
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...
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...
Witam, w ramach nauki programowania uC, znalazłem kod pozwalający na wyświetlanie temperatury z DS18B20, na wyświetlaczu 1602A. Jako że na samym przeklejeniu kodu pewnie zbyt wiele bym się nie nauczył, użyłem nieco innego termometru(dokładność nie 0,1, a 0,5*C), zmieniłem układ w jakim ma się wszystko wyświetlać, zastąpiłem float przez int zmieniane...
Witam Szanownych forumowiczów! Naukę z mikrokontrolerami zacząłem dość niedawno i od pewnego czasu męczy mnie pewna sytuacja z którą nie potrafię sobie poradzić dlatego zwracam się z prośbą do was. No więc do sedna programuję na płycie EvB 4.3 zakupionej w internecie program jaki używam do programowania to AVR Studio 5.0. Mój problem polega na tym,...
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...
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...
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?
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ć.
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.
Poprawiłem w ten sposób: [syntax=c] #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" #include "ds18b20.h" #include <stdlib.h> #include <avr/interrupt.h> #include <util/delay.h> /* Komunikaty w tablicy wysyłane do wyświtlacza */ volatile unsigned char flaga; char str[17]=" Termometr...
Witam, wg mnie błąd leży po stronie konwersji temperatury, czyli w tym fragmencie kodu: [syntax=c]temp = ((ds18b20_pad[1] << 8) + ds18b20_pad[0]) / 16.0 ;[/syntax] Musisz zerknąć do datasheet'u ds18b20 i zobaczyć jak zapisana jest temperatura w dwóch najmniej znaczących bajtach, czyli Twoich ds18b20_pad[0]...
Fakt mój błąd, czytałem z góry zamiast z dołu i zamieniłem nóżki 1 i 3. Teraz działa. Tylko że nie wiem czemu nie pokazuje więcej niż 25 st, powyżej dostaje na 7segmentowca 07.0 (wartość po przerobie na 7 segmentów, ale 7 faktycznie wskazuje) I się zastanawiam czy krzywdy nie zrobiłem tej czujce, jakieś pomysły czemu tak się dzieje? ds18b20_init(0,0,...
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.
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...
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 ?
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:...
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...
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...
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.
Kazjo , CRC (Cyclic Redundancy Check) to wartość kontrolna, a nie "kod błędu". http://definicje.digipedia.pl/def/102553...
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ę.
Ok, istotnie jeśli dopiero zaczynasz przygodę z AVR, to fakt, że AS5 jest niedoróbką, wersją beta ,którą Atmel postanowił ze sobie tylko znanych przyczyn wypuścić jako produkcyjną, mógł ci umknąć. Nawet nie tyle AS5, co załączony do niego toolchain z AVR-libc 1.7.1, które zawiera m.in. błąd z delay. Jeśli się postarasz to znajdziesz odpowiedni bug report,...
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.
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.
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...
Przepraszam, że dopiero teraz ale jestem w delegacji. Minęły dwa dni a Twój termometr nie działa... Możesz słuchać każdego. Ja proponuję takie rozwiązanie które zajmuje dosłownie dwie minuty jeśli robiło się to wczesniej. Sprawa jest w pełni odwracalna. To nie ślub z kobietą :D Więc co szkodzi spróbować? Kiedyś może sam komuś pomożesz. Należy zacząć...
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...
Witam, 1. Mam nie lada zagwozdkę z obsługą zegara PCF8563p przez Atmege32 + wyświetlacz LCD. Sam zegar działa dobrze. Poprawnie wpisuje datę i godzinę. Problem pojawia się z odczytem. W PCF ustawiam wyjście na 1Hz, które jest połączone z Atmegą jako przerwanie INT0. Co kilka razy, przy resecie uC, gdy program startuje od nowa, to czas zaczyna się niepoprawnie...
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...
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...
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,...
Z tego co się orientuję to pisząc temp2 = 32+(5/9)*temp; działasz na liczbach całkowitych, więc wynik będzie zawsze 32 bo 5/9 całkowite to 0. Chyba powinno być temp2 = 32.0+(5.0/9.0)*temp; Ale nie jestem pewien. Dodano po 17 Z tego co pamiętam z programowania w C to właśnie zapis "5.0/9.0" dawał kompilatorowi sygnał że dzielenie ma się odbyć na liczbach...
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.
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...
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...
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...
Jest to modyfikacja kodu termometru z kursu avr-gcc. Mój wkład to funkcje 'przyciski' i 'termostat', a więc błąd dotyczy tylko ich(ewentualnie usytuowania ich w programie). Problem polega na tym, zwarciu PC4 do masy dostaje krzaki na lcd. Oto kod: #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h"...
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...
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();...
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
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...
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.
Witam, zamierzam pomiędzy dwiema Atmegami32 przesłać pomiar temperatury, przewodowo, za pomocą SPI. Linie MISO, MOSI, i SCK podłączyłem ze sobą, SS mastera jest na masie, SS Slave'a także. Temperaturę przez pewien czas przesyła prawidłowo, jednak po pewnym czasie, na wyswietlaczu Slave'a sa glupoty, jak odłączę na chwilę kabel SS Slave od masy i znowu...
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.
Janek 1815 ja zadałem pytanie o czujnik DS18B20 a nie o PT100 na pewno było by to lepsze rozwiązanie ale sporo kosztowniejsze dla mnie błąd pomiaru to 0.5oC i spokojnie mogę to zaakceptować. wracając do PT100 po pierwsze trzeba zastosować przetwornik temperatury (prądowy lub napięciowy) wykonanie przetwornika to też jest pracochłonne i trzeba pokręcić...
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...
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...
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.
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...
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.
-> snow bez zmian.... zrobiłem tak: main: ........................ ........................... wire_reset1(); wire_write_byte1(0xCC); wire_write_byte1(0x44); delayms(250); delayms(250); delayms(250); wire_reset1(); wire_write_byte1(0xCC); wire_write_byte1(0xBE); lsb1 = wire_read_byte1();...
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...
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...
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...
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...
ds18b20 odczyt odczyt ds18b20 atmega8 ds18b20 odczyt przerwa
jakie napięcie migomat pierścienie objawy cewka pompa
odpowietrzanie klimatyzacji odpowietrzanie klimatyzacji
Find Firmware for Sharp TC Series Devices Citroen C2 1.6 benzyna Sensodrive - brak reakcji na gaz