Witam Na wstępie chciałbym zaznaczyć iż jestem początkującym programistą i dlatego proszę o wyrozumiałość. Robię termometr na lampach nixie, ale nie działa mi poprawnie komunikacja z ds18b20 i ds1820. Problem polega na tym, że na lampach pokazuje się wartość -00.1 tak jak by wyjście czujnika było zwarte bezpośrednio z + , a nie jest . Czujnik jest podpięty...
Problem rozwiązałem w 50%. To znaczy dzięki podpowiedzią kolegów co mi brakowało żeby działał termometr, który pracuje bardzo dobrze ,dopisałem do programu woltomierz , który pracuje dobrze. Do zamknięcia tematu pozostał jeszcze amperomierz , który mierzy spadek napięcia na boczniku sygnał wzmocniłem wzmacniaczem LM358.Nie wiem jak przeliczyć spadek...
Witam Mam zbudowany układ na atmega 32 i do niego podpięte 4 czujniki DS18B20. Po włączeniu przez kilka godzin wszystkie pokazują właściwą temperaturę. Po tym czasie trzeci czujnik co jakiś czas pokazuje trzecie miejsce po przecinku, a czwarty czujnik również co jakiś czas pokazuje niewłaściwą temperaturę - w okolicach 130 stopni ( rzeczywista temperatura...
Witam Kolegów, zaczynam naukę programowania w środowisku Bascom, na warsztacie mam Attiny2313 i DS18B20, chciałem sprawdzić jak działa odczyt temperatury (wyświetlanie na LCD opanowałem wczoraj, pin'ologia LCD niezmieniona). DS18B20 podłączyłem następująco: 1 - Gnd, 2 - do pin'u wejściowego oraz przez R=4.7k do +5V, 3 - +5V. Całość jest zasilana przez...
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ę...
Nowy zestaw z oferty producenta zestawów do samodzielnego montażu firmy Nord Elektronik Plus Urządzenie przeznaczone jest do pomiaru temperatury otoczenia w zakresie od -50 do 125 stopni Celsjusza z precyzją wskazań 0,1 stopnia i dokładnością 0,5 stopnia. Do pomiaru służą cyfrowe czujniki temperatury DS18B20. Dzięki podwójnemu wyświetlaczowi LED o wysokości...
Ja robię tak: Dim Odczyt As Integer 'do czytania DS-a Dim T As Single Rem * * Odczyt Dsa * * 1wreset 1wwrite &HCC 1wwrite &H44 Wait 1 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt = 1wread(2) T = Odczyt T = T * 10 T = T \ 16 T = T \ 10 Locate 1 , 1 Lcd "Temp:" ; Fusing(t , "#.#") ; Chr(1) ; " " i mam odczyt z dokładnością do 0,1 stopnia.
Ds18B20 jest jednym z najdokładniejszych termometrów Dallasa, mozna wyciagnąc rozdzielczość +/- 0,1 stopnia. Wynik jest zapisaywany w dwóch bajtach. Hi--> SSSSSHHH, Lo->HHHHHLLL, gdzie S-znak, H-bity czesci całkowitej pomiaru temperatury w stopniach Witam wszystkich! Właśnie próbuję przeliczyć dane z dwóch pierszych bajtów układu DS18B20, i zupełnie...
Witam, Przeszukałem forum i nie znalazłem rozwiązania które by pomogło. Problem wygląda następująco. Komponenty problemu Atmega8a, bascom AVR IDE (2.0.7.5), czujnik DS18B20. Sprawdzone problemy z forum: -Nieprawidłowe podłączenie. Nóżka danych jest podciągnięta przez 4,7k Ohma do 5V -Kable zostały sprawdzone pod względem ciągłości -Sprawdziłem czy jest...
* Witam po dłuższej przerwie, tym razem dział mikro kontrolerów. Wymagania dla projektu / założenia: Pomiar w pomieszczeniu/ obudowie urządzenia /w zbiorniku temperatury powietrza /cieczy na wejściu i wyjściu. Wyświetlenie na żywo aktualnych wartości temperatur na wyświetlaczu LED x2. Wykrywanie przekroczenia ustalonych granic i alarmowanie poprzez...
Nadal nie radzę sobie z kwadracikiem przed stopniami C tzn z symbolem stopni celcjusza. Proszę fachowców o konkretny działający przykład w c.
Mam Atmegę8 i DS18b20 i w Eclipse i w MkavrC 8000000. Wynik na lcd -17024, a binarnie 1011110110000000. Dodam, że miało wyświetlić temperaturę w stopniach Celsjusza. Jeżleli ktoś ma ciekawe sugestie to ładnię proszę o pomoc. Pozdrawiam Poprawiłem tytuł na "język C", a nie "C++", gdyż kod jest kodem C. W przyszłości proszę rozróżniać języki.
Znalazłem na dysku coś takiego, może się przyda: Sub Read1820 1wwrite &HCC: 1wwrite &H44 'inicjalizacja konwersji A/D waitms 250 waitms 100 'oczekiwanie na koniec konwersji 1wreset 'reset magistrali I2C 1wwrite &HCC 'odczyt zawartości RAM (scretchpad) 1wwrite &HBE 'odczyt zawartości RAM (scretchpad) Bd(1) = 1wread(9)...
Temat jest podobny do: Próbowałem ten kod z książki o którym mowa i ten poniżej co jest oraz zmieniałem na 1MHz i nic Mam albo Brak układu albo Temp:0.0C w zależności od kodu. Napięcie na ds jest a układ jest dobrze podłączony. Poniżej mój kod $regfile = "m32def.dat" $crystal = 16000000 Config Lcdbus = 4 Config Lcd = 24 * 2 Config Lcdpin =...
Witam Piec na ekogroszek z podajnikiem. Sterownik założony przez fachowca to ST-37 firmy Tech. Czujnik temperatury założony na wylocie wody z pieca. Owinięty gąbką i okręcony taśmą. Tyle od strony fachowca. Zmontowałem sobie termometr internetowy w oparciu o Arduino Nano i dwa czujniki temperatury DS18B20. Jeden założyłem obok oryginalnego zakładanego...
Obliczenia sa dziecinne proste: T = T*10, T= T/16 i wychodzi wynik np przy 14.5 st 145 który potem dzielisz przez 10 i masz całe stopnie a z funkcji mod otrzymujesz dziesiatki stopnia. Odpadaja funkcje zmiennoprzecinkowe. Rozdzielczosc pomiaru ds18b20to 0.06 st C z groszami.
Tu masz sprawdzoną procedurę odczytu temperatury. Zmień tylko definicję procesora, przypisania portu 1wire i LCD i masz gotowe. '=======================================... 'definicja użytego kontrolera $regfile = 8535def.dat 'jaki rezonator kwarcowy $crystal = 8000000 '$sim '---------------------------------------...
No to mam taki problem, mam attiny 2313 podłączonego do wyśw. 2x16 i do attiny podłączonego ds18b20. Na wyśw. mam napisane Temp:-0.1C. Problem tkwi w tym że temperatura jest zawsze -0.1C kod programu : $crystal = 4000000 'deklaracja częstotliwo?ci pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program ' definicja...
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...
Witam serdecznie Przejrzałem mnóstwo wątków i stron www o AVR i problemach z komunikacją z czujnikiem temp. DS18B20. U mnie pomiar działa ale jest pewien haczyk - temperatura mierzona jest (i wyświetlana na LCD) do wartości 70stopni Celsjusza. Dalsze ogrzewanie czujnika powoduje, że otrzymuję tylko jedną wartość temperatury tj. 127,9. Po schłodzeniu...
Witam! Dla przyblizenia mojego problemu chcialbym przedstawic na poczatku kilka faktow. Czujnik dziala i mierzy temp , jednak nie wiem jak sie dobrac do przeliczenia danej wartosci aby ja pozniej mozna bylo wyswietlic na LCD. W pokoju na inym termometrze temp. wynosi 20.9 stopnia celciusza a na DS18b20 msb=0x01 , lsb=0x7D. Gdy staram sie to przeliczyc...
Witam, wiem ze to jest trochę utarty temat potrzebuje pomocy w programowaniu czterech termometrów ds18B20 a meczę sie już dłuższy czas. Poniżej mój kod. (narazie jeden termometr. bez sprawdzania błędów i stanu podłączenia) 1. jak odczytać i wyświetlić temperaturę (z mojej konfiguracji) nie musi być dokładna do 0.1 stopnia!(narazie nawet same pełne stopnie)...
Program odczytujący temperaturę z ds18b20 został napisany pod mikroprocka pic16f876a, następnie program ten został przeniesiony na pic16f886. Procki te są pod względem obudowy i ustawień nóżek takie same. Wyprowadzenia więc zostały te same i nie działa komunikacja z ds18b20. Program pisany w MPLABie, poza zmianą pliku od procka, został również zmieniony...
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 wybór padł na monitor LCD. Po realizacji projektu postanowiłem...
Witam W swoim programie wykorzystuję klasyczny kod dla DS18B20. Pomiar, obliczenia i odczyt podzieliłem na dwie części, każda wyzwalana flagą od od Timer0. Najpierw w podprogramie wywołuję DS'y pierwszym wystąpienie flagi od Timer0, a w następnej wywołuję podprogram konwersji i obliczeń. [syntax=basic4gl] $regfile = "m644def.dat" $crystal = 14745600...
Kody w C do czytania ukladu DS18B20. U mnie dziajaja :D Dodano po 3 #define ENABLE_BIT_DEFININTIONS #include <io2313.h> #include <ina90.h> #include "hardware.h" #include "headers.h" #pragma bitfields=default // definicje zmiennych globalnych int TEMPERATURE= 9999;//ta liczba okresla blad pomiaru lub brak czujnika char DALLAS_Buf[9]; C_task...
Opis magistrali 1Wire masz w helpie. Poniżej kod na obsługę dallasa DS18B20. Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 1a 'konfiguracja wyswietlacza Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32 'znak stopnia Dim T1 As Single Dim T2 As Single Dim B1 As Byte , B2 As Byte , R As Byte Dim Tmp As String * 6 Dim Znak As String...
ok, nowy czujnik i wszystko działa - na pozostałych nie. Istnieje możliwość, że montując układ w obudowie i wyprowadzając złącza na zewnątrz źle przylutowałem przewody do gniazda canon i się poblokowały na tych 85 stopniach. Pewności nie mam, bo wczoraj wszystko rozłączyłem i od początku lutowałem. Co do zasilacza to sprawdzałem napięcie za stabilizatorem...
Według not katalogowych nie powinno się przekraczać temperatury 100°C w trybie parasite. U mnie błędy pojawiały się już przy 80-85 stopniach.
Ja się podłącze. Mam dwa DS18B20 i w zakresie poniżej 20 stopni przekłamuje o 1,5 stopnia. Nie mroziłem bo nie mam jak ale przy 19 czy 20 stopniach i w górę pokazuje idealnie. Czyżby gó** warte te czujniki są? Miał ktoś taki problem? Sprawdziłem timingi i cały soft i jest dobrze. Myślałem o nagrzewaniu się struktury od zasilania ciągłego (5V) ale to...
dziwny problem .. AAaaa .. a czemu skoro zmniejszyłeś rozdzielczość do 9 bitów to robisz wartość / 16 ?? / czy nie trzeba by odpowiednio zmienić działki .. ?? / Masz tu moją bibliotekę dla wielu Ds-ów ( używałem 8 ) chodzi bardzo sprawnie - miałem problemy z zakłóceniami / siały mi falowniki /. Otrzymujesz tablicę z wartościami temp w dziesiątych częściach...
Witam Mam problem z odczytaniem temperatury z 2-uch ds18b20 program napisałem w C w oparciu o znalezione pliki owire.c i owire.h program się kompiluje jednak na wyświetlacz nie trafiają informacje o MSB i LSB (na początku chcę przetestować na jednym ds18b20 bez konwersji na temperaturę) jedyną modyfikacją jaką wprowadziłem było zdefiniowanie typu u08...
7805 mają Vo+/-5%, a nie 2%, chyba, że masz jakąś specjalną wersję. Dwa, dokładność napięcia leci na łeb przy wzroście obciążenia. Trzy, procek i inne układy cyfrowe pobierają prąd impulsowo. To nie jest stabilne napięcie referencyjne. To jedna z gorszych możliwości. Cztery - zakładasz, że ADC jest idealny, a nie jest. Ma błędy wzmocnienia i liniowości,...
Witam. Mam problem z programem który w inny urządzeniu działa jak należy. Program odczytuje numer ID z DS18B20 zapisuje w pamięci a później odczytuje go z pamięci i dzięki niemu odczytuje temperaturę z jednego z dwu czujników. Problem w tym że tej temperatury nie odczytuje. Procesor "widzi" czujniki bo wyświetla ich ID. Same czujniki też mogę odczytać...
Hi. Sklecilem sobie w ramach testow i zabaw termometr z DS18B20, i ogolnie mierzy w porzadku poza dziwnymi zachowaniami.. 1. Wskazuje 23,5 stopnia. (co jest mozliwe). przykladam do radiatorka... kolejno wskazuje: 8, 9,12,16,20,32,38 st... Odejmuje od radiatorka wskazuje kolejno : 38,37, 32,14,12,11,11,10,10,9,9,9,8,8,8, 23.8 Ktos wie skad sie to moze...
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! Mam taki problem: Skleciłem oto taki kod i nie bardzo działa $regfile = "m16def.dat" $crystal = 16000000 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.2 Config Porta = Input : Porta = &B11111111 Config Portb = Output : Portb = &B11111111 S1...
zumek -> masz racje. z twoją procedurą działa. całkiem dokladnie. do dziesiątek stopnia. tylk mam wrazenie ze DS cos nieskalibrowany, bo jakby zawyża temp o 3 stopnie(tak mi sie zdaje), ale tu odejmuję od wyniku 3 stopnie i jest OK. teraz czeka mnie zabawa z odczytem wielu czujników na jednej linii :) Dzięki stokrotne wszystkim za pomoc!!! Dmz
Przede wszystkim DS na konwersje potrzebuje ok 750ms, ty zastosowałeś 500. Po co stosujesz 2x Waitms? Do pomiaru temperatury potrzebne jest stabilne zasilanie 5V. Robiłem ostatnio termometr do szklarni i wahania napięcia spowodowane zaświecaniem kilku LED, powodowało różnicę odczytu ok 1,5 stopnia.
Ja to robię tak że jak już masz temperaturę z danego czujnika odczytaną np w zmiennej temp odejmuję od niej 100 i w dodatkowym menu mam możliwość jej dodania czyli dodając 100 jednostek mam wynik równy zero. Ale ustawienie np na 95 spowoduje obniżenie pokazywanej temperatury o 0,5 stopnia. Mam nadzieję że mnie rozumiesz. Też piszę w Bascomie może niezbyt...
Witam. We wstępie chciałem zaznaczyć, że szukałem podobnych problemów, lecz bezskutecznie. Mój problem polega na tym, że po wgraniu poniższego kogu do mikrokontrolera atmega8, na wyświetlaczu LCD wyświetla się napis "*temperatura* wynik: -0,1 stopnia C", brak reakcji na zmiany temperatyry czujnika cały czas -0,1stopnia. [syntax=basic4gl] $regfile...
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?...
Jeszcze się zastanawiam, czy nie lepiej będzie zamiast Lsb i Msb odczytanej temperatury pobierać obliczoną wartość przed przecinkiem i po przecinku ? Tzn. wynik pomiaru temperatury będzie przesyłany przez RFM12 - chyba prościej będzie mieć gotowe, czyli wysyłam: Dodano po 4 Jednak coś nie tak jest. Zrobiłem to tak: Dodano po 2 Nie rozumiem. Po dwóch...
Jak na razie niewiem w jaki sposób w AvrStudio odwołać się do tych plików typu ds18b20 itd... W pliku głównym są do nich odniesienia natomiast jak to wstawić do programu? W jaki sposób mam to "przerobić" ?. Kolega Piotrva na Priv podpowiada aby to skompilować w AS 4.18 ja używam 4.14 i myślę że program (AS) jest ok. Podpowiada też aby ustawić na mega8....
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...
VCC do +5V, DQ do P2.5, oraz rezystorem (4k7) do +5V, GND do masy. Gdy podłanczam 2 czujniki łącze je rownolegle DQ obojga czujnikow na jednej lini p2.5 Dodano po 1 Witam juz rozwiazalem problem :) tak krecilem az sie udalo :) w sumie sam nie wiem co bylo nie tak. Dla osób ktore mają podobne problemy daje kod ktory na 1000% dziala Deflcdchar 1 , 4 ,...
Witam. Jestem nowy na forum i nie mam zbyt duzego doświadczenia w programowaniu mikrokontrorów wiec z gory przepraszam za błedy. Otóż mam do napisania projekt w którym mam DS18B20i za nic w swiecie nie moge dokonać odczytu z czujnika. Analizowałem datasheeta dosc dlugo i nie widze błedu.Przegladałem również tematy na forum, próbowałem różnych rzeczy...
Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wejcia magistrali 1-wire Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Napis As String * 5 'Deklaracja wszystkich zmiennych potrzebnych do pracy programu Do 1wreset 'reset...
Witam Odczyt i konwersja jest w pętli głównej.;) Na samym początku("Change Resolution") jest zmiana rozdzielczości czujnika. Do komputera raczej nie jest potrzebna dokładność do trzech czy czterech miejsc po przecinku. Zmianę tą starczy wykonać na samym początku programu, nie ma potrzeby wciskania tego do pętli. Źródło stąd: Co do poleceń wait, może...
U mnie przez ostanie latata trafiło się, że parę sztuk gdzie pokazywało temperaturę co pół stopnia-jaka by nie była temperatura to tylko x.0st lub x.5st Nigdy nie trafiło się żeby nie działały.
Witam Wczoraj zakupiłem sobie czujnik ds18b20 miał być ds1820 o czym dowiedziałem się dopiero w domu po nieudanej probie odczytu temperatury. Kod który użyłem pochodził z książki M. Wiązani. (niżej go zamieszczam). i tak po połączeniu wszystkiego wg. schematu dostałem odczyt temperatury -52 st. C co jest absurdem bo powinno być ok. 20 - 21 st. C i tak...
Zastanawiam się, co tak właściwie oznacza katalogowa informacja na temat dokładności pomiaru czujnika DS18b20. Dla ustalenia uwagi załóżmy, że karta katalogowa mówi o dokładności +/-0,5 stopnia. Z drugiej strony sam czujnik zwraca wynik z rozdzielczością 1/16 stopnia. Pytanie jaka jest charakterystyka tej niedokładności i jak to się przenosi na oczekiwaną...
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...
Witam. Koledzy niby prosty układzik między innymi z czujnikiem temperatury DS18b20. Nijak nie mogę uruchomić tego czujnika. Sprawdziłem wszystko pod kątem połączeń zwarć i zimnych lutów. Ba nawet czujnik podmieniałem i nadal temperatura odczytana z czujnika to -0.1. Wiem że mam jakiegoś babola w programie którego nie widzę. Jak znam życie to jakiś banał...
Mam taki kod: "Config Lcd = 16 * 2 Config 1wire = P3.4 Dim Bd(9) As Byte Deflcdchar 0 , 24 , 24 , 32 , 32 , 32 , 32 , 32 , 32 Cursor Off Dim T As Integer Dim Ulamek As Integer Cls Do Gosub Ds1820 Locate 1 , 1 Lcd T ; "," ; Ulamek ; Chr(0) Loop End Ds1820: 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 250 Waitms 250 1wreset 1wwrite &HCC 1wwrite &HBE Bd(1)...
Ale mam jeszcze jedno pytanie do zumka:) Mierzę według powyższego kodu i LCD wyświetla mi np. 22,2 stopnia, 23,3 stopnia itd. W czym mi się wydaje że jest błąd: stopnie całkowite wyświetla prawidłowo (patrząc na zwykły termometr umieszczony obok), ale dziesiętne wydaje mi się, że kopiuje ostatnią całkowitą:cry:
Witam! Moze mi ktos wytlumaczy co robi taki kod w picbasic? Miejsce podkreslone. Usiłuje obliczyć cyfrę po przecinku ale robi to z błędem. Tu jest także drugi błąd, przy temperaturze ujemnej będą wyświetlane jakieś dziwne wartości. Wartości w zmiennej temp są zapisane w kodzie U2, z powielonym bitem znaku. Przed przetwarzaniem na część całkowitą i...
Witam Mam problem ze skompilowaniem w Bascom 8051 procedur do DS18B20 'program obslugi termometru DS18B20 ' $regfile = "89c4051.dat" 'P3.7 - magistrala 1wire ( do termometru ) 'P3.5 - przycisk zwiekszajacy temperature 'P3.4 - przycisk zmniejszajacy temperature 'P3.2 wyjscie termostatu ( np. do sterowania grzejnikiem ) 'uwaga:...
Witam Mam Problem Z Napisaniem Programu Do Atmega8. A Mianowicie Sprawa Wygląda Tak: Każdy ds18b20 Podpięty Do Innego Portu. I Chcę: 1. Zrobić Alarm Po Przekroczeniu Określonej Temperatury: a) W Miejscu Danego Czujnika np. 2 Zamiast Temperatury Wyskoczył Napis "GORĄCO" i Po Chwili Zniknął i Pojawiła Się Temperatura i Znowu Napis "GORĄCO" I tak W Kółko...
Witam... Na tym dziale piszę pierwszy raz i mam wielką prośbę do was. Zbudowałem układ z tej strony: Wszystko fajnie ale wyświetlacz mi nawalił i potrzebuję chętnego który za 50pk. :) napisze program do Bascom który w tym układzie(płytce) bez potrzeby wyświetlania na wyświetlaczu będzie uruchamiał wentylatory przy 40 stopniach. ATtiny2313 po przekroczeniu...
Właśnie doczytałem się w dokumentacji - w czasie konwersji temperatury i operacji na EEPROMie ds18b20 (inne ds18x20 pewnie podobnie) potrzebują wydajniejszego zasilania niż przy pozostałych zadaniach (search ROM, match ROM, read scrachpad etc.). Dallas zaleca podłączanie termometru bezpośrednio pod zasilanie w czasie tych "męczących" operacji jeśli...
Witam Zrobiłem termometr na Ds18b20 i wynik wyświetlany jest na 3 wyświetlaczach 7 segmentowych Led. Dodatnia temperatura działa bardzo dobrze jednak gdy pojawia się ujemna temperatura poniżej - 10 stopni na wyświetlaczach pokazują sie same 8 8 8 . Może to dlatego że pojawia się - ? Nie wiem jak w bascomie można napisać moduł z liczby np. |-10| = 10...
Program wygląda dużo lepiej. I = 1wread(2) pobiera dwa bajty w których znajduje się temperatura. Polecam zajrzeć do karty katalogowej DS18B20 str.4. W I znajdzie się liczba 16 bitowa, gdzie pierwsze 4 bity to znak, następne 8 bitów to część przed przecinkiem, a cztery ostatnie to to co po przecinku. Liczby ujemne są w kodzie U2. S = I / 16 Powyższe...
Wiesz 0.5 stopnia to nie taka mala dokladnosc jesli nie dzialamy w warunkach laboratoryjnych. Miec te 0.5 stopnia a nie miec na koszt szybkosci ktorej i tak nie zauwaze to jednak jest oplacalne.
Witam Napisałem następujący program.... temperaturę wysyłam w stopniach fahrenheita Sub Ds18b20 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt(1) = 1wread(2) T = Odczyt(2) Shift T , Left , 8 T = T + Odczyt(1) T1 = T * 0.0625 T2 = T1 T1 = T2 / 5 T2 = T1 * 9 T1 = T2 + 32 End Sub zmienną...
Witam Chcę przedstawić konstrukcję termostatu 4 Kanałowego z wyborem trybu pracy. Układ wykonany na Atmega 32 a program napisany w poczciwym Bascomie. Wyświetlacz ma 4 wiersze po 20 znaków Zastosowane czujniki temperatury firmy Dallas DS18B20 Sterowanie jest za pomocą 4 przycisków (menu, up, down, set) i 4 dodatkowych szybkiego dostępu z prawej strony....
Ja natomiast skorzystałem z gotowca :oops: z tej strony. Oto i on : 'program obslugi termometru DS18B20 kompatybilnym z DS1822 'uwagi i komentarze prosze mailem mariuszk(at)altkom.com.pl 'Mariusz Ksiezak Config 1wire = P1.0 'konfiguracja magistrali 1wire Config Lcd = 16 * 2 'konfiguracja wyswietlacza Deflcdchar 1 , 4 , 10 , 4 , 32 , 32 , 32 , 32 , 32...
1wreset 1wwrite &HCC 1wwrite &H44 Wait 2 1wreset 1wwrite &HCC 1wwrite &HBE Bd1(1) = 1wread(9 , Pind , 7) 1wreset Tmp1 = Makeint(bd1(1) , Bd1(2)) tak pobiierznie wygląda odczyt z ds-a i wynik dzielisz przez 16 i wynik masz w stopniach i niema bata zeby to nie działało bo na moje to troche namieszałes bo po co ta petla do - loop w srodku odczytu z ds-a...
to mi się chyba ten scalak rozkalibrował dość nietypowo :). mierzy teperature od -64 do 64 gdzie zero to jest 128 :) i tak mniejwiecej reszta dobrze. co 0.5 stopnia. Czy da się jeszcze mu jakoś pomuc czy musze go poprostu uczcić minutą ciszy i zabrać się za następnego. Czym mogło być to spowodowane? linie mam tylko przez rezystor do plusa bez trazystora...
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...
Nie bardzo wiem jak zapisac w eepromie dwa dowolne bajty w komorkach Tl i Th i jak je pozniej odczytac i czy musze wysylac od razu 3 bajty (DS18B20) łącznie z bajtem konfiguracyjnym Nie mam miejsca na dodtakowy eeprom a chce zbudowac termoregulator na 2051 z nieulotnymi ustawieniami oto moj program (przynajmniej częsc) 'zapis do eeproma przy wyjsciu...
Witam ! DS18B20 jest fabrycznie ustawiony na rozdzielczość 0,0625 stopnia co wymaga czasu pomiaru min 750 ms, Zaś w programie jest 500 ms. Próbowałem u siebie DS18b20 na atmega 16, kwarc 16MHz. Korzystałem z przykładu z książki pana M.W. Niestety pokazywał błędną temp gdyż to jest przykład na DS1820. Więc napisałem sobie wszystko w asemblerze i działa...
Witam Zaczynam trenować mikrokontrolery i programowanie. Próbowałem w asm ale jakoś ciężko - próbuje teraz w bascomie - i też ciężko niestety :( znalazłem jakiś przykład programu w bascom ale coś mi nie hula. pawełJ Ten Twój program nie jest pod 18b20. Podawane są różne sposoby przeliczania temperatury, sam jestem ciekawy który jest poprawny i poprawnie...
Witam... mam do atmegi8 podlaczone 2 DS18B20 , z tym ze jeden wlutowany obok AVRa , a drugi na 2 metrowym przewodzie... zasilanie normalnie (znaczy NIE pasozytniczo).. w tej chwili pokazuje mi wartosci (wlutowany obok avr: 21,8C , na kablu 24,3C ... a leza obok siebie.... nie rozumiem czemu :) :) to jest duzo wiecej niz te pol stopnia precyzji,,,
chce mierzyc zmiane temperatury co 0.01. che wykrywac takie zmiany temp. np mam 36.67 i zmienia sie na 36.68 <- i to chce obserwowac nie moze byc np 36.63 a potem skok do 36.65, bo to byloby 0.02. /zakladajac bardzo wolny proces zmiany temp/ np ds18b20 ma dokladnosc +- 0.5 stopnia i rozdzielczosc 0.0625 stopnia /przy 12-bitowej rozdzielczosci/ a...
Kwatrylion razy na forum ale cóż... Wrzuć ten program i zobacz czy dziala. P. S. chyba nie muszę wspominać o zmianie podlaczenia lcd itd. $regfile = "m32def.dat" $crystal = 8000000 Config Lcdbus = 4 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Pb.4 , Db5 = Pb.5 , Db6 = Pb.6 , Db7 = Pb.7 , E = Pb.3 , Rs = Pb.2 Config 1wire = Portb.0 ' termometr...
Utrudniasz sobie zycie niesamowicie tym twoim programem. Niepotrzebnie pakujesz się w przerwania. Tutaj masz chyba najprostsza wersje kodu: $regfile = "m32def.dat" $crystal = 16000000 Config Lcdbus = 4 Config Lcd = 24 * 2 Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2 Config...
Witam! W zeszłym roku był na ten temat topic. Termometr 4 punktowy DS18b20 by Duch na podstawie materiałów znalezionych w sieci 'Kontakt duszkowski(małpa)o2.pl $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja...
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...
Zbudowałem układ, który mierzy temp. z trzech ds18b20 i wyświetla na lcd. Problem zaczyna się gdy włączę przerwania od timera0 (który tylko w tle odmierza sobie odcinki czasu po 8ms), a mianowicie mierzona temperatura jest nie prawidłowa a później zaczyna się krzaczyć lcd. Ma to być sterownik pieca CO więc potrzebuję odliczać krótkie odcinki czasu na...
Pisze w temacie, że chodzi o termostat oparty na ds18b20 oraz medze8. Serdeczne dzięki za odpowiedź. Jestem w temacie bascoma nie najlepszy. Poprawiłem delikatnie kod i wygląda na to, że już się kompiluje w miare. Za jakiekolwiek inne sugestie będe niezmiernie wdzięczny. $regfile = "m8def.dat" $crystal = 8000000 Config Lcdbus = 4 Config Lcd...
Witam na potrzeby szkolne stworzyłem termometr na układach Attiny 2313 i Dallas 20b18 Interesuje mnie w jaki sposób odbywa się odczyt temp. z czujnika Dołączam program z bascomAVR $regfile "2313def.dat" *Nazwa pliku doobsługi programu $crystal = 1000000 *Częstotliwosc taktowania 1Mhz z dokumentacji układu Config Lcd = 16 * 1a *Deklaracja LCD...
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...
Witam. Mam taki oto program do pomiaru temperatury przez DS18B20 i wyświetleniu jej na 14-sto pozycyjnym wyświetlaczu 14-sto segmentowym: '-------------Zegar Kalendarz 14-segment LED-" 'opis złącza ISP 'czerwony - "+" 'zielony - RESET 'biały - MISO 'niebieski - SCK 'brązowy - MOSI 'czarny - "-" '------------dyrektywy dla kompilatora--------"...
$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) 'Deklaracja portów od wyświetlacza LCD Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5 Config Lcd = 16...
To mój plik z obsługą 1Wire [syntax=c]/*ds18b20.c*/ #include <avr/io.h> #include <util/delay.h> #include "ds18b20.h" #include <avr/interrupt.h> /*RESET*/ unsigned char uc1Wire_ResetPulse(void) { unsigned char ucPresenceImpulse; OUT_1WIRE_LOW; DIR_1WIRE_OUT; cli(); _delay_us(500); sei(); DIR_1WIRE_IN; cli(); _delay_us(45); sei(); if(bit_is_clear(PIND,PIN_1WIRE))...
Moderator napisał że: WOBI napisał: ...Tu masz przykład kodu trochę bardziej zaawansowanego, A w którym to miejscu, ten kod jest tak bardzo zaawansowany Proszę nie mówić mi że tak napisałem :) i być obiektywny jak na moderatora przystało ;) Tak przeciez napisałem "trochę zaawansowany" a nie "bardzo zaawansowany" ;), miałem na myśli " trochę zaawansowane"...
Witam. Napisałem taki program lecz mieszkam w internacie i nie mam przy sobie fizycznie układu. Proszę kolegów o teoretyczne sprawdzenie programu, czy dobrze to zrozumiałem. Pozdrawiam [syntax=basic4gl] ' Termometr DS18B20 $regfile = "m8def.dat" $crystal = 8000000 Config Lcdpin = Pin , Rs = Portc.5 , E = Portc.4 , Db4 = Portc.3 , Db5 = Portc.2 , Db6...
Witam Mam pewien problem, chciałbym żeby w moim termometrze kiedy temperatura z pierwszego czujnika zejdzie poniżej 2 st zapalała się dioda podłączona do portd.0 Zrobiłem warunek, niby działa, ale tylko dla 0, kiedy wpiszę zero dioda się zapała, ale wszystko powyżej zera i dioda stoi w miejscu... (temp w pokoju 22st) Druga sprawa to jak zrobić, żeby...
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ą...
Witam, chciałbym zbudować(zrobić?) swój pierwszy układ na mikrokontrolerze Attiny2313 - chcę aby był to termometr(najprostsze :D). Znalazłem na elektrodzie program do Attiny2313(niżej), tylko że nie było tam schematu. Czy mógłby mi ktoś narysować(?) schemat. Z góry dziękuje Program: [syntax=basic4gl]$regfile = "ATtiny2313.dat" $crystal = 1000000 Config...
Witam Zaczynam zabawę z z atmegą 16 i czujnikiem DS18B20 i mam jak każdy na tym forum mały kłopot. Czujnik podłączyłem dobrze układ mierzy mi temperaturę ale dopiero od 30 stopni. zaraz po wgraniu pokazuje - 0.1 stopni a gdy czujnik dotykam temperatura się zmienia na 31 stopni gdy puszcze powraca do -0,1. Program: Poprawiono tytuł, LordBlick
Witam. A ja wiem, iż DS18B20 mają tolerancję +- 0,5 stopnia. Sprawdzałem z termometrem fabrycznym (elektronicznym) w zakresie 10 - 30 stopni.
Witam, Dawno nie korzystałem z BASCOM'a, więc nie pamiętam już składni, ale algorytm jest następujący: 1) zapisujesz sobie w zmiennej temperaturę w stopniach 2) wykonujesz dzielenie całkowite temperatury przez 10 -> otrzymujesz cyfrę dziesiątki, zapisz do zmiennej x 3) wykonujesz dzielenie modulo temperatury (reszta z dzielenia) przez 10 -> otrzymujesz...
Mam problem z pomiarem temp na ds18b20. Ten sam problem występuje na attiny2313. Na podłączeniu "zwykłym" działa a jak podłącze wyświetlacz LCD przez I2C to na wyświetlaczu wyświetla się Temp: -MMM... i tak w nieskończoność czasami jest to -2M..., -B... , -(at)... Jestem początkującym więc proszę o wyrozumiałość :D Kod który działa prawidłowo: [syntax=vbnet]...
Podłączając czujnik trzymałeś go w palcach, więc się ogrzał. DS18B20 myli się o nie więcej niż 1.5 stopnia, o ile pamiętam.
Przepraszam, ze odgrzewam temat. Chcialbym sie upewnic. Zrobilem uklad z karta sieciowa i paroma innymi elementami. Wszystko dziala. Moj problem polega jednak na czyms innym. Bardzo czesto temperatura z DS18b20 wskazuje na 6.6 stopnia. Co kilka pomiarow. Spotkal sie ktos z takim zjawiskiem ? Czy to moze byc uszkodzony czujnik temperatury ? 3.1.19. Nie...
Zlecę wykonanie rejestratora temperatury ok. 100 czujników DS18B20 z rozdzielczością 0,5 stopnia odczyt co 10-15 minut pogrupowanych w grupy po 10 czujników ( ze względu na okablowanie ) . Nadanie nazwy własnej czujnika Rejestracja z zapisem czasu rzeczywistego pomiaru , zapis do formatu umożliwiającego szybkie robienie wykresów porównawczych zapisów...
dziękuję za podpowiedź ale zostanę już przy arduino (pomału zaczynam ogarniać kuwetę). potrzebuję rozwiązać problem pomiaru z ds-ów. Dodano po 13 wymotałem taki kod [syntax=c]#include <DallasTemperature.h> #include <ESP8266WiFi.h> #include <WiFiUdp.h> #include <OneWire.h> #define ONE_WIRE_BUS 0 OneWire oneWire(ONE_WIRE_BUS);...
Witam. Jakiś czas temu zrobiłem koledze sterownik w zasadzie wentylatora do pieca. Sterownik w sumie działa według założeń ale czasami dostaje szajby. Do tej pory nie znalazłem przyczyny. Skłaniam się bardziej ku temu że jest to jakiś problem z programem. Problem jest taki że czasami po jakimś czasie wartości temperatur odczytywanych z czujników DS18B20...
Może masz jakiś lewy DS18B20, spróbuj użyć konwertera poziomów logicznych, zasilasz DS normalnie z 5V, podciąganie ~2k podłączasz po stronie niskiej, ~5k po stronie wysokiej, GND wspólne. No i popatrz na zwykłym UNO/NANO 5V czy odczyty są racjonalne. Kupiłem kiedyś kilka DS, które zachowywały się bardzo dziwnie, odczyty skakały po pół stopnia co 1s,...
Problem jest taki że nie jestem programistą. Potrafię na tyle logicznie myśleć aby poskładać gotowe elementy, na życie zarabiam naprawiając elektronikę jak i administrując serwerami windows/linux. PDF też potrafię czytać, gorzej z przełożeniem tej wiedzy na kod. Dlatego długo szukałem "gotowca" z tymi funkcjami i.... zonk. Ale przecież bierzesz się...
ERRATA: rozdielczość 1/16 a nie 1/61 stopnia. Tak to jest jak się jedną ręką smaruje program a drugą posta :-)
Szukam pomocy w sprawie ustalenia błędu z DS-em Problem polega na tym że zawsze odczyt wynosi 255 (bajt 1 i 2) Kożystam z oscylatora wewnetrznego 8MHz, podciąganie do plusa Jest to już 3 dallas jakiego zamontowałem a problem wciąż ten sam... jestem bliski desperacji i będę bardzo wdzięczny za pomoc Z góry dziękuję A oto program $regfile = "8535def.dat"...
Dim Temp As Integer Dim C3 As Integer Dim Zmienna_temp(8) As Byte Config 1wire = P2.3 1wreset 1wwrite &HCC 1wwrite &H44 wait 1 1wreset 1wwrite &HCC 1wwrite &HBE Zmienna_temp(1) = 1wread(8) C3 = Zmienna_temp(1) And 1 If C3 = 1 Then Decr Zmienna_temp(1) Temp = Makeint(zmienna_temp(1) , Zmienna_temp(2))...
no tak przy 7 stopniach to łatwo nawet na oko zobaczyć odrazu który się zapsuł. .... ale hmmm tzn, że te dallasy są takie zawodne ?
Ja rozwiązałem ten problem w następujący sposób: unsigned short int odczytaj_temp(void) { unsigned char temp1, temp2; unsigned short int tmp1, ulamek, t; wire_reset(); wire_write_byte(0xcc); // pomin czytanie nr wire_write_byte(0x44); // nakaz pomiar temperatury _delay_ms(800); // czekaj na przetworzenie...
Chciałem podłączyć 2 czujniki jak w temacie. Kiedyś wyczytałem że można podłączyć je na osobnych portach i w trakcie programu po poleceniu config 1 wire przełączać z którego chce się robić odczyt. Napisałem prosty program i niestety prawie działa. Mimo polecenia 1 wire z kolejnym portem odczyt robiony jest tylko z jednego. Najdziwniejsze że jest to...
I tu się mylisz kolego - w przypadku DS'a dokładność ma cholerne znaczenie. Oczywiście nie twierdzę, że nie da się tego zrobić na delay'ach - też zaczynałem od takich funkcji znalezionych w necie. Jeżeli chodzi o 1wire trzeba wstrzelić się w okienko rzędu kilku(-nastu) us. Robiąc to na delayach czasy trzeba dobierać eksperymentalnie (bądź za pomocą...
Z dwojga zlego wole zegar 4MHz... Zmienilem wewnetrzny oscylator na 4MHz i zmienielem w deklaracji: #define F_CPU 4000000UL #define CYCLES_PER_US ((F_CPU+500000)/1000000) // cpu cykli na mikrosekunde ...teraz w ogole nie wykrywa mi czujnika. Zumek ratuj, Ty umiesz nawet z fusów wróżyc. :D O czym zapomnialem? ----------------------------------------...
Nie, nie lutuję do kabli tylko przykręcam do złącz ARK Oto program: $crystal = 4000000 'deklaracja częstotliwości pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program Deflcdchar 1 , 14 , 17 , 17 , 14 , 32 , 32 , 32 , 32 ' definicja znaki stopnia Config 1wire = Portd.5 ' konfiguracja portu PD.5 jako wejścia magistrali...
Ciekawostka wstawiajac w miejsce "Shift T , Left , 8 " zamiast 8wstawiam 9 uzyskujemy -16.1 stopnia czy jest czujnik czy go nie ma ale jesli zewre DQ czyli wejscie/wyjscie z ukladu z masa uzyskuje 0.0 stopnia z czujnikiem tak samo:) Dzieje się tak ponieważ różnie to przeliczasz. Nie mając kontaktu z czujnikiem i tak nie ma to sensu. Podłączenie ds-a...
a jeszcze jedno pytanie czy nie prosciej i taniej zastosowac wyświetlacz np od 3310?? 'ladowanie biblioteki rejestrow dla ATMEGA8 $regfile = "m8def.dat" 'deklaracja kwarca (wewnetrzny 1 MHz ) $crystal = 1000000 'konfiguracja polaczeń LCD oraz wybor typu Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portd.6 , Db6 = Portb.2 , Db7 = Portb.1...
Lubię ASM, ale żeby do tego stopnia liczyć czasy ... nie przesada? Wiem, że 1-Wire jest wymagający pod tym względem ;) ---- Temperatura.h ----------------------------------------... 8: { +000006F4: 9A8F SBI 0x11,7 Set bit in I/O register 13: OW_PORT &= ~(1<<OW_DATA); +000006F5:...
Tutaj masz wszystko... 'Program sterowania dwoma układami DS1820 dołączonymi 'do tej samej magistrali 1-Wire $regfile = "m8def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera $crystal = 8000000 'informuje kompilator 'o częstotliwości oscylatora 'taktującego mikrokontroler Config Pinb.1 = Input 'linia PB1 jako wejściowa Config...
Jakoś nie spotkałem sie z takimi zjawiskami. Mam czujniki z róznych serii nawet z 1995 roku i wszystki wskazują jednakowo (w granicach tolerancji max 0.8 stopnia różnicy. Terstuje poprzez podłączenie 10-20 czujników równocześnie. Dobry termometr labolatoryjny kosztuje koło 100zł - taki masz?
Witam, postanowiłem zbudować termometr w oparciu o popularny czujnik DS18B20 i procesor attiny2313. Układ zmontowałem zgodnie z poniższym schematem ścieżek: Kod programu wygląda następująco : $crystal = 4000000 'deklaracja częstotliwo�ci pracy kwarcu $regfile "attiny2313.dat" 'model procesora dla którego jest ten program Deflcdchar...
Witam, jako, że kończą się wakacje postanowiłem udoskonalić trochę soft piórnika - chcę dodać odczyt temp., tylko nie wiem gdzie ją umieścić. '***************************************... '* Program Piórnik Mini wersja 1.0 Beta *' '* Pomysł: FICU *' '* Programista: Jacek R (Black Jack) Kompilator:...
Witam mam taki problem potrzebuje zrobić znak stopnia w C (małe kółeczko :) ) napisałem program na ds18B20 w C Dodano po 50 Dodaje że znaczek ten ma się wyświetlać na LCD
Witaj! 85 stopni też mam tak często jak odepnę czujnik, ale po wpięciu spowrotem pokazuje ok, (aktualnie w Lublinie -15,5 stopnia ;) ) więc wychodzi na to, że albo masz przerwę gdzieś, albo faktycznie czujnik jest trafiony. Pozdrawiam
Witam. Nie pisałbym tego postu gdyby wszystko było w porządku ale niestety nie jest. W czym problem : A wiec, posiadam ATmega8 na 8Mhz wewnętrznym oscylatorze uisp -dprog=stk200 --erase --upload if=program.hex --verify --wr_fuse_l=0xe4 oraz czujnik DS18B20 podpięty pod PC2, linia danych podpięta przez rezystor 4.7k do Vcc, zasilanie pasożytnicze, (...
no spoko ja ma ustawioną rozdzielczość 9 bitów wiec temperatura zmienia się co 0,5 stopnia ale było by miło wyświetlić np 20,5 jeśli możesz udostępnić przykład takiego przeliczania to ja poproszę :)
Witam, układ 1-wire, DS-y w odległości 2 cm od siebie, mierzona temperatura różni się od 0,8 do 1,0 stopnia celesjusza. Aż taki rozrzut jakości elementów ? Jutro kupię kolejne DS-y i podmienię - jestem ciekawy. Fragment całości kodu: 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 250 : Waitms 250 : Waitms 250 : Waitms 250 1wreset 1wwrite &H55...
A czy ta twoja konwersja temp ci dziala? Bo u mnie wyświetla teraz 4095,94 stopnia :)
Witam, zmieniłem trochę program oraz czujnik w tryb parasite power . Sytuacja trochę się poprawiła ale niewiele . Czujnik cały czas pokazuje temperaturę 128.0 stopni . Na początku jak dałem mu za mały czas po komendzie konwersji (0x44) to podawał 85.1 stopnia czyli jak to było gdzieś już powiedziane na forum to nie wyrabiał się z konwersją . Po zwiększeniu...
Witam ponownie. Rozwiązałem problem. Poniżej przedstawiam kompletny program do obsługi dwóch czujników DS18B20 bez używania komendy waitms 750. Procek w tym czasie może robić co chce :) Program oczywiście łatwo można dostosować do dowolnej liczby czujników. '''''''''''''''''''''''''''''opis wejść''''''''''''''''''''''''''''' 'temperatura -> Portc.0...
Oj, z dokladnoscia lepsza niz 0,5 stopnia to bedziesz mial problem. Ciut lepsza w niektorych zakresach ma SHT75. Jak potrzebujesz lepszej to chyba tylko jakas kalibrowana termopara - z tym, ze powstaje problem gdzie kalibrowac. Domowo to raczej bardzo trudne o ile wogole mozliwe.
zdebel tak znikł ten warning. piti___ niestety teraz dostaje inne bzdury... 4095,9 stopnia flapo213 po twoim poście postanowiłem dokładnie przeryć datasheeta i napisać od początku po swojemu procedure obsługi ds18b20. oscyloskopu nie mam i nie bede miec z kilku powodow a najpowazniejszy to $$$. oto napisana przezemnie od poczatku procedura obsługi z...
witam mój problem jest tego typu, że ma termometr, który wykorzystuje właśnie18d20 i wyświetla temperaturę na lcd tylko że nie liniowo;/ co jest nie tak podłączony jest przez rezystor podciągający a o to jak wygląda kod programu $regfile = "m8def.dat" ' zdeklarowane dla Atmegi8 $crystal = 8000000 ' Taktowanie wewnetrzne 1mHz Config 1wire =...
a po co ci takie duże zmienne uint16_t decicelsius; uint16_t subzero, cel, cel_frac_bits; tam zdaje sie powinny być unsigned char no i tu hd44780_putInt((decicelsius/100), 10,0); chyba powinno być (decicelsius/10) - jak sama nazwa wskazuje decicelsius zwraca wartość w dziesątych stopnia np. 26.5°C -> 265
Funkcje do obsługi DS'a #include <avr/interrupt.h> #define DQ 0 // pin danych in/out interfejsu 1-WIRE #define SET_DQ DDRD &= ~_BV(DQ) #define CLR_DQ DDRD |= _BV(DQ) #define IN_DQ PIND & _BV(DQ) //funkcja delay void owire_delay(unsigned int __count) { __asm__ volatile ( "1: sbiw %0,1"...
Witam Próbuje od parru godzin rozszyfrować problem z brakiem komunikacji po 1wire 3 przewodowej , opornik 3.3k jest wersja Kod nawet z książnik nie działa na 3 różnych ds sprawdzane? może dlatego że Vcc z gdn zostało pomylone? ; Bascom 1.11.7.4 Kod: 'Program obsługi jednego układu DS1820 dołączonego 'do magistrali 1-Wire $regfile = "m8def.dat"...
Ewidentnie brakuje jednego bitu (piątego, nr. 4 licząc od 0). Dlatego zamiast 31 (16+15) wyświetla się 15 (brakuje 16, czyli 2^4). Jakaś pomyłka w kodzie. Nie chce mi się analizować twojego kodu. Dodano po 4 Mam tu jakiś kod ze szkolenia napisany przez jednego z moich kursantów. Atmega16, hd44780, DS18x20. Zobacz jak wygląda konwersja temperatury. I...
Witam, jeszcze proszę praktyczne rozwiązanie takiego problemu, gdyż program jest praktycznie ukończony, ewentualnie drobne poprawki kosmetyczne:), ale w obecnej wersji odczyt i zapis wykonywany jest z poleceniem "wait", przez co wskazywane temperatury nie są czasem poprawne - wyskakuje BRAK ds'a. Już nie mam pomysłu jak to zrobić, proszę tylko o jakieś...
W schemacie pominąłem zasilanie i podłączenie LCD. Kod: (został wzięty z książki M. Wiązania - "Programowanie mikrokontrolerow AVR w jezyku Bascom", usunąłem kod od obsługi LCD bo mam go ustawionego w bascomie) $regfile = "m8def.dat" $crystal = 8000000 Config 1wire = Portc.5 'konfiguracja linii magistrali '1-Wire Declare Sub Odcz_temp 'procedura...
Zresztą każdy z języków programowania jest tylko tak dobry jak programista, który nim włada ;) I tu jest właśnie sedno problemu. Co z tego, że biblioteka BASCOMa jest doskonale napisana i świetnie działa, jeśli korzysta z niej ktoś zupełnie zielony i sknoci program? Obsługa 1-wire jest tak banalna, że mogę się spokojnie założyć o cokolwiek, że ktoś...
no tak, ale to tylko w przypadku jeżeli wyświetlacz pełni tylko jedną funkcję - termometru. Ja na swoim wyświetlaczu w zależności od wyboru z menu chcę mieć możliwość zmiany wyświetlanych informacji np. zegar/termometr po naciśnięciu przycisku. Więc w zależności od wartości przycisku przypisuję do zmiennych zn1..zn8 wartości z zegara bądź termometru,...
Skrętkę UTP5e, ale nie puszczałem tego równolegle do kabli sieciowych. Faktem jest, że w środowisku o dużych zakłóceniach może być różnie, ekranowanie powinno w jakiś sposób pomóc. Oprócz CRC można także poprawić odporność na zakłócenia poprzez odpowiednie samplowanie linii i robienie np. majority voting - najprościej to zrobić implementując OW przy...
Dzień dobry, Zbudowałem termometr cyfrowy oparty na układzie Atmega8 i czujniku DS18B20. Do tego podpięty jest wyświetlacz LCD. Termometr "pamięta" i wyświetla temperaturę maksymalną i minimalną z ostatnich 12 godzin. Do tego wszystkiego podłączyłem diodę RGB tak jak na schemacie: Zadaniem diody jest świecenie w zależności od temperatury, czyli jak...
Jak dokładnie musi być mierzona temperatura? Inaczej co to za proces, że wymaga do podjęcia decyzji dokładności do 1/16 części stopnia? Bo jeśli mogła by być dokładność pomiaru wynosząca 1 stopień lub 0,5 stopnia to mógłbyś znacznie skrócić czas pomiaru i zrobić na przykład pięć pomiarów i wyciągnąć średnią.
RAPELC Niby tak, ale czy potrzeba? Nie potrzebuje mierzyć z super dokładnością co do stopnia bo regulacja i tak powinna odbywać się co 20-30 częściej nie jest potrzebne żeby nie generować strat. Jeżeli dołożymy sterowanie po z PWM wówczas z tą charakterystyką robi się regulator proporcjonalny w efekcie: Jeżeli regulacja jest daleka od pożądanej to...
potencjometry na razie sobie odpuściłem na rzecz dodania zegarka i zmiany wyświetlania ekranów za pomocą guzików. Ale na tym stanąłem. Wiem że gosuby itp to nie najlepsze rozwiązania i to się właśnie teraz odbiło. Przełączanie działa ale jak się przełączy np na ekran zegarka to czas stoi. W sumie to domyślam się dlaczego - a no pewnie że odwołuję się...
Chyba wiem co jest źle, ale nie wiem jak to rozwiązać. Wstawiłem twój kod do odczytywania zawartości tablicy rom i nic. [syntax=c] for(i=0; i<8; i++) { char fff=0; fff=rom[1][i]; dtostrf(fff,3,1,buf); LCD_LOCATE(0,0); lcd_puts(buf); _delay_ms(500); LCD_CLEAR; } [/syntax] Po wykomentowaniu funkcji search_rom wyświetliło się 0.0, a przed nic. Znaczy,...
Podczepię się pod temat. Chciałbym podłączyć czujniki DS18S20 lub DS18B20 do interfejsu DS2490 (zgodnie z opisem na [url=]Link. W związku z tym mam kilka pytań. 1. Z tego co widzę w tym opisie potrzeba tylko dwóch żył - dwie zewnętrzne nogi się zwiera (masa) a druga to środkowa. Dlaczego więc ktoś poleca kabel trzyżyłowy? 2. Jaki w końcu przewód powinien...
"Pomiary w technice cieplnej" WNT 1974 Wyd. 2 Praca zb. pod red. prof. Feliksa Kotlewskiego i doc. Mariana Mieszkowskiego str. 136 Informacja do znaleznienia również w kilku póżniejszych pubilkacjach m.in. „Pomiary cieplne cz. 1” WNT 2001, T. R. Fodemski. Oczywiście zapomniałem dodać o wodzie destylowanej - za zwrócenie uwagi dziękuję. Wykonywałem...
Pozwoliłem sobie zamieścić przykład przeróbki "Ducha" na procesor atmega 32u4 z wyświetlaczem 2x16 i 4xDS18B20, Cały pic, to inne porty w tym układzie :) [syntax=basic4gl] 'Termometr 4 punktowy DS18b20 by Duch na podstawie materiałów znalezionych w sieci 'Kontakt duszkowski(at)o2.pl $regfile = "m32u4def.dat" 'informuje kompilator o pliku 'dyrektyw mikrokontrolera...
Raczej zwiększać jak już. Czujniki które ostatnio kupiłem podają wyniki co 0,5 stopnia tak wiec maja ustawioną rozdzielczość 9 bitów a te które miałem wcześniej podają dokładniejsze wyniki czyli są prawdopodobnie ustawione na 11 bitów. Fajnie by było żeby wszystkie były ustawione tak samo.
Witam od dłuższego czasu nie mogę sobie poradzić z kodem a mianowicie kiedy zostaje przekroczona temperatura włącza się alarm do tego momentu wszytko jest ok, problem jest w tym że nie wiem jak to zrobić tak żeby po wciśnięciu przycisku (mono stabilnego) i podaniu stanu wysokiego na pin 6 ,alarm się wyłączył naokoło 10 min ,ale tak żeby stan temperatury...
(at)nowyARM - też myślę że to jakiś błąd - ale w przyszłości nie stać mnie na takie "wpadki" - dlatego myślę o Pt1000. Problem dotyczył starej serii termometrów ale to właśnie wadliwe serie najprędzej można kupić u żółtych przyjaciół. W erracie producenta było napisane jakiej serii dotyczy i jak wykryć i ewentualnie ponownie zapisać poprawną kalibrację...
Tu masz dosyć starą (ale jarą) bibliotekę OneWire obsługującą kilka pinów procka: Ja jej co prawda używałem tylko w konfiguracji jednopinowej więc nie wiem jak się sprawuje w wielopinowej. Kurcze wertuję ją jak tu zrobić konfigurację pianową i przypisać piny do zmiennych ? No więc z przeglądu kodu (jak już mówiłem, nie korzystałem z niej w trybie multi...