Mógłbym dać rybę ale dzięki wędce, dam Ci coś więcej. Zaglądnij do noty katalogowej, jest tam wartość dla ujemnej temp.: -10.125 1111 1111 0101 1110 FF5Eh Dodaj za hardcodowaną linię z temp. z dokumentacji, [syntax=c] temperatura = sensors.getTempCByIndex(0);//*100; temperatura = 0xFF5E; //<------ -10.125 Serial.println(temperatura); [/syntax] a...
unsigned int, long itp - musisz poczytać o typach zmiennych stosowanych w Arduino ( i nie tylko ) . To dość istotny ale prostu temat. Jeśli chodzi o maktro F_ to tak, nic nie wnosi do działania programu ale zapisuje stałe tekstowe w pamięci programu zamiast w pamięci RAM . To taki dobry nawyk na przyszłość :)
Chwilowo straciłem ten kod postaram się go znaleźć ale opierałem się na projektach z internetu. No bez jaj. Na 99% nic nie masz tylko czekasz na gotowca. Ale dobra, zlituję się na święta :D Pomijając całą beznadziejność kodu do multipleksowania wyświetlacza, takie coś powinno działać: $regfile = "ATTiny2313.dat" $crystal = 8000000 Dim Jednosci...
napisze to troche asemblerowym ( nie wiem czy dobrze napisalem) jezykiem: a wiec np: dla temperatury -25 stopni ( cos tam po przecinku ) odczytujesz taka wartość: 1111 1110 0110 1111 - ostnie 4 bity to wartość po przecinku nie bierzemy jej po uwage zostaje 1111 1110 0110 teraz zaneguj wszystkie bity; powstanie ci taki potwór 0000 0001 1001 a to jest...
Próbujesz szukać w tablicy pozycji ujemnych, tymczasem pozycje w tablicy zaczynają się od 0 do 65535. Nie rozumie takiego szukania temperatur w tablicy, ale jeśli już tak to próbujesz podmieniać, to gdy zmienna tempd2 jest mniejsza od zera to musisz ja zamienić na zmienną dodatnią aby odczytywać za pomocą instrukcji Lookup()
co prawda w C, ale zasada ta sama: http://mikrokontrolery.blogspot.com/2011...
Coś chyba źle robie... Tak , nie myślisz ;) Na 100% , argumentem dla lcd_puts jest wskaźnik na (tablicę)char , a i ostatni argument w dtostrf , to też ten sam typ ;) Piotrek
Z DS18B20 otrzymujesz temperaturę w postaci zmiennej typu int16_t, którą możesz łatwo porównać z dowolną inną zmienną tego samego typu. Tak dokładeni, to to, co dostajesz jest temperaturą w stopniach Celsjusza mnożoną przez 16. Możesz więc napisać np. if (t > -4 * 16 && t < 25 *16) i sprawdzisz w ten sposób czy temperatura leży pomiędzy...
jestem ciekaw jak tam u ciebie z odczytem ujemnych temperatur, bo wg mnie to będą źle czytane. no chyba że nie potrzebujesz ujemnych
Tak jest. Mam DS1820 (DS18S20) - tutaj temperatura jest stała ale o 60 stopni za nisko a po podpięciu DS18B20 temperatura jest ujemna i cały czas spada. A jaki rezystor został użyty?
ee no musiało pomóc, sprawdzałem u siebie i kod się zmniejszał o kilka kB pokaż jakim poleceniem ze wszystkimi flagami jakie używasz kompilujesz kod dla tych zmiennych równych 134 i 1: LS Byte: 10000110 MS Byte: 00000001 w MS Byte pięć najważniejszych bitów wskazuje na znak - zera to dodatnia, a jedynki to ujemna trzy najmłodsze bity z MS Byte i cztery...
Czy Ty nie widzisz , że ten kod to stek bzdur :?: :| Popatrz:[url=http://www.elektroda.pl/rtv... Piotrek
Dziękuję, jednak z racji okrojonej pamięci chciałbym użyć bibliotek p. Łukasza, bo jeszcze udaje mi się tam upchnąć inne składniki softu, obsługa piękna i prosta, a tu na forum temat poruszany często dla innych procków i w dość rozbudowany sposób. Póki co nie znalazłem nic mega uproszczonego :( może jeszcze na odpowiedni temat nie trafiłem (https://www.elektroda.pl/rtvforum/topic...
Hej, czy możesz nam pomóc i zawęzić, która wersja łamie DS18B20 dla Ciebie?
Jak projekt radzi sobie z temperaturami ujemnymi?
Kolejna sprawa to nie zdziw się jak będą wyświetlać się bzdury przy ujemnej temperaturze.
Raczej schemat zgodny jest z programem. Jedynie z Portd.6 nie do końca wiadomo co zrobić. Prawdopodobnie trzeba do niego przyłączyć diodę świecącą wskazującą na wartość ujemną, a diody na schemacie nie ma, podobnie jak DS18B20.
..a tak , sorki, chcialem sie ogolnie dowiedziec czy w ogole ta biblioteka obsluguje ujemne temp.. ale oto moj kawalek kodu ..... sprintf(datatemp,"t%u=%+.1f\xdfC",0,ds18... lcd_gotoxy(0,0); lcd_puts(datatemp); .... datatemp jest tupy char, temperatura z ds jest typu flolat... taki kod tez nic nie daje.... w1_init();...
dobra.. mała pomyłka wcale nie musi być zaden float. Czujnik wysyła dane trochę inaczej. Polecam ten topic on dosyć duzo wnosi do tematu mimo że zawarta tam wiedza dotyczy obsługi tego czujnika w c. [url=http://www.elektroda.pl/rtvforum/to... GCC] DS18B20 i temperatury ujemne.
Witam wszystkich! Bawię się czujnikiem temperatury DS18B20 i po odczytaniu wartości temperatury stwierdziłem, że jest ona 3 st. ... A co Ty za "algebrę" spłodziłeś ;) , a na dokładkę jeszcze Fusing :?:. Chcesz strzelać z armaty do wróbla :?: Takie "cuś" , robi sie niezwykle prosto: '*********** DS18B20 12 bit *********************** Dim Tds As Integer,Sds...
Akurat też buduje termometr na ds18b20 tylko że w Bascomie, ja też miałem problem z ujemną temperatura. Co do ujemnej temperatury trzeba do obliczeń zamienić ujemną liczbę na dodatnią bo ds podaje np . dla 0 stopni zwraca wartość 0 co mnoży się dalej * 0,0625 daje 0 ale dalej dla ujemnych daje wartość -1 , -2 , -3 itd. Trzeba otrzymany wynik zamienić...
Sprawdzenie czy temperatura jest dodatnia czy ujemna, tylko w wypadku tej drugiej przed wyjściem z if'a trzebaby umieścic procedurkę wyświetlającą/zapamiętującą ten znak. Grzesiek.
Jak wiadomo wzorem na temperaturę Farenheita jest TF=32+(5/9)*TC Akurat jest odwrotnie: T(F) = 32 + 1.8 * T(C) gdzie: współczynnik 1.8 to = (9/5) Należy pamiętać że ZERO(F) nie pokrywa się z Zero(C) ; i ta prosta formuła (a raczej zależność) musi byc odpowiednio zmodyfikowama dla wyznaczania temperatur ujemnych. e marcus
1. czy jesteś pewien, że bateria ta będzie dobrze pracować w takich temperaturach ujemnych, jakie zakładasz? 2. Czy jesteś świadomy strat jakie będziesz miał na tak skonstruowanym zasilaniu? Zastosuj DS18B20 i problem z głowy, a przy okazji zmienisz uC na mniejszy i tańszy.
tak, uwzględniłem powyższe, jak narazie odczytuje poprawnie, jeszcze ujemne temperatury muszę sprawdzić.
Dobrym pomysłem byłoby dodanie informacji, czy temperatura jest dodatnia, czy ujemna.
Zacząłbym od tego: Otrzymujesz wartość zmiennej temperatura równą np. 1871819,25. Jak przemnożysz to przez 16 to okaże się, że wyrażenie (temp1 + (temp2*256)) zwraca wartość 29 949 108. Teoretycznie zmienne temp1 i temp2 nie powinny przyjmować wartości większych od 255, więc wartość maksymalna wyrażenia (temp1 + (temp2*256)) = (255 + (255*256)) = 65535....
Bardzo fajny opis :) tylko czy bedzie dzialal na DS1820? Bo widze z ty opisujesz DS18B20... Pozdrawiam
Kurde uprzedziłeś mnie :D Wiedziałem że to ten minus robi problemy, bo przeciez dla dodatnich było dobrze tylkoże nie zauważyłem tego wcześniej bo nigdy nie mierzyłem ujemnych :) Pozdroofka Piotrek
Kombinujecie jak koń pod górkę. Nie trzeba robić żadnej "obsługi" temperatur ujemnych. Wystarczy jedno: Ss = Format(ss , " 0.0") i to od razu zapewni poprawne wyświetlanie temperatur dodatnich i ujemnych.
Jaca Dziękuje pięknie teraz wszystko działa jak należy. Zaraz wystawie czujnik za okno i zobaczę co się stanie przy ujemnych temperaturach. Pozdrawiam
Dzielenie przez 16 to to samo co przesuwanie bajtu w prawo o 4. Czyli jest to wywalenie jakby 4 najmłodszych bitów, czyli odczyt temp będzie z dokładnością do 0,5 stopnia. Zajrzyj do notki. 5 najstarszych bitów to znak czy dodatnia czy ujemna, a 4 najmłodsze oznaczają miejsca po przecinku. Rozumiem ze zmiana z systemu binarnego na dziesiętny jest znana?...
Trzymaj. Soft do 18b20 z obsluga lcd 2*20 na hd44780. temp ujemne, dodatnie, wyswietla z rozdzielczoscia do 1 miejsca po przecinku. pozdr ------------ dopisalem: to oczywiste za jak piszesz posta to masz problem, wiec po co to podkreslac w temacie ;) pozdrawiam.
wiem wiem, że tak to się robi mam to napisane w programie dokładniej ten fragment jest za to odpowiedzialny: ................. Tyle, że czujnik ds18b20 nie podaje temperatury tak po prostu do procesora np.: 20 stopni Celsjusza tylko trzeba to troszkę przekonwertować za co odpowiedzialna jest ta część programu: fajnie miło i przyjemnie jeśli temperatury...
SysTick niespecjalnie się nadaje, bo nie steruje bezpośrednio pinem IO. Jeśli to musi byc timer, to wykorzystaj fakt, że może on sterować bezpośrednio stanem pinu i generować impulsy ujemne o określonym czasie.
czyli dla dodatnich się mogą sumować ale dla ujemnych już nie ? tak ?
Tu masz sprawdzoną procedurę odczytu temperatury... No nie całkiem sprawdzoną :( Przy temperaturach ujemnych , zawyża wynik o 1 stopień :( Dla B1=&H90 i B2=&HFC wyświetla -54 a powinien -55.Skoryguj obliczenia dla ujemnych :) Piotrek
Warto dodać, bo nikt nie wyjaśnił jeszcze, że wiatrak powoduje tylko i wyłącznie wymuszenie ruchu powietrza, czyli jak powietrze ma 23 stopnie, to na wylocie wiatraka jest przyspieszone powietrze o temp. 23 stopnie. Wiatrak schładza procesor czy człowieka w upale tylko dlatego, że człowiek czy procesor aktywnie generują ciepło na swojej powierzchni....
A nie byłoby lepiej zastosować układu termometru, który komunikowałby się jakimś cyfrowym protokołem. Na myśli mam tutaj 1Wire i układ DS18B20.
Skąd te 0.03V? AVR ma ADC 10 bit i to się tylko zgadza. 10 bit to 1024 ... Gdyby nawet przyjąć scenariusz, że odrzucasz ostatni bit to będzie 512. Gdyby wziąć najgorsze z punktów odniesienia czyli zasilanie 5V AVCC to -> 5V/512=0,009765625V (~10mV=1st. C) Gdyby tak wrzucić na sygnał wyjściowy dzielnik rezystorowy i użyć wbudowanego napięcia odniesienia...
Gdyby nie ujemne temperatury to zaproponowałbym Ci użycie dwóch DS18b20 do pomiaru wilgotności. Jednak ten sposób działa do temperatury zamarzania wody destylowanej. Jednak jest dokładny w szerokim zakresie od 0 do 100%.
Ja zrobiłbym to na mosfecie typu P i włączał dodatni biegun zasilania, a nie ujemny.
(zakładam, że używasz jakiegoś AVRa z przetwornikiem AC) Chyba nie doczytałeś że kolega chce użyć z 8051. Więc bez przetwornika A/C się nie obejdzie jeżeli to koniecznie ma być LM35. Podobno DS'y nie są zbyt stabilne chociaż ja tego nie zauważyłem, więc je polecam o ile możesz je użyć. DS18B20 jest dobry gdyż wyliczanie ujemnych temperatur jest proste.
Czy przypadkiem zmienna I nie zwraca ci temperatury ujemnej gdy ona występuje? Znak jest zawarty w drugim bajcie => patrz datasheet.
Udało mi się znaleźć bardzo ciekawy [url=http://www.atmel.com/dyn/resources/... Atmela. Przeczytaj go dokładnie i wykonaj wszystko tak jak tam opisano. Myślę, że pomiędzy podanym w tym dokumencie buforze (strona 3), a zaemulowanym RS232 nie koniecznie musi być konwerter poziomów - MAX232. Pokazany tam bufor wzbogaciłbym o...
Wader, w większości programów które znalazłem, nawet to czekanie waitms 750 było na końcu tak jak miałem wcześniej. Może i coś jest nie tak z tym kodem, ale nie będę się zastanawiał co, skoro działa bez żadnego przesuwania bajtów, itp. Nawet nie robię żadnej specjalnej obsługi wyświetlania temperatur ujemnych, a jakoś je wyświetla :)
wartości mają być też ujemne... dodaj to do programu i jakiego typo ma być wtedy zmienna?
sprubuj zmienić int na byte (chyba ujemnych temperatur nie będziesz mierzył).
Witajcie, jak przekonwertować poprawnie wartość z czujnika temperatury ds18b20 w postaci dwóch liczb typu uint8_t, które odpowiadają części całkowitej i ułamkowej, do postaci jednej zmiennej typu int16_t? zakres liczby ułamkowej to 0-9, zakres liczby całkowitej jest 8-bitowy. Wartości ujemnych nie ma.
Tak teraz napisy nie mrugają, ale odczyt temperatury jest błędny od ujemnej do 256. Dziękuję za pomoc, spróbuję sam powalczyć. pomógł.
Termometr nie ma ujemnych temperatur ponieważ: - To jest termometr pokojowy, i raczej jest małe prawdopodobieństwo że w domu będzie mróz. Ostatnio siadło CO, ale miałem w pokoju 10°C :D -Nie wiem jak zrobić obsługę ujemnych temperatur. :|
No niezupełnie, dla ujemnych temperatur to nie zadziała, a dla dodatnich dość pokręcone. [syntax=c]int16_t temp = data[1] << 8 | data[0]; if (temp < 0) { znak = '-'; temp = -temp; } else znak = '+'; ulamek = (temp & 0xf) * 5 / 8; temp >>= 4;[/syntax]
Witam!!! Kolega nie doczytał poprzedniego postu lub go nie zrozumiał - DS18S20 ma 9-cio bitowe przetwarzanie temperatury i tylko ostatni bit jest w ujemnej potędze, więc po przecinku możesz mieć 0 lub 5 i więcej z niego nie wyciśniesz. DS18B20 ma przetwarzanie 12 bitowe (zakres temperatur taki sam co ds18s20), ale ma aż cztery bity w ujemnej potędze...
potrzebuje mierzyc temp w zasilaczu ATX chce tak zrobic by uzyskac mierzalne napiecie (dajace sie przeliczyc) ale ujemne!! Bo linie do mierzenia -5V z zasilacza mam pusta. Czujnik na plycie zmierzy to napiecie (myslac ze to minu 5V z zasilacza) ale ja sobie to przelicze na temperature.......... jasne? Dodano po 13 nie myslcie za duzo, jeszcze raz w...
Tak oczywiscie ze wiem. Program który zamiescilem w tym poście ma obslugiwac DS18B20 i mi nie działa. Ciagle pokazuje 127*C Zupelnie inny program (inna procedura obliczania temp.) napisany przy tych samych bibliotekach i na tym samym HW dla DS1820, dziala poprawnie. Podlaczenie jest typu parasite poprzez 4k7 do +5V. Dodano po 1 Zmieniłem rezystor pull-up...
http://www.elektroda.pl/rtvforum/viewtop... Tutaj masz wszystko działające. Temperaturę pokazuje mi dobrze zarówno na ujemnych i dodatnich. Wszystko napisane tak jak w data sheet kazali.
Wersja z gotowym kodem nie działa poprawnie, cały czas na wyświetlaczu pokazuje mi 85st, natomiast pierwsza opcja jest już lepsza i widać poprawę, mianowicie przy schodzeniu poniżej 0st, LCD wyświetla nr seryjny DS-ów, ale tylko raz i to na ok jedną sekundę po czym wyświetla temperatury ujemne. Co jeszcze może być przyczyną nieprawidłowej pracy?
Zrobiłem tak jak Grzesiek proponował. Efekt jest taki, że funkcja zwraca wyłącznie wartości dodatnie, więc nie ma problemu z błędnym działaniem. Jednak dalej nie wiem czemu wartości ujemne zaburzają pracę programu. Podejrzewam, że to raczej optymalizacja robi taki cyrk...
Możesz pokazać przykład jak wykorzystując multiplexowanie zrobić taki termometr, oczywiscoie musi wzkazywać ujemne temperatury. No i oczywiscie musi sie zmiescić do proca. W c++ na pewno taki ter,mometr jest możliwy, ale mnie chodzi o bascoma.
Witam! Najogólniej mówiąc musisz te 4 bity podzielić przez 16, natomiast jeśli masz ujemną temperaturę to robisz to samo a następnie otrzymany wynik odejmujesz od 1.
Wewnątrz firmy to możesz sobie testy zrobić do rozbicia o kant ... Nic nie warte. Chyba, że macie komorę, to zwracam szacun. Mamy komorę. leonow32 W pełni się zgadzam. Zamieszczam wyjaśnienie odnośnie obsługi czujników 1wire DS18B20, ktoś mnie o to zapytał na PW. jest wersja z 1-wire. Zamiast wejścia 8 podpina się czujniki. DS18B20 jest obsługiwany...
http://obrazki.elektroda.net/22_12752238... Witam. Dzisiaj chciałbym zaprezentować mój projekt zegara VFD na lampie IW-18. Jest to kontynuacja wątku kolegi Pier -> http://obrazki.elektroda.net/95_12752233... Wszystko tak szybko się odbywa że wyświetlacz w ogóle nie miga :D Program został napisany w BASCOMie - zajmuje ~64% pamięci Flash....
A czy na małe zmiany temperatury reaguje (gdy chwycisz w palce?) Zawsze możesz spróbować zamienić funkcję konwersji "Read_Temp" z Twojego programu. Pozostawiając reszte bez zmian. U mnie działała (bez temperatur ujemnych). ...dobrze obsługujesz wyświetlanie floata?
Dobra, dam 15:) Jak chcesz zwiększyć sprawność wymiany wężownicy zwiń ją w kształcie piramidki. postaram się nie zadawać głupich pytań :). Nie ma głupich pytań są tylko głupie odpowiedzi. ?na glikolu w zimie przy mrozach powyzej -10*C czujniki pracują . a gdy woda w zimie z kolektorów jest spuszczona to jak się zachowa czujnik? Termo. Ty taki stary...
Mam okazję przetestować powyższy kod programu i w aktualnej formie nie współpracuje z DS18B20. Po dokonaniu modyfikacji w jednym miejscu zaczął poprawnie pokazywać temperaturę i zmiana typu zadeklarowanej zmiennej Tmierzona z Byte na Word [syntax=basic4gl] Tmierzona = 1wread(2) 'Odczytujemy tylko jeden bajt -> wartość temperatury Shift Tmierzona , Right...
Witam Wiem że takich tematów jest sporo ale mój problem jest trochę inny. Mam problem z DS18B20 nie wiem jak odczytać z niego dane. Umiem odczytać temperaturę z DS1820 ale z wersji B nie umiem. W wersji DS1820 jest tablica dwóch zmiennych typu byte i w tej drugiej zmiennej jak jest ujemna temperatura jest 255, a wersja DS18B20 drugą zmienną(tak jak...
Witam Odkurze ten temat, bo mam w związku z nim jedno pytanie dotyczące kodu, który podał hunterhouse ... Da się jakoś ten wynik co wychodzi zaokrąglić/przekonwertować do jednego/dwóch miejsc po przecinku :?: Za podpowiedzi z góry dziękuje :D P.S. Ten programik pokazuje ujemne temperatury, czy trzeba go dopiero jakoś zmodyfikować :?:
Witam, Kleję sobie w domu taką małą automatykę z wykorzystaniem raspberry pi oraz logo8. Z uwagi na brak możliwości podłączenia zwykłych ds18b20 do logo postanowiłem ze starej malinki zrobić bramkę. Odczytuje tam temperaturę z czujników i po modbus tcp przesyłam do Logo. Problem mam z przesłaniem ujemnej temperatury ponieważ mogę w rejestrach logo zapisać...
ok spokojnie mogę ci podrzucić te procedury na których teraz to robię. Niestety jest tam troszkę skopany odczyt temp ujemnej ale to łatwo będzie poprawić. A jest to skopane bo poprawiałem te procedury, które były przygotowane dla wersji DS18S20 a nie DS18B20. Jeśli będziesz je chciał to daj znać
Witam. Zauważyłem niepokojące zachowanie czujników DS18B20 przy pomiarze temperatur bliskich zeru i ujemnych. Moje spostrzeżenie jest następujące: przy pracy czujnika jego temperatura nieznacznie wzrasta i to nawet ponad 1'C ! Zbudowałem termostat. Po wejściu do menu nastaw czujniki nie są odczytywane i w tym czasie (tak mi się wydaje) ich temperatura...
Witam Chciałbym przy użyciu dwóch przycisków ( nawet jednego, bo pewnie tak się da ) zmieniać czujnik DS18B20, a właściwie wskazania które pokazuje. Mam dwa układy DS18B20 i przy założeniu ( teoretycznym ), że mam mało miejsca na wyświetlanie, więc dobrze by było mieć możliwość zmiany ( na przemian jednym przyciskiem lub dwoma - pierwszy-drugi ). Samo...
Ile wyświetlaczy ilu firm firm testowałeś? Trzy różne wyświetlacze, wszystkie firmy "Made in China". Kupowane w Artroniku, jeden z nich chyba gdzieś indziej. Poglądowo jeszcze wyświetlacz na 3,3V - ten ma przetwornicę napięcia ujemnego - układ na scalaku nazwanym U3 w prawej części płytki. http://obrazki.elektroda.pl/6988304300_1...
Myślę kupić LM35CZ i mierzyć (ortograf) temperaturę na mrozie czyli poniżej zera tylko nie wiem jak odczytać ujemną temperaturę ADC ATmegi8. Tutaj będzie Ci potrzebne ujemne napięcie, skomplikuje trochę układ. Może łatwiej będzie zastosować cyfrowy czujnik DS18B20. Dane wysyłane w 2 bajtach, a cena podobna do LM35. ATmega8 jest ustawiona na 8MHz ponieważ...
Widzicie. Ja walczyłem z timerami, przerwaniami,DS'ami i wyświetlaczami, chyba wewszelkich możliwych kombinacjach. I stwierdzam, że bardzo trudno jest w Bascomie ustalić wybraną częstotliwość przemiatania z jednoczesnym odczytem czujnika. Nawet jeśli pozornie wszystko działa to przy ujemnych temperaturach czas konwersji jest na tyle długi, że nie da...
DS18B20 i magistrala 1-Wire. Najprościej. Do tego kawałek kodu w Bascomie i zadziała. Dlaczego koniecznie musisz to zrobić na 8051, przecież to już staroć Jak nie masz nic do powiedzenia to się nie odzywaj. Czasami ktoś musi coś zrobić bo mu to jest potrzebne, a nie dlatego, że w EP napisali, że to proste z kawałkiem kodu w BASCOMie. Co do '51 i starocia...
Witam Próbuje przerobić kod obsługujący kilka DS18B20 na jednej linii i drugi obsługujący kilka DS18B20 na kilku liniach. Niestety jak na razie efekt jest taki, że działa tylko pierwsza linia, czyli dwa DS18B20. Jeśli chodzi o konfiguracje, to celowo nie ma Config 1wire = Porta.1 gdyż wpisanie tego portu, jako 1WIRE powoduje wyświetlanie 0.0 dla pierwszego...
Jeśli taktujesz MCU zegarem 1 MHz (tak wychodzi z preskalera) to okres zegara wynosi 1us, tyle ile mniej więcej trwa impuls ujemny OW. Przy tak niskim taktownaiu można to zrobić, ale lepiej podnieść je do 4-8 MHz, co da więcej czasu. Tak jak pisałem, umieść w sekcji atomowej samo generowanie impulsu ujemnego, a delaye oprzyj o timer i będzie ok. BTW,...
Układ na LM35 był początkowo brany pod uwagę ale odpada. Tanie LM35DZ nie mają pomiaru temperatur ujemnych. Trzeba zastosować LM35CZ który kosztuje ponad 20 zł, DS18B20 7.50zł a więc jest różnica. Mam tylko przygotować schemat i podłączenie, program będzie pisać ktoś inny. Nie wiem czy dobrze myślę ale całość będzie zrobiona na ATinny2313 a tam podłączenie...
Projekt wygląda ładnie. Dwie uwagi: PCB a nie PBC (Printed Circuit Board). Co do diody sygnalizującej temperaturę ujemną, sam stosuję takie rozwiązanie, ale dioda powinna być prostokątna np 2x5mm, wtedy bardziej przypomina minus niż okrągła.
Problem rozwiazany wystarczylo poprostu wymienic LM35 na DS18B20 zmienic caly program i wszystko smiga. Mimo wszystkonajwiekszym problemem okazal sie sam w sobie LM35 Najczęściej używałem LM335 (łatwiej odczytywać temperatury ujemne czy bliskie zeru), LM35 tam gdzie mierze temperatury dodatnie (np radiatora) z AVR i nie miałem żadnego problemu. Tak...
nie wiem czy coś ze mną nie tak czy z tym forum, ale piszę tą odpowiedź drugi raz, albo odpowiedziałem w innym temacie ... użyj tej funkcji, u mnie działa to jest dla DS18 S 20 (niepotrzebnie wkleiłem , ale niech już zostanie) float zamien_temp(unsigned char MSB,unsigned char LSB) { float ftmp; if(MSB==0x00)//dodatnia,lub 0 {...
...mam jeszcze jeden problem z wyswietlaniem minusa przy ujemnych temp i z przesunieciem gdy tem jest poniezj 10st czyli jedno cyfrowa. Dim St1 As String *6 .... Temp: 1wreset 1wwrite &HCC 1wwrite &H44 1wverify Dsid1(1) 1wwrite &HBE Sc(1) = 1wread(9) If Sc(9) = Crc8(sc(1) , 8) Then B1...
Dzięki za program, udało mi się odczytać 2 bajty. Niestety nie posiadam wyświetlacza alfanumerycznego i korzystam z 4 wyświetlaczy sterowanych multipleksowo, więc mam problem z rozszyfrowaniem znaczenia bitów. Z moich obserwacji pierwszy bajt ma duży wpływ na temperaturę, ale nie pokazuje on chyba prawidłowej temperatury w kodzie dzisiętnym... Na drugim...
Zauważyłem jeszcze problemy z odczytem ujemnych temperatur - odczyt przeskakuje poniżej zera na wartość 125°. Czyli mam rozumieć to wyłącznie wina tego, że ds18b20 nie jest zamienikiem ds1820. Znalazłem jeszcze ds18s20, to jest zamiennik ds1820? Pytałem u mnie w elektroniku i mają tylko ds18b20 i ds18s20, ale nie potrafili mi odpowiedziec, który jest...
http://obrazki.elektroda.pl/8192024800_1... Witam, Przedstawiam kolejny projekt z wykorzystaniem karty TeleVGA, tym razem jest to " 4- kanałowy termometr z zegarem RTC i wyjściem VGA " Projekt powstał przy okazji realizacji zlecenia na kontrolę temperatury na linii produkcyjnej. Jednym z wymagań była dobra widoczność odczytów dlatego...
http://obrazki.elektroda.pl/2929008000_1... Witam. Po raz pierwszy zdecydowałem się przedstawić na łamach forum swoją konstrukcję. Chciałbym zaprezentować swój pomysł na Termometr Samochodowy. Podczas upalnego lata zauważyłem że po zainstalowaniu instalacji gazowej moje auto ma bardzo duże wahania mocy silnika w zależności od temperatury...
A co to za cudaczne obliczenia :wink: ... unsigned char wynik1=0; unsigned char wynik2=0; wynik1=read1w(); wynik2=read1w(); reset1w(); float temp=0; if((wynik2)!=0){ //temp ujemna wynik1=~wynik1; temp=wynik1+1; //dlaczego /2 i gdzie się podział wynik2 ? temp=-temp/2; //??? } else{ //temp dodatnia...
Masz skopane RESET_PULSE, zobacz koncowke i twoje badanie czy jest ok. Masz skopane send (to oryginalne), to powyzej tez - za dlugi jest impuls ujemny, masz skopane send_byte - zobacz jakie sa timingi pomiedzy bitami, a jakie ty masz. read_byte moze jest ok, ale tez nie jest idealne.
Szumlus udało mi się pozbyć migającego przelatującego kursora .Mam jeszcze pytanie czy twój projekt termometru w c wyświetla temperatury ujemne i jak zrobić poprawne wyświetlenie st C? Dodano po 12 Wysyłam mój wstępny projekt mojej przyszłej płytki w kicad. Proszę o ewentualne uwagi i poprawki. http://obrazki.elektroda.pl/2595901500_1...
Napisałem przecież, że pamięć flash to sporo. Chodzi mi o to, że jest miejsce w programie więc dopisałem. A że kondensatory w zasilaczach lubią "świrować" i zaniżać przez to napięcie, postanowiłem sobie je monitorować. Chodzi mi o puchnięcie kondensatorów jak np. w zasilaczach ATX lub na płytach głównych komputerów. To taki "bajer", i dzięki niemu sprawdzam...
Witam wszystkich Mam pytanie: chciałbym poskładac termometr cyfrowy na czujniku ds 18b20, odczyt danych na wyświetlaczu lcd z dokładnością do 0,1 także w temperaturach ujemnych. jestem zbyt ciemny by wykonac projekty które znalazłem tz. nie potrafię programować. Poproszę o schemat i program. z góry dzięki. pozdro dla wszystkich
DS18B20, DS1820, DS18S20 ..... to cyfrowe (dokładność 12-bitowa w każdym) ... górny zakres może ciut mniejszy, a mierzą z dokładnością do ok 0,1 C - cena ok 5zł, sterowanie z 1 pinu dowolnego mikrokontrolera (1Wire) ... ;) Mirku, dokładność to +/- 0,5 °C, zaś 0,1 °C to ich przybliżona rozdzielczość. http://datasheets.maxim-ic.com/en/ds/DS1...
Witaj. Zacznij od tego, że symuluj (w odpowiednim miejscu Twojego programu) prawidłowe (według Ciebie) wartości pomiaru i wyświetlaj je na wyświetlaczu. Uwzględnij newralgiczne przypadki jak np. zero oraz dodatnia i ujemna temperatura. To pozwoli Ci na ustalenie czy przyczyną są funkcje wyświetlania, czy odczytu temperatury. Następnie drążysz temat...
(...) odczytu temperatury. Jaki zaproponowałbyś kod (AVR GCC), aby nie trzeba było używać delay'a (może pooling lub maszynę stanu) ? Przy okazji przedstaw optymalną (bez zmiennoprzecinkowych liczb) konwersję danych ze scratpad'a na stopnie (może być złożeniem liczb całkowitych jako stopnie i części ułamkowe). Do obsługi termometrów DS18B20 bez blokowania...
No i chyba się wyjaśniło choć rezultat i tak marny. Cokolwiek to jest to nie jest jednak DS18B20, tknęło mnie to co pisał Wojtek75 i sprawdziłem jeszcze raz. Family CODE w numerze seryjnym tych czujników jest &H10 co wskazuje na to, że pomimo pięknego napisu DS18B20 na obudowie jest to DS18S20 lub DS1820. I byłoby nawet pięknie, bo poradziłbym sobie...
Witam Jeśli temp jest zmienną zawierającą temperaturę odczytaną z ds18b20 to jest to zmienna 16 bitowa ze znakiem. W związku z tym proponuję: - odczytać najstarszy bit (znak) i gdzieś go zapamiętać - jeśli liczba jest ujemna (MSB = 1), wykonać bitową negację i dodać 1 W tym momencie wykonanie operacji przesunięcia bitowego o 4 w prawo zwróci wartość...
Witam! Czyli kod powinien wygladac tak? OWrite D_Q, 1, [$CC, $BE] ' Read the temperature ORead D_Q, 2, [Temp.LowByte, Temp.HighByte, C, C, C, C, C, PerC] Deg = Temp & 0x07FF Deg=Temp>>4 remain=Temp & 0xF LookUp Remain,[0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9]... A jak z ujemnymi temp? Sorry, ale nie bardzi jestem w programowaniu, pierwszy projekt i dopiero...
Witam wszystkich! Właśnie próbuję przeliczyć dane z dwóch pierszych bajtów układu DS18B20, i zupełnie nie wiem jak się za to zabrać.Z DS1820 jest jednak łatwiej..Nie ukrywam,jestem bardzo początkujący.. Wiem, że rozdzielczość ustawia się zmieniając bity R0 i R1 w czwartym bajcie RAM-u układu DS18B20, ale co dalej?Przecież bity SSSSS w Hi mają wartość...
Witam. Może od razu na wstępie zaznaczę że dopiero zaczyna przygodę z programowaniem w "bascomie" więc proszę o wyrozumiałość. Zbudowałem sobie termometr na wyświetlaczach 7seg. led na ds18b20 termometr działa poprawnie i pokazuje temp ujemną. Na wszelki wypadek jeszcze napisze jak by ktoś nie wiedział albo się nie domyślił po co użyłem aż 6 wysw led....
Witaj, Temperatura rzędu 500C jest nie mozliwa do odczytania z DS18x20. Czujnik może co nawyżej wskazać 125C. Niestety procedury których użwasz do przeliczenia odczytanych danych na temperaturę są błędnie napisane. U uśrednianiu wyniku to tu raczej nie ma mowy bo DS18X20 jest czujnikiem cyfrowym z własnym kontrolerem któy już sam sobie uśrednia wynik...
ujemne ds18b20 ds18b20 ujemne temperatury ds18b20 bascom temperatury ujemne
skrzynia automatyczna dodge schematy laptopów poszukiwane ustawienie taśmociągu
chińskie radia samochodowe kasowanie pilota
Denon AVR-X1000 – jak wgrać firmware, aktualizacja przez LAN, brak plików USB Windows 10 Pro – niedziałające klawisze F8 i F9 w notebooku, Fn Lock, sterowniki, BIOS