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...
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?
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...
Witajcie, chciałbym lekko odgrzać kotleta i poprosić o wskazanie błędu przy próbie wyliczenia temperatur ujemnych. Odczytuję czujnik DS18B20 w maleńkim ATTINY13 (zmienne float właściwie odpadają) i co około sekundę wysyłam wynik poprzez UART. Dla temperatur dodatnich - dzięki uprzejmości p. Podkalickiego i jego "odchudzonej" biblioteki DS18B20 działa...
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...
jestem ciekaw jak tam u ciebie z odczytem ujemnych temperatur, bo wg mnie to będą źle czytane. no chyba że nie potrzebujesz ujemnych
Czy Ty nie widzisz , że ten kod to stek bzdur :?: :| Popatrz:[url=http://www.elektroda.pl/rtv... Piotrek
Hej, czy możesz nam pomóc i zawęzić, która wersja łamie DS18B20 dla Ciebie?
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.
Bardzo fajny opis :) tylko czy bedzie dzialal na DS1820? Bo widze z ty opisujesz DS18B20... Pozdrawiam
Jak projekt radzi sobie z temperaturami ujemnymi?
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.
..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();...
Prawdopodobnie dlatego że ten czujnik używa kodu U2. Tutaj więcej informacji. [url=http://mikrokontrolery.blogspot.com... EDIT: Napisz jeszcze co oznaczają zmienne (szczególnie scratchpad)
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.
Kolejna sprawa to nie zdziw się jak będą wyświetlać się bzdury przy ujemnej temperaturze.
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...
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
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....
tak, uwzględniłem powyższe, jak narazie odczytuje poprawnie, jeszcze ujemne temperatury muszę sprawdzić.
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
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.
Dobrym pomysłem byłoby dodanie informacji, czy temperatura jest dodatnia, czy ujemna.
Czy przypadkiem zmienna I nie zwraca ci temperatury ujemnej gdy ona występuje? Znak jest zawarty w drugim bajcie => patrz datasheet.
czyli dla dodatnich się mogą sumować ale dla ujemnych już nie ? tak ?
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....
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()
Ja zrobiłbym to na mosfecie typu P i włączał dodatni biegun zasilania, a nie ujemny.
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?
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%.
sprubuj zmienić int na byte (chyba ujemnych temperatur nie będziesz mierzył).
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]
(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.
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 :)
Mam problem jestem początkujący napisałem program który ma za zadanie regulować włączanie wiatraka i czas z jakim ma dmuchać , jednocześnie mierzy temperaturę i nie działa tak jak powinno : Temperatura pokazuję co jakiś czas błędny pomiar np 124 , 32 , 98 procek się resetuje chińskie znaki raz na jakiś czas w programie można było ręcznie zmieniać czas...
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!!! 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...
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. :|
witam problem raczej standardowy bym powiedział :) zakładam, że wolisz wersję skróconą bez wykładu a dlaczego tak itd :D 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt(1) = 1wread(2) T = Makeint(odczyt(1) , Odczyt(2)) Tspr = T T = Abs(t) T = T * 10 : T = T / 16 Przecinek = T Mod 10 T = T / 10 1wreset...
wartości mają być też ujemne... dodaj to do programu i jakiego typo ma być wtedy zmienna?
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....
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
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...
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...
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?
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...
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...
Nie to sprawdzałem. Wygląda to jakby procedury odczytu DS-a działały bo ta temperatura wyświetlana -0.1 o tym świadczy. DS jest zasilany z 3,3V i wyczytałem że przy takim zasilaniu rezystor podciągający linie DQ ma mieć około 2k i taki mam. Ale z rezystorem 4,7k też nie działało. Gdzie to wyczytałeś? Datasheet nic na ten temat nie mówi, poza "Can be...
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.
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ł.
Witam jakiś czas temu kupiłem na Allegro wyświetlacz VFD od kasy fiskalnej model Fujitsu VF60. Postanowiłem zrobić na nim termometr jednopunktowy z czujnikiem DS18B20, po rozkręceniu wyświetlacza okazało się że jest to wyświetlacz z interfejsem UART i pojawił się problem. W sieci jest sporo projektów termometrów ale wszystkie opierają się na tradycyjnym...
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
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...
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...
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...
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...
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.
T1 = Makeint(bd(1) , Bd(2)) T1 = T1*10 : T1= T1/16 Dziesiatki = T1 Mod 10 T1 = T1 / 10 Locate 1 , 1 Lcd T1;".";Dziesiatki ; Chr(0) w takiej kolejnosci i musi działac Działa, dzieki ale przy ujemnych temperaturach dostaje wynik w postaci w postaci np. -10.-8 , ten minus w dziesiątkach jest nieptrzebny.
Cześć, napisałem właśnie funkcje do obsługi protokołu 1-wire i chciałbym wykorzystać je w prostym termometrze cyfrowym. Myślałem o zrealizowaniu tego w ten sposób, że w pętli while byłyby dwa bloki kodu. Jeden odpowiedzialny za odczyt temperatury z DS18B20, rozłożenie zmiennej z temperaturą na poszczególne cyfry, sprawdzenie czy temp. ujemna i na którym...
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...
...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...
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ż...
Powiem tak, jak przeczytałem tutaj że po podłączeniu oryginalnych termometrów zewnętrznych występują przekłamania w odczycie temperatury, to postanowiłem że nie będę kupował oryginalnego za przeszło 100 zł i kupiłem na ... taki za 1,50 zł. Nie były tam podane ani jego symbol, ani Beta, tylko NTC 10k/25°C, 1%. Umieściłem go na zewnątrz obok czujnika...
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ć...
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...
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.
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ć :?:
Zwykły LM35 mierzy również ujemne, przy odpowiednim podłączeniu. LM35D ma problem z dokładnością - przy ujemnych temperaturach może dawać duży błąd. Tańszy jest LM335 (pytanie, jak dokładniejsze wersje - LM135, LM235), ale wymaga dobrego wzorca napięcia, bo daje napięcie 10mV * T (w K). Jest jeszcze LM334 (i odpowiedniki na większy zakres temperatur...
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...
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...
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...
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 {...
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...
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...
Do programu ElektroTME dopisałem obsługę 2 czujników temperatury DS18B20. Czujniki podpięte pod portc.0, temperatura odczytywana w przerwaniach co około minutę. Wyniki są prezentowane na 4 pierwszych wyświetlaczach a na 2 ostatnich jest znak stopnia i litera C. Przewidziałem nawet przypadek ujemnych temperatur dla termometra zewnętrzengo co objawia...
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...
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.
Przecież JmL(TM) dość szczegółowo ci napisał jak to wykonać. Chyba że liczysz na gotowca, jeśli tak to nie tędy droga. Zrób sobie zmienną i w niej zapamiętaj wynik pomiaru. Przy kolejnym odczycie od tej zmiennej odejmij aktualną temperaturę: - jeśli wynik tej operacji będzie ujemny to temperatura spadła i strzałka w dół. - jeśli wynik równy jest 0 to...
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...
a wiec zaczal mi dzialac po tym jak odpialem zasilanie i dziala obecnie w trybie parasite (bez mosfeta ktory jest na schemacie w instrukcji do ds- a ) ale.... wykorzystalem rozne programy i bzdury mi pokazuje temperatury po 250stopni albo minus 70 skacze bardzo temperatrura jak go tylko dotkne.... czy to oznacza ze ukladzik mam juz zwalony :)) czy...
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...
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ść...
http://obrazki.elektroda.pl/8261296900_1... http://obrazki.elektroda.pl/3509895200_1... Opisany poniżej "nietypowy mówiący termometr" dla większości osób może się wydać zupełnie niepotrzebnym, zbędnym gadżetem. Jednak dla osób starszych, słabowidzących itd. może okazać się pomocny. Typowe, tanie termometry, nie zawsze...
Trzeba prawdopodobnie tylko wyłączyć kursor. Funkcja void LCD_SendCommand(unsigned char ucCommand) komendy zdefiniowane l pliku .h LCD Ewentualnie spróbuj pobawić się kontrastem może uda się go ustawić tak aby nie było bardzo widać przejścia kursora podczas odświeżania. Co do porównania temperatur w bibliotece onewiere.c jest funkcja OW_CompareRawTemperature....
informującego o zmianie temperatury co 1 stopień w górę lub dół To są założenia więc co każdy stopień ma być krótki sygnał. Warunek If T >= 200 then spowoduje że przekroczenie 20 stopni spowoduje sygnał. Muszę chwilę pomyśleć. Trzeba badać także różnicę pomiędzy odczytem poprzednim a następnym. Sprawdź to: (zmień procesor, konfigurację LCD, portów,...
Piszę program do prostego sterownika pieca, w książce "Programowanie mikrokontrolerów avr w j. Bascom" mam opisana obsługę czujnika DS1820, w sklepie elektronicznym w moim mieście mieli tylko DS18B20, myślałem że nie będą się może różnić za wiele, mogłem zajrzeć do noty katalogowej ale już za późno. Przeglądałem noty katalogowe tych dwóch układów, z...
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...
Prawda READ. A co do tej konwersji to już kiedyś napisałem jak to zrobić, zaraz znajdę post. Znalazłem. 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ę...
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.
z kontrastem łatwo sobie poradzić "podlonczając" potencjometr do Aref ustawiając je na wewnętrzne napięcie odniesienia Czy to jest rozwiązanie przetestowane w praktyce? Pytanie w stylu. Używałem LM7805 teraz dałem LM317 z dobranymi dzielnikami rezystorowymi. Czy zadziała? Moje gdybanie niepoparte próbami: Przy niskim napięciu zasilania wyświetlacza,...
Ponizej przedstawiam podprogram odczytu temperatury z czujnika Ds18B20 i mam pytanko w jaki sposb zrealizowac odczyt temperatury aby nie wplywal on na opoznienia czsowe glownego programu. Kombinowalem na Timerach ustawiajac poprogramy tak aby najpier wykonaly czynnosc " 1wreset 1wwrite &HCC 1wwrite &H44 " i za 750 ms czynnosc " 1wreset 1wwrite &HCC...
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...
U mnie dziala tak: 1wire_1 Alias P3.0 Dim T As Word Sub 1wire1 1wreset 1wire_1 ' reset magistrali 1wire 1wwrite &HCC 1wire_1 ' zaadresowanie DS'a - skip rom 1wwrite &H44 1wire_1 ' polecenie dokonania konwersji Wait 1 ' dajemy czas na konwersję (wystarczy 750ms) 1wreset 1wire_1 ' reset 1wwrite &HCC 1wire_1 ' adres 1wwrite &HBE 1wire_1...
Dobrze nawet zrozumiales z tym znakiem. ale jesli temperatura jest ujemna to negujesz calosc i odejmujesz 1 zeby miec poprawna temperature (potem dzielisz na 16). i tyle filozofii.. a swoją drogą nie masz zamrazalnika? wez kostke lodu i sprawdz.... ;]
ds18b20 ujemny temperatura ds18b20 odczyt ujemny temperatura bascom ds18b20 ujemny temperatura
antena radia detektorowego przesunięcia bitowe pralka candy zapchana
traktorek silnik briggs traktorek silnik briggs
Nadmierny wypływ wody w ekspresie ciśnieniowym - przyczyny i rozwiązania Zamienniki układu 75462: ULN2003A, ULN2803A i inne