Potem, jak chcesz to dziel przez 10 i na float ... Float? O zgrozo 1,5kB w plecy :) Tak to się robi: http://mikrokontrolery.blogspot.com/2011...
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....
witajcie. mam problem z konwersją temperatury na czujniku ds18b20 wszystko jak w manualu, ale... 1wire działa dobrze. vcc jest zewnętrzne, data jest podpięte do portu i do vcc poprzez rezystor 4.7K jak w datasheet. uklad dziala, ale pokazuje temperatury o jakieś 80 stopni C za niskie. to znaczy jak w pokoju mam 20 stopni, to na lcd mam -60 (około)....
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...
Można wyświetlać temperaturę w podmenu "wybór_Ds" ale trzeba zmienić cały program. Chyba nie jest tak trudno zapisać sobie cztery ID czujników i wiedzieć później który gdzie przypisać. Najlepiej osobno podłączać każdy czujnik i na naklejce na kablu przy czujniki zapisać jego ID. Wiedząc gdzie jakie jest ID czujnika można już mu w podmenu przypisać odpowiednią...
hexen2k, z tego co przeanalizowałem, to ten fragment dokumentacji, który przytoczyłeś jest zrealizowany w moim kodzie (?): Zgadza się :) michalko12 ma rację, sprawdzasz za późno: http://obrazki.elektroda.pl/2352154200_1... 3us na krótkiej lini powinno zadziałać, jednak przy dłuższych magistralach może być problem. IMHO lepiej sprawdzać...
http://obrazki.elektroda.pl/7995180000_1... Witam! Jakiś czas temu rozpocząłem naukę pisania programów na mikrokontrolery AVR w języku C++. Przeczytałem wiele tutoriali, poradników, itp., aż w końcu doszedłem do pisania własnych, prostych programów. Po kilku takich „pseudoprogramach” zdecydowałem, że teraz czas napisać coś...
http://obrazki.elektroda.pl/8751319800_1... Witam, chciałem zaprezentować termometr pokojowy, który został zbudowany dla rodziców dziewczyny do monitorowania temperatury pieca. Termometr został zbudowany z wykorzystaniem mikrokontrolera Atemga8 w obudowie TQFP32, a za czujnik temperatury służy DS18B20. Płytki pochodzą z innych projektów....
http://obrazki.elektroda.pl/5636705900_1... https://filmy.elektroda.pl/37_1378532310... Termometr mikromocowy LCD ATMEGA16 Tym razem głównym celem projektu było sprawdzenie możliwości wykonania mikromocowego systemu pomiaru temperatury w oparciu o możliwie standardowe elementy, mówiąc w skrócie byłem ciekawy czy zwykły avr może być...
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...
https://obrazki.elektroda.pl/9798266800_... Zwykle przy przeglądaniu nagromadzonych skarbów w postaci części el. przychodzą mi do głowy pomysły ich wykorzystania. Tak było i tym razem. Z jakiegoś starego projektu została mi para nadajnik/odbiornik 434MHz OOK, attiny13 i kilka DS18B20, pomyślałem że na tej bazie zmajstruję prosty bezprzewodowy...
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...
Witam wszystkich przeczytałem wszystkie tematy związane z tym czujnikiem a i tak do końca nie wiem jak sie go odczytuje chcial bym by ktos na podstawie tego krotkiego programiku mogl mi wyjasnic co i jak Do Wait 1 //czekanie 1s 1wreset //inicjalizacja transmisji 1wwrite &HCC // wiem ze tak musi byc ale nie wiem do końca co to oznacza 1wwrite &HBE //jak...
Witam! Szukam jakichkolwiek informacji na temat sposobu pomiaru temperatury przez DS18B20 i temu podobnych układów. Nie chodzi mi o sterowanie magistralą 1-wire lecz o samą konwersję temperatury na wartość elektryczną (termopara/pirometr/czujnik rezystancyjny czy co tam siedzi w środku). Byłbym wdzięczny za wszelkie informacje na ten temat bo w data...
na pcozatku mam pytanie czy czujnik DS18B20 ma jakies rejestry ktore nie są zerowane po wylaczeniu zasilania. Pytam bo kupilem 2 czujniki na allegro(cena 3,50) i wogole nie wiadomo co z nich odczytuje.... kazdy inaczej pokazuje. Poszedlem do kolegi, pozyczyl mi na chwile swoj czujnik i pokazuje dobrze temeperature na moim sofcie i sprzecie. Wiec kupilem...
Witam, mam problem jak w temacie a mianowicie nie wiem jak przekonwertować pierwsze cztery bity LSB które odpowiadają za dziesiąte części stopni aby otrzymać wartość od 0do9 a nie jak jest do tej pory od 0 do 15 (0x00 do 0x0F). Prosił bym o kawałek kodu w [asm] lub jakieś info jak to ma wyglądać.
Przeczytałem chyba wszystkie posty dotyczące problemów z DS18B20 i nie znalazłem rozwiązania dla swojego problemu. W większości rozwiązaniem jest zastosowanie podłączenia trzyprzewodowego i obniżenie wartości rezystora podciągającego magistralę 1Wire, niestety w moim przypadku zastosowałem trzy przewodowe podłączenie a rezystor podciągający to 3k3 a...
Witam wszystkich! Bawię się czujnikiem temperatury DS18B20 i po odczytaniu wartości temperatury stwierdziłem, że jest ona 3 st. wyższa niż na normalnym termometrze cyfrowym, który mam w pokoju. Jak już gdzieś na forum przeczytałem - zdarzają się poprostu takie egzemplaże i tyle. Spróbowałem jednak mimo odczytania określonej wartości z czujnika na wyswietlaczu...
Zabralem sie za termometr ds18b20. Wczesniej korzystalem z niego, wartosc temperatury wyswietlalem na LCD'ku i wszystko dzialalo. Teraz powrocilem do ukladu z ta roznica ze wart. temperatury wyrzucam szeregowo na kompa. Problem polega na tym ze w hyper terminalu wyswietla mi caly czas jedna wartosc (88). Kiedy wyciagam, w czasie pracy, procka uklad,...
witam mam nastepujacy problem w bascom moze banalny ale nie moge go przesskoczyc:(brak logicznego myslenia) chodzi o pomiar temperatury na ds 18b20 przed wyswietleniem temperatury formatuje liczbe za pomoca polecenia: Str_temp = Fusing(temp , "#.&") wiec z liczby np: 22.6255 zostaje mi 22.6 i moge to wyswietlic jest ok tylko liczba jest zapisana jako...
Jak w teromometrze DS18B20 ( NIE w DS1820) przetworzyc odczytany wynik na stopnie celcjusza? Jak to zrobić w Bascomie?
Witam Mam zbudowane obecnie dwa termometry na DS18B20 i delikatnie mowiac zaczynam sie irytowac. Oba mocno zanizaja temperature (o jakies 3 st C) Sprawa jest o tyle denerwujaca ze np w dni kiedy nie ma mrozu i temperatura jest na poziomie 1-1.5 st C czujnik pokazuje - 1.8 do -2.2 st C Czy tylko mi sie trafily takie "super" dallasy czy ten typ tak ma...
Potrzebny mi program obsługi przetwornika DS18B20. Posiadam umieszczony na forum program na DS1820. Chciałbym mierzyć nim temperature z dokładnoscią 0,1stopnia. Może ktoś potrafi go zmodernizować?
witam, robię termometr z dwoma ds18b20 i mam problem, ponieważ nie mogę wykalibrować tych pomiarów aby uzyskać dokładność do 0,1. Oraz wyświetlić wartość np. 21,5 st C. Termometr pokazuje mi 215, szukałem na forum, ale nic konkretnego nie znalazłem. Przedstawiam mój kod: 'Declare Sub Init Declare Sub Convallt ' Convert T on ALL sensors Declare Sub Odczyt_z_ds18b21...
Wita! Mam problem z termometrem dziwnie wskazuje w pokoju mam 29 stop. ?? i mu nie wierze bo jest max 24 patrzylem na zwyklym termometrze, czytam czytam i kazdy cos wspomina o rozdzielczosci dla serii b moj programik ... config 1wire=portb.0 declare sub odczyt_temp dim temperatura(2) as byte do call odczyt_temp cls lcd "temp:"...
Witam właśnie uruchamiam urządzenie z powyższym układem. U mnie w domu temperatura powietrza jest ustawiona około 20*C, na biurku pod lampą i blisko komputera może być oczywiście cieplej. Mam kilka sztuk tego układu, dwa z "nowej" serii i jeden "antyk". Żaden z nich nie był nigdy lutowany. Wszystkie 3 sztuki pokazują temperaturę od około 27*C do prawie...
Witam wszystkich Chciałem tak zaprogramować Ds18B20 że pracował jaki termostat tzn przez tranzystor sterować przekaźnik bo wiem że tak można tylko nie moge go wprowadzić w ten stan. czy mógłby mi ktoś pomóc. Załączam kod którym próbuje go zaprogramować, ale coś jest oporny może składnia jest nie prawidłowa bo po instrukcji H4E powinno sie przesłąć 3...
Witam Z racji wolnego dnia postanowiłem jeszcze dokładniej poznać budowę DS18B20 (czasem trzeba sobie co nieco przypomnieć). Odpalam program który zawsze działał i tu niespodzianka... DS działa prawnie do 32 stopni a jeśli temperatura przekroczy ten próg bez względu na to co jest wyświetla 85 stopni aż temperatura nie zjedzie poniżej tego progu. Problem...
Podałem wyraźnie, że oprogramowanie napisałem w WinAVR ;) Nie uznaję czegoś takiego jak bascom (wystarczyło mi raz w życiu się na nim przejechać...). Przedstawię "odchudzone" kody źródłowe - aby były całkowicie funkcjonalne należy troszkę dopisać. Ogólna idea jest przedstawiona. Sam main w programie jest niewielki. Dla przykładu pokażę jak zrealizowałem...
Poszedłem po rozum do głowy i zastosowałem sprawdzanie CRC8 . Okazało się że konwersja temperatury w układach DS18b20 przebiegała poprawnie a uszkodzeniu ulegały dane podczas zczytywania ich z układów. Po sprawdzaniu sumy kontrolnej pomijam błędne dane i wyświetlam tylko prawidłowe dane. Chociaż tym przerwaniom także muszę się przyjrzeć. Zatem zrobiłem...
Po pierwsze odpada drugi procek. Po drugie temperatura jest na ds18b20 i konwersja jest ustawiona na 750ms. Po trzecie zegar wyświetla co do sekundy więc setne nie są istotne. Chcę tylko żeby mi sekundy wyświetlał ładnie, a nie z różną częstotliwością (zacina się na jakiejś, potem nagle przeskakuje szybciej). Wolałbym na przerwaniach...
Tutaj masz gotowy przykład bez użycia float-ów (oszczędność pamięci): http://mikrokontrolery.blogspot.com/2011...
Przy samych jedynkach było by wskazanie 0 (a dokładniej -1/16, wartość binarna FFF.F) 85*C jest zwracane jak układ nie zdążył z konwersją. Nawet jak poprzednia konwersja się udała i poczekasz tą jedną sekundę, to po rozpoczęciu nowej konwersji i zbyt wczesnym odczycie nie otrzymasz nawet wartości z poprzedniej poprawnie przeprowadzonej konwersji. Bo...
Z tego co widziałem, to funkcja z pliku ds18b20 zwraca temperaturę jako int16_t czyli ze znakiem. Nie wiem jak to przekonwertować ani co dostanę po konwersji (jak znam życie to wynik będzie odniesiony do 1024 i jeśli 22 stopnie w przypadku int16 będzie częścią 512 bitów tak po zmianie typu na uint16 będzie częścią z 1024) Co do wartości bezwzględnej...
Jest tego sporo, DCF77, 7 x DS18B20 i DHT11 ( akurat jeśli chodzi o niego to mam wątpliwości, czy ten kod działa, bo jest na obydwu płytkach podpięty i zdarza się zawieszenie ) Nadajnik Atmega328p Dodano po 16 Odbiornik Atmega644P - trochę zmieniłem obsługę przerwania, wydaje mi się, że w przerwaniu nie powinno się wykonywać dużych obliczeń. [syntax=basic4gl]...
Załączam sprawdzoną, działającą bibliotekę do 1-Wire. Opóźnienia są policzone dla kwarcu 16MHz. Skoro Ty wykorzystujesz kwarc 1MHz to wystarczy, że podzielisz przez 16 argumenty funkcji opóźniających. Jakbyś miał z tym problem to napisz. Gratis dorzucam też sprawdzoną i działającą funkcję do odczytu i konwersji temperatury z czujnika DS18B20. // odczytanie...
Jak pisał kolega (at)piotrva wystarczy użyć flagę w przerwaniu aby program był nieblokujący, więc żaden czas się nie marnuje. Osobiście odczyt zawszę robię bezpośrednio w przerwaniu dzięki czemu odpadają mi problemy z błędnym odczytem (nie rozwala mi komunikacji 1wire). Mimo niestosowania CRC nigdy nawet na długich przewodach nie mam ŻADNEGO błędnego...
Konwersja na temperaturę : ow_reset() ; ow_write_byte(0xCC); ow_write_byte(0xBE); lsb = ow_read_byte() ; msb = ow_read_byte() ; Temperatura = (msb<<8 | lsb) * 10 / 16 ; A jak masz podłączone wyświetlacze ? Np. część kontrolerów potrzebuje kodów BCD. Używaj opcji SZUKAJ. To co podałem było już niejednokrotnie....
Czy moze ktos ma juz gotową procedure do odczytu temperatury z termometru DS18B20 w bascomie ? Ano proszę bardzo: Dim Bd(9) As Byte Dim Temp As Word Config 1wire = P1.0 Config Lcd = 16 * 2 Do 1wreset 1wwrite &HCC 'skip rom 1wwrite &H44 'convert T Wait 1 1wreset 1wwrite &HCC 'skip rom 1wwrite &HBE 'odczyt pamieci podrecznej Bd(1) = 1wread(9) 1wreset...
Udało mi się połączyć kod, i dopasować preskalery do Atmegi ale podczas kompilacji napotykam błędy których kompilator nie może dokładnie określić prosiłbym o sprawdzenie całości i ewentualne poprawki [syntax=c]//Sterownik wytrawiarki PCB, LCD2x16, ds18b20 #include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdio.h>...
Kolego fazolek zrobiłem konwersję co 10 sekund i wynika iż mniej się nagrzewa struktura DSa i niema efektu narastania temperatury. Mam dwa takie same czujniki i dwa takie same termometry w jednym konwersja jest co 850ms w drugim co 10s i rozbieżność tam jest około 0,4. Ciągle się im przyglądam i widzę liniowy offset. Oba czujniki są za oknem więc wiadomo...
Patrząc na Twój kod zauważyłem że wykorzystujesz funkcję z biblioteki "delay.h". Tymi funkcjami nie uzyskasz dokładnych czasów potrzebnych do obsługi interfejsu 1-Wire po którym komunikuje się czujnik DS18B20. Udostępnię Ci swoją sprawdzoną w 100% bibliotekę do komunikacji po 1-Wire. W tej bibliotece wystarczy dobrać czasy opóźnień dla Twojego kwarcu...
Jeśli źle umieściłem temat to bardzo proszę o przeniesienie. Kod który wklejam : http://obrazki.elektroda.pl/7428430100_1...
Witam Używam Attiny2313 do pomiaru dwóch temperatur z DS18B20. Wynik ( Integer ) przesyłam bez żadnej obróbki przez UART przewodem 40 cm do Atmega328. Atmega rozbija odebrane dane i jest obróbka Kod Attiny2313 $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 4800 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5...
Witam W ramach dalszego eksperymentowania z AVR i Bascom popełniłem połączenie odczytu z DS18B20 z sterowaniem wyjściem uC ( przez tranzystor FET ) + dodatkową atrakcję - buzer, który sygnalizuje wł/wył tranzystora/wyjścia. Chciałem dodać możliwość zmiany temp max i min, przez proste menu. Menu zrobiłem w oparciu inny mój kod obsługujący ustawianie...
co prawda w C, ale zasada ta sama: http://mikrokontrolery.blogspot.com/2011...
Witam, problem tkwi w wyświetleniu temperatury na LCD. Czujnik działa w trybie 12 bitowym. Szczytuje pierwsze 12 bitów z pamięci scratchpada, sprawdzam czy temperatura jest + czy -, a następnie dokonuje konwersji temperatury na string. Na wyświetlaczu pokazują się jednak dziwne rzeczy. Użycie funkcji typu sprintf odpada (zajmuje za dużo miejsca). Konwersja...
A więc tak:) Konwersja działa można powiedzieć prawie idealnie. Chodzi mi o ten sposób: unsigned char round2(double d1) { return (d1 - floor(d1) >= 0.5) ? ((unsigned char)ceil(d1)) :((unsigned char)floor(d1)); } unsigned char wynik1 = ds.nds[0]; unsigned...
Witam Czy ma ktoś doświadczenie w odbieraniu danych z dwóch (lub więcej) czujników drogą radiową... Chcę zbierać dane z różnych czujników (temperatura, ciśnienie, przyspieszenie, itp) wysyłających dane przez moduły 443MHz i odbierać je przez jeden odbiornik, taki DataLogger. Umiem to robić pojedynczo z każdego czujnika i wyświetlać wartości na wyświetlaczu....
Do czego to doszło ;p Może od nowa, wersja z i2c chce dopiero teraz wprowadzić jak na razie jest po Bożemu znaczy sie wyswietlacz ze sterownikiem znajduje się na 2pietru kamienicy układ wykonawczy i wyłącznik (countera) znajduje się w piwnicy. Z i2c to dopiero mam zamiar zrobić bo zależy mi na dwóch wyswietlaczach jednym w piwnicy drugim na 2pietrze....
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...
wykorzystalem zarowno ten sposob na obliczanie temperatury: void Read_Temperature(void) { char tmp[10]; char temp1, temp2; unsigned short int t; if (ow_reset__()==1) test(); write_byte(0xCC); //Skip ROM write_byte(0x44); // Start Conversion _delay_ms(1000); _delay_ms(1000);...
Witam. Proszę o brak agresji w moją stronę ze względu na moje pytanie które zaraz zadam. Temat wałkowany ale jednolitej odpowiedzi nie mogłem dostać więc proszę o pomoc. Wykombinowałem z paru źródeł taki o to kod (wraz ze zdefiniowanymi przeze mnie zmiennymi): #define F_CPU 8000000UL #include <util/delay.h> #include <avr/io.h> #include <stdlib.h>...
Sprawa wygląda tak, że siedze nad tym długo, a w Internecie nie znalazłem nic, co by mi pomogło. Szukałem dość dużo i już zaczynam się frustrować. Nie chodzi o delay trwający 750ms, bo ten wyeliminowałem. Rzecz jest m.in. w tych, które trwają od kilku do aż 500µs (reset pulse). Śmiem przypuszczać, że to właśnie za przyczyną tych krótkich opóźnień...
Przyznam szczerze że mam problem z ogarnięciem tych rozmiarów danych zwracanych itd.. i nie bardzo wiem jak zmienić to wszystko tak, jak powinno być. Generalnie znowu mam problem. Na wyświetlaczu chce wyświetlić temperaturę z termometru DS18B20 - magistrala 1-wire zasilany zewnętrznie. Po dodaniu kodu odpowiadającego za obsługę tego termometru wyświetlacz...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Ja zawsze tak robię i to niezależnie czy czujniki są podpięte w trybie parasite czy normalnie. To oczywiście działa bez najmniejszych problemów i jak pisze kolega wyżej tak wręcz powinno się robić ;)
Ja bym obstawił że to wina zasilania pasożytniczego. Jako że one nie są selektywne to ładują się wszystkie podczas transmisji, za mocno może przysiadać napięcie a przez to źle dokonuje się konwersja temperatury.
Nominalny czas konwersji temperatury przez DS18B20 to 750 ms, czyli wszystko się zgadza.
...
http://mikrokontrolery.blogspot.com/2011...
http://mikrokontrolery.blogspot.com/2011...
Urządzenie dalej przy pierwszym uruchomieniu programu odczytuje 85'C. Nie może być inaczej, skoro pierwsze czytanie temperatur wykonujesz przed wysłaniem polecenia konwersji ;)
Trochę teorii w temacie: http://mikrokontrolery.blogspot.com/2011...
MPLAB v6.50 - tris działa bez zarzutu. Kompilator czepia się natomiast tego co mi podajesz (i co podaje też dokumentacja PICa :) ) a DSa dalej nie mogę zmusić do współpracy... Dodano po 11 Dobra ... właśnie udało mi się zapisać i odczytać rejestry TH i TL więc wracamy do tematu przewodniego. Dlaczego nie działa konwersja temperatury?!?
Oto odpowiedź: http://mikrokontrolery.blogspot.com/2011...
ds18b20 konwersja temperatura ds18b20 konwersja konwersja ds18b20
ładować latarka chiński czujniki przeciążeń bateria łazienkowa
reset pieca buderus kabel brake radio
Iveco 35-10: Wysokie obroty silnika - przyczyny i diagnostyka Cofanie się brudnej wody do zmywarki - przyczyny i rozwiązania