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
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...
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, Ostatnio zakupiłem Automatyczny Karmnik dla Rybek od Mam kilka pytań: Przylutowałem czujnik temperatury DS18B20 do GPIO17. Pomiędzy dane (GPIO17) a VCC wlutowałem rezystor 150k, GND do GND. Ale nie znalazłem jak to poprawnie skonfigurować. GPIO mapper wizzard z sieci nie pomaga. Przełączanie bębna nie wyłącza go po jednym obrocie, nadal się obraca....
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...
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...
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ąć...
ale to jest procedura do DS18S20, który różni się nieco formatem podawanego wyniku od DS18B20 ;)
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)...
dokładnie tak tylko że to nie ma się dobrze wyświetlać tylko poprawnie działać w programie wyświetlam to dlatego że nie bangla
http://obrazki.elektroda.pl/9506573100_1... Ostatnio sporo osób prezentuje swoje konstrukcje zegarów, więc i ja postanowiłem pokazać zegar jaki zrobiłem na prośbę kolegi. Ogólnie założenie było takie, by zegar był widoczny w nocy z większej odległości. Kolega zaproponował aby zrobić go na około 10cm wyświetlaczach LED. Wydało mi się...
https://obrazki.elektroda.pl/9826733000_... Wśród projektów dla początkujących elektroników' wszelkiej maści termometry i termostaty były swego czasu bardzo popularne. Łatwo się je teraz realizuje z użyciem mikrokontrolerów, a proste termostaty do wentylatorów przydają się na przykład do budowy wzmacniaczy audio i zasilaczy warsztatowych...
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ł...
czy ktoś z Was ma pomysł na wyjaśnienie zjawiska takiego, że ilość błędnych odczytów zdecydowanie maleje z upływem czasu? Bez szklanej kuli a szklaną kulą w tym przypadku jest oscyloskop, analizator logiczny czy analizator 1-Wire nie potrafię powiedzieć dlaczego tak jest. Po analizie trzeba obejrzeć kody źródłowe i wtedy można powiedzieć dlaczego liczba...
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...
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...
Jeżeli podłączasz czujniki bezpośrednio do procka, to błąd - zastosuj jakiś bufor - na moje oko to zakłócenia, spróbuj popstrykać lutownicą, czy przyciskiem od światła. Może być też tak (jak piszesz w asmie), że sobie w przerwaniach ndpisujesz jakiś rejestr lub znacznik - niestety jest to zdradliwe :\
https://obrazki.elektroda.pl/6483751800_... Witam, PROJEKT ostatecznie ukończony :D wersja ostateczna programów dla płytek MASTER Arduino Mega2560 i SLAVE ESP8266-12E Testowałem urządzenie przez kilka dni, w międzyczasie dokonałem kilku przeróbek, jak w kodzie tak i w połączeniach PIN itp. Usunięte zostały wykryte błędy, najważniejsze to...
taktowanie procesora: 16MHz atmega32a main.c: [syntax=c] int main(void) {/* sprawdzamy ile czujników DS18xxx widocznych jest na magistrali */ czujniki_cnt = search_sensors(); /* wysyłamy rozkaz wykonania pomiaru temperatury * do wszystkich czujników na magistrali 1Wire * zakładając, że zasilane są w trybie NORMAL, * gdyby był to tryb Parasite, należałoby...
Widzę, oczami wyobraźni, że masz poważny błąd w 16tej linii kodu...
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 :|
Witajcie, dziś postanowiłem się podzielić dorobkiem w postaci oprogramowania i wiedzy na temat pewnego modułu GPS. Zegar softowy synchronizowany GPS z dodatkowym wyświetlaniem współrzędnych i prędkości no i dorzuciłem w ostatniej chwili temperaturę z DS18B20 - taki szkoleniowy programik w BASCOM (świetny przykład - gotowiec dla tych którzy chcą zrobić...
błąd w procedurze odczytu - jak pisał przedmówca. Próbowałeś mój kod uruchomić?
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]...
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...
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){...
Kolega sprawdza przecież CRC. Być może nie wyrabiasz się czasowo. Kiedy masz otwarte IDE Bascom naciśnij na klawiaturze klawisz F1 i w otwartym pliku pomocy wpisz "Using the 1WIRE protocol". Wyczytasz tam między innymi (ale zachęcam do przeczytania całości) : The BASCOM scanning of the bus is finds about 50 devices / second , and reading a specific...
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...
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.
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! 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...
Witam Serdecznie PanowieTemat mam pewiennieaktualny problem a mianowicie zrobiłem ten sterownik http://mirley.firlej.org/prosty_sterowni... wszystko ładnie się zaprogramowało fuse bity ustawione po załączeniu działają wszystkie funkcje lecz niestety nie pokazuje mi temperatury niby trzeba trzymać przycisk s1 na pierwszy cujnik ds18b20 i go wpisać...
- Wyświetlanie temperatury z 4 czujników: -wody w basenie -powierzchni dachu -zewnętrznej -wewnętrznej w domu Pamiętaj o zabezpieczeniu ESD. Najlepszy jest DS9503. Jak nie chcesz aby awaria jednego czujnika nie zablokowała wszystkich, zrób osobne magistrale. Doskonale do tego nadaje się DS2482-800. Jak nie chcesz się wykosztować, to użyj uC z odpowiednią...
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...
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...
Na pewno popełniłeś błąd w odczycie bitu. Magistrale masz próbkować przed upływem 15us od chwili wymuszenia niskiego poziomu przez master, ty robisz to po upływie ponad 18us. Swoją droga masz jakiegoś pullupa na magistrali? Bo jeśli nie masz i DSa zasilasz z magistrali to musisz dać standardowo 4,7k dla 5V, a jesli zasilasz DSa z osobnego źródła i nie...
Czyli jeśli dobrze zrozumiałem jest to inny rodzaj czujnika który już w sobie ma ACD i ACD w arduino nie ma nic do rzeczy w tym wypadku ? Bo tam autor artykułu zwraca uwagę na zmiany napięcia w przypadku podłączenia Arduino przez kabel USB. Chodzi mi o to, że możemy odczytać 1024 różne wartości co przy zakresie temperatur daje : 55 + 125 = 180 C 180...
Witam dopisałem ale coś nie działa do zmiennej T nie mogę się odnieść ponieważ wyrzuca mi błąd odwołałem się do zmiennej S ale program nie działa poprawnie. Co robię źle ?. [syntax=basic4gl][/syntax] $regfile = "m16adef.dat" $crystal = 8000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Rs = Portc.7 , E = Portc.6 , Db4 = Portc.5 , Db5 = Portc.4 , Db6...
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...
Czas odczytu DS jest określony na 750ms, przecież nie mogę wyłączyć przerwań na taki czas... Chodzi Ci o to, że będę sobie sam sekundę odliczał timer1, a potem zwiększał jakąś zmienną która będzie odp za moje sekundy i tak dalej? Trochę zabawy zwłaszcza że każdy mies ma inna liczbę dni itp. Chyba, że coś nie zrozumiałem do końca. Edit: Sprawdzałem teraz...
Wsadziłem opornik 2.2 k 3.3 k nie pomaga... a mozesz udostępnić kod twojego programu obsługującego termometr ? Może te wartości u mnie nie są takie idealne. Patrzałem w dokumentacji z wykresów ciężko mi się zorientować, z przykładowych funkcji to właśnie są takie same. Dodano po 1 Ok działa... mój głupi błąd w lutowaniu: korzystam z płytki uniwersalnej...
Kolejna sprawa, dokładność pomiarów, oraz poprawność odczytu temperatur (ich umiejscowienie) jest kluczowa. Mamy trzy pomiary które są mało dokładne i to mocno wpływa na wynik. No bo przecież dokładność takiego LM to ok. 0.5K jeszcze dokładność toru analogowego. W przypadku pompy ciepła, delta jest mała, ok 3-5K jak pomylimy się o 0.5 stopnia (a mamy...
Witam! Wiem że problem był wałkowany setki razy,ale jakoś nie mogę sobie z nim poradzić. Posiadam zestaw uruchomieniowy zvl11 na którym to prowadzę kurs oślej łączki. Wrzuciłem wsad podany niżej do uP i odczyt z ds18b20 jaki otrzymuje to "Temp= -0.0625oC" i pod wpływem ogrzewania nic się nie zminia. W zwiazku z tym mam kilka pytań. Mianowicie czy w...
Logan Ale warunki działają tylko w tej 1 wersji programu. Teraz z Select Case nie działają warunki. Już nawet sam nie wiem czy komunikacja jest poprawna. Program do DS18B20 był setki razy stosowany przeze mnie i temperaturę pokazywał dokładnie np. 25,5*. Ok działa :) błąd był w tych liniach: Pomiar: 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy...
W programie do pobrania z powyższego linka kolegi elektronik999 u mnie występuje błąd polegający na złym wyświetlaniu temperatury. Jeśli układ na ds18b20 pokazuje 85 stopni należy zmienić w programie w module FrmMain wartość Bus.ConvertDelay z 400 na 750. Wartość ta jest w dwóch miejscach do zmiany. I jeszcze jedna uwaga dla chcących korzystać z przejściówki...
spróbowałem zmienić procesor na Atmega32 i błąd ciągle ten sam. Kod w którym się pojawia to: $regfile = "m16def.dat" $crystal = 16000000 $hwstack = 32 ' default use 32 for the hardware stack $swstack = 10 'default use 10 for the SW stack $framesize = 40 'default use 40 for the frame space ' use the alternative library 'Podłączenie pinów LCD...
Przygotowałem specjalnie do testu [syntax=vbnet] $regfile = "m1284pdef.dat" $crystal = 8000000 $hwstack = 128 ' rozmiar stosu sprzętowego $swstack = 128 ' rozmiar stosu programowego $framesize = 128 $baud = 9600 '************ Config Timer0 = Timer , Prescale = 1024 ' 1 sekunda = 50 On Timer0 Czas0 Timer0 = 98 Enable Timer0 Enable Interrupts '*********************...
Witam panowie od razu podkreślę że jeszcze uczę się bascoma więc proszę nie krzyczeć i nie usuwać tego postu do kosza Siedzę już nad tym 3 dzień i efekt mojej pracy nie najgorszy ale mam parę pytań po pewnych rzeczy nie rozumiem i nie mogę rozwiązać. Więc tak założeniem był pomiar temperatury przez ds18b20 wyświetlenie je na LCD i 4 wyświetlaczach 7...
Dzięki za pomoc! Okazało się że jednak procek ze sklepu był uwalony :) Nowy procek działa bez żadnych problemów :) Teraz mam inny problem: Do tego procka mam dołączone 3 układy ds18b20 i nie wiem dlaczego co jakiś czas jedna z temperatur wynosi 16 stopni. Dzieje się to nieregularnie i wystepuje raz na jednej czujce raz na drugiej :( Prosze o pomoc ten...
Sprawa wygląda tak - działa - błąd pomiaru względem (bazarowego) termometra cyfr wynosi ok 0,3*C -0,5*C wiec jest dobrze : ) Dzięki za pomoc i wsparcie: Teraz dla wszystkich napisze co było źle: -nasze funkcje różnią się nieznacznie i mój kod był względnie dobry ale funkcja odczytu temperatury (u mnie main) była błędna: float temp = 0; sprawdz = RESET_PULSE();...
Myślę że to wina Twojego kompilatora. Poprawiłem kod powyżej sprawdź teraz, lub drugi wariant poniżej masz tu hex wgraj go bo to może kompilatror Twój coś szwankuje, 11.8.3 to stara wersja i miała troche błędów, jeśli ten hex będzie działał poprawnie to znaczy że błąd też leży po stronie kompilatora. [syntax=basic4gl]$regfile = "m8def.DAT" 'deklaracja...
Witam. Zrobiłem już część programu: $regfile = "2313def.dat" $crystal = 12000000 '-- konfiguracja zmiennch: 'potrebne do odczytu 1wire itd. Dim Liczba As Byte Dim Jednosci As Byte Dim Dziesiatki As Byte Dim Czdziesietne As Byte '--deklaracja podprogramow: Declare Sub 1 Declare Sub 2 Declare Sub 3 Declare Sub 4 Declare Sub 5 Declare...
Rezystory są już dane na płytce, zresztą zegar na PCF działa bez zarzutu ( no może trochę śpieszy, ale to kwestia kondensatora przy kwarcu ) sprawdziłem połączenia - nóżki 5 czyli SDA ( 24C02 i PCF8583 ) są podłączone do 23 nogi uC, czyli PC1-SDA. Podobnie z SCL. Teraz zrobiłem tak, że odczyt jest po włączeniu/resecie ( przed pętlą główna ), a zapis...
-> 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();...
Oto kod całego programu , wyświetla wszystkie linie ,jednak w momencie gdy zaczyna odczytywać temperature- ekran zaczyna mrygać, wygasza co ok 1s na 1s, potem kilka razu krócej aż przez całą sekundę jest obraz i tak od nowa .Po paru minutach chyba łapie błąd bo wyświetlacz zaczyna wyświetlać znaki graficzne jakie ma w pamięci. 'Zegar DCF77 $regfile...
OK. Poradziłem sobie z czasami. Narazie robię dla 1MHz. Jeżeli chodzi o kwarc 16MHz to myślałem żeby zrobić coś podobnego jak delay_loop_2(). Dzięki za wskazanie bo bym sam się męczył a tu obok nie zauważyłem gotowa funkcja:D Teraz brnę z moim termometrem dalej i znowu nie wiem co nie gra:cry: Oto kod: unsigned char ow_reset(void) // reset lini...
Tam jest użyte słowo "może" co znaczy że błąd może wystąpić ale nie musi. Ja u siebie nie dostrzegam błędów, porównywane z kilkoma termometrami rtęciowymi. Dodaje fotki i wsad nowej wersji termometru oraz schemat i wzór PCB. Dodałem obsługę 2 przycisków (wyświetlanie temp. maksymalnej i minimalnej, oraz resetowanie tych wartości). Płytka PCB powstała...
Siemka! - I tu być może wychodzą małe różnice pomiędzy Bascom 51 a Bascom AVR :) Ja się bawię AVR-kami i w moim przypadku komenda "Waitms 750" śmiga bez zarzutów, być może w Bascom 51 jest to inaczej rozwiązane. - Jeżeli chodzi o te rozdzielczości, to czujniki DS... w trakcie przetwarzania pobierają większą ilość energii i muszą być wtedy zasilane porządniej,...
No ale przecież pokazałeś kod w którym masz wszystko zrobione w pętli głównej while(1); a nie jak wcześniej pisałeś w przerwaniach ;) więc o co tutaj chodzi ? Jest to napisane jak najbardziej prawidłowo a w świetle tego co pisałeś na samym początku miało być ponoć wszystko prawie poprzenoszone do obsługi przerwań. Tak coś mi się zaczyna wydawać, że...
Po przeczytaniu wielu postów napisałem program który ma wyświetlać na wyświetlaczu LCD Napięcie , prąd oraz temp. Chciałem to wykorzystać do zasilacza, którego właśnie buduje. jednak po zaprogramowaniu procka wyświetlacz mi się nie inicjuje (zaświecają się kwadraty w pierwszej lini). Czy jest jakiś błąd w moim programie ? Proszę o sprawdzenie. $regfile...
Próbowałem z tą komendą.Niestety mam błąd "no more space for bit" "invalid data type".A jeżeli daję samo cls, to wtedy nie mam abo jednego napisu ,ani drugiego. Wstawiam cały kod: [syntax=basic4gl] $regfile = "m32def.dat" $crystal = 16000000 $hwstack = 32 $swstack = 50 $framesize = 40 Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1...
Witam ponownie posklejałem taki kod ale cały czas wyświetla temperaturę 0°C. Mógłby ktoś mi pomóc napisać lub naprowadzić na błąd który popełniam od razu mówię że nie miałem nigdy nic wspólnego z mikrokontrolerami. [syntax=basic4gl]$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy...
Witam dokonałem kolejnych postępów w pisaniu programu. Aktualnie wykrywam już presence pulse termometru i teoretycznie dokonuje już pomiarów temperatury. Niestety zczytują mi się same '0' co nie jest zgodne z rzeczywistością. Podejrzewam że pomyliłem się gdzieś w czasach. Wszystkie czasy przemnożone są przez 50 gdyż ostatecnie użycam clk = 50 Mhz. ----------------------------------------...
Witam. Napisałem program do obsługi woltomierza i pomiaru napięcia na atmega8. Cały układ będzie zamontowany w samochodzie. Po zaprogramowaniu wszystko prawie działa tylko przy samym włączaniu na wyświetlaczu pojawia się że temperatura wynosi 85 stopni a dopiero po ok 4s (drugim odczycie temperatury) podaje właściwą temperaturę. Później wszystko działa...
Witam Chcąc zbudować termometr wraz z alarmem, natknąłem się na forum Elektroda o temat "Termometr wraz z alarmem do CO - http://www.elektroda.pl/rtvforum/topic18... Termometr opiera się na projekcie użytkownika DUCH__. W kodzie widnieje błąd program ten ma wadę, że czujniki dobiera sobie losowo (czyli piec nie zawsze będzie piecem). Czy jest...
Podpięte w trybie normal czy parasite? Pokaż kod. Timingi ok?
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
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...
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ę...
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
powinno, w dodatku proponuje wydłużyć czas pomiedzy odczytami. A jeśli odczytujesz dane z dallasa to port ustawiasz na 1?
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...
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...
Podejrzewam, ze jest jakis bład w algorytmie interpretacji odczytanych ajtów z termometru. Z ciekawosci wlazlem na http://pdfserv.maxim-ic.com/en/ds/DS18B2... i jest tam tabelka przykładowych wskazań dla wybranych temperatur. Nie znając programu niemożliwe jest powiedzenie czegos wiecej. pozdrawiam
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,...
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?
(...) 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...
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...
A nie pomyślałeś, że można znależć przyczynę błędów i ją wyeliminować ?
Z drugiej strony, chyba nie ma sprawdzania na stronie pinów, czy kanały są używane więcej niż raz? nope Dodano po 10 . https://obrazki.elektroda.pl/9556512700_... https://obrazki.elektroda.pl/2654776200_... https://obrazki.elektroda.pl/6765104000_... Debug:SENSOR:D S1820 - .... Znaleziono pin 19! dsread=0...
Ta linia powinna być w przerwaniu Wtedy będzie miał błędy odczytu termometru gdy DS18B20_STOPINTERRUPTONREAD != 1 a gdy DS18B20_STOPINTERRUPTONREAD == 1 to multipleksowanie będzie działać źle. Ten kod jest słaby. Z najważniejszych błędów to, nie sprawdza crc, zawiesza na długo przerwania a wystarczy na czas transmisji bitu gdy wystawiane jest 0 na...
Ok, znalazłem wśród zapasów takie DS-y przy których błąd pomiaru jest skorelowany.
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.
Oki poszło wielkie dzięki banalny błąd a tyle nerwów Przepraszam admina więcej błędów nie będzie :)
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.
Wygląda na błąd w programie, bo z DS18B20 nie może wyjść 6548.
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.
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...
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 wszystkich, próbuję skonfigurować czujnik temperatury DS18B20 z OpenBeken na chipie BK7231N, ale niestety nie jestem w stanie wyświetlić żadnych odczytów temperatury. Skonfigurowałem już GPIO 26 jako DS1820_IO i upewniłem się, że uruchomiłem sterownik DS18B20. Jednak interfejs sieciowy wciąż pokazuje "0 aktywnych sterowników" i nie są dostępne...
A skompilowało się? Bo tam był błąd (Icnr zamiast Incr).
Dim Sc(9) As Byte 'w tej tablicy beda dane odczytane z czujnika Dim Temperatura As Integer 'tu obliczona temperatura Dim Blad_crc As Bit 'a ten bit bedzie ustawiany w razie bledu CRC odczytu '... program ... 1wreset 1wwrite &HCC 1wwrite &HBE Sc(1) = 1wread(9) 'odczytujemy wszystkie bajty z czujnika If Sc(9) = Crc8(sc(1)...
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...
Przepraszam, mój błąd. Wcześniej miałem czujnik pod PC2, teraz pod PB0 i ten sam problem.
Pewnie że za często odczytuję bez CRC kilkanaście czujników i nie ma błędów na skrętce oddalonej o Atmegi 17 metrów.
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
scania listwa paliwowy przesłuch kanał słabe ciśnienie karcher
czujnik zbliżeniowy czujnik zbliżeniowy
Wpadający pedał hamulca w Iveco Daily 3.0 2010 Formatowanie karty SD: FAT32, exFAT, SD Memory Card Formatter, hierarchiczny system plików