Czy przypadkiem zmienna I nie zwraca ci temperatury ujemnej gdy ona występuje? Znak jest zawarty w drugim bajcie => patrz datasheet.
No nic dziwnego, w ustaw_czas robisz call do wys_czas który wbrew obiegowej opinii wyświetla temperaturę;] i... ustawia kursor kilka spacji za *C :) a potem sobie reta do ustaw_czas gdzie już jak widać LCD "Ustaw czas" :) Ot i tajemnica;] Pozdro ;] Dodano po 1 PS lowerline sux, ja bym używał locateów na twoim miejscu ;-) Poza tym funkcje są fajnejsze...
Zajrzyj też [url=http://www.elektroda.pl/rtvforum/to... Tu była podobna dyskusja na ten temat. Pozdrawiam
Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
wg helpa bascoma masz: Gosub podprogram 'wywołanie .... .... a oznaczenie podprogramu podprogram: .... .... Return sub wymaga wcześniejszej deklaracji i wywołania poprzez call poza tym możesz mieć kłopoty ze zmiennymi oznaczonymi samymi cyframi w załączniku masz termometr który zrobiłem dla koleżanki (robiony na szybko więc nie jest specjalnie zoptymalizowany)...
problem tkwi w tym, że program masz do obsługi układu DS1820, a podpięty masz DS18 B 20 (różnią się one rozdzielczością i sposobem zapisu temperatury w rejestrach). W internecie znajdziesz masę programów pod BASCOM i nie tylko obsługujących ten termometr.
Codziennie w tym dziale ktos zadaje pytanie dotyczace termometru na DS18B20. Moze jak Dallas przestalby wysylac darmowe probki to moze w koncu te pytania by sie skonczyly :D Poszukaj na forum bo takich zrodel i to w dodatku w Bascom'ie jest tyle, ze jakbys je wszystkie wydrukowal to spokojnie mozesz sobie nimi pokoj wytapetowac :D Ponawiam pytanie Balu:...
a 8MHz masz?:> Sprawdź PCB Rezystor 4.7kΩ masz na linii danych? Może podaj konkretnie co pokazuje sie na lcd. "Przyczepiliście się" :D do sprzętu , a żaden z Was nie zajrzał do kodu ;) A błąd ukrył się sprytnie , w deklaracji zmiennej T1 , która powinna być typu Integer , a jest ... :?: Piotrek
Przepraszam, że dopiero teraz ale jestem w delegacji. Minęły dwa dni a Twój termometr nie działa... Możesz słuchać każdego. Ja proponuję takie rozwiązanie które zajmuje dosłownie dwie minuty jeśli robiło się to wczesniej. Sprawa jest w pełni odwracalna. To nie ślub z kobietą :D Więc co szkodzi spróbować? Kiedyś może sam komuś pomożesz. Należy zacząć...
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...
Kasować licznik- a nie przerwania- na początek. Kasować licznik i musisz zastosować dwie flagi, inaczej nie da rady. Jedna sprawdzająca czy już możesz odczytać dane, drugie sprawdzająca czy już możesz wysłać żądanie odczytu:)
Kwarcu brak, pracuje na wewnętrznym oscylatorze. 100 ms niestety nie pomogło. A te kable to mogą być takie długie? Wiem, że dla 1 Wire moze być nawet 100 m a dla HD44780?
Jeśli chodzi o ID to chyba najprościej będzie zrobić funkcje i z głównego programu przekazywać do niej ID czujnika, natomiast funkcja będzie zwracać np bit 1/0 OK/ERROR. Podobnie chyba można zrobić z odczytem temperatury.
Problem jest w sprzęcie a nie w programie. W układzie brakuje kondensatorów ceramicznych 100nF na pinach zasilających uC, LCD, czujnika, wejściu ADC. Nie widzę też filtru na AVCC oraz jakiegokolwiek tantala/elektrolita na zasilaniu. Popraw zasilanie a zamiast analogowego czujnika użyj cyfrowego np DS18B20 na 1Wire.
Jak najbardziej tak.
Wklej komenty 1wire, bo ten fragment kodu nic nie mówi.
Witam. Sprawdź tutaj: http://www.elektroda.pl/rtvforum/topic57... No i spróbuj w opcji szukaj wpisać "ds1820 bascom"
Witam , miałem niegdyś podobny problem , tyle że działam w Bascomie , lekarstwem było przestawienie procka w fusebitach na częstotliwość 8 MHz.
tak, poprawilem to, ale pokazuje 0
zamykam temat:) dziękuje wszytki którzy się wypowiedzieli
Masz tu procedurkę odczytu i wyliczenia temperatury. Prościej się nie da. Nie wiem w czym piszesz, ale sama procedura (bascom) jest czytelna.
usunąłem jedno zero dalej lipa
Ups zapomniałem dodać, że chodzi tu o BASCOM AVR
Miałem problem z odczytem z 1 ds18b20 i problem tkwił w opóźnieniach (standardowa biblioteka nie jest najlepsza) http://www.elektroda.pl/rtvforum/topic98... nie jestem znawcą ale pomogło.
Witam wszystkich forumowiczów... Posiadam płytę ewaluacyjną AVT5311 na której znajduje się czujnik temperatury lm50 oraz układ mcp3021. Korzystając z wcześniejszych porad dotyczących odczytu temperatury z czujnika DS18B20 napisałem kod w bascomie. Oczywiście mam świadomość, że będzie on inny w moim przypadku. Natomiast nie mogę poradzić sobie w odczycie...
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ą...
czytałem wolniej i efekt ten sam:(
Trochę masz to dziwnie napisane jeśli chodzi o odczyt temperatury. Co jak czas masz odświeżanie pętli głównej ?. Używanie rozkazu Skip Rom to lipa trochę. Jeśli masz ochotę to popraw to trochę tzn. warto odczytać przy starcie numery seryjne termometrów jak masz dwa i nie chce Ci się implementować procedury automatycznego przeszukania to poprostu odczytaj...
Tylko jest jedno ale....Żeby skorzystać z tego luksusu (sprawdzanie statusu DS-a) trzeba zrezygnować z innego luksusu , jakim jest tylko 1 przewód i dołożyć zasilanie Vdd ,a to już 2wire :( Pozdrawiam Piotrek Sz. PS Można to wykorzystać nawet(?) w Bascomie.
Witam, Zgadzam się układ w takiej formie nie ma sensu, po prostu musiałem się cofnąć do wyświetlenia pojedynczych bitów z DS18B20 bo układ nie wskazywał poprawnie temperatury.
Gdybym wiedział jak to zrobić w bascom to bym Ci powiedział :(
Jezu, każesz mu najpierw zrobić stringa, potem go pochlastać, a potem z tego inta? Starryyyy BASCOM upośledza;/
Uściślijmy jeszcze czy w kodzie który działa też nie masz wartości $framesize, $swstack i $hwstack? Rzeczy należy eliminować sukcesywnie. Dopisałbym te brakujące rzeczy od razu zamiast je podejrzewać... !EDIT! Zapomniałem o tym a już się w tej sprawie kontaktowałem kiedyś z Supportem :D Słowo Hbyte jest słowem używanym przez wewnętrzne procedury Bascom....
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...
Problem polega na tym, że odczytujesz wartość ADC z uC zamiast z DS18xxx. Brakuje ci obsługi DS18B20. Poniżej fragment kodu działającego u mnie. [syntax=vbnet] Config 1wire = Portb.0 '0,1,2 NOP 3,4,5,6,7 works good ON MY Equipment Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms...
Z tego swojego kodu usuwasz "Odczyt numerów ID czujników temperatury" A w to miejsce wpisujesz odczytane adresy do tablicy z adresem danego czujnika. np. tak będzie to wyglądało dla pierwszego czujnika: Dsid1(1)=&H28 Dsid1(2)=&H65 Dsid1(3)=&HC3 Dsid1(4)=&H89 Dsid1(5)=&H05 Dsid1(6)=&H00 Dsid1(7)=&H00 Dsid1(8)=&H25
A może masz czujnik DS18B20, upewnij się że jest to DS1820. Ale dziwne, najpierw termometr działał poprawnie a później przestał. Zastanawia mnie jeszcze to że (jak piszesz) czujnik reaguje na zmiany temperatury bo zmienia się zmienna T1, a nie da się odczytać temperatury. Ciekawe w czym jest problem.
Wypadałoby wysłać do DS18b20 polecenie pomiaru temperatury:&H44 i zaczekać jakieś 700ms przed odczytem:?:
Niekoniecznie, możesz po resecie DS-a zmienić wyświetlanie na następną cyfrę i dopiero robić odczyt temperatury (można podzielić jeszcze drobniej).
No i tu właśnie obsługa przerwania zakłóca komunikację 1W. Jeśli wyłączę przerwania na czas odczytu/zapisu DS-a to wyświetlacz miga. Bascom chyba nie pozwala na takie zagłębienie się w procedury zapisu/odczytu 1W aby można było zrobić to po swojemu.
Prosiłabym o wyrozumiałość i pomoc w nakierowaniu mnie na rozwiązanie problemu. Spróbuję nakierować :) Jeśli zapis ID do eeprom ma być jednorazowy, w kodzie programu deklarujesz (wcześniej innym programikiem i LCD odczytane) ID $eeprom Termometr2: 'nr seryjny termometru 1 Data 40 , 25 , 0 , 133 , 2 , 0 , 0 , 196 Termometr1: 'nr seryjny termometru...
Wychodzi z tego, że zastosowany u mnie układ to DS18B20 (wg dokumentacji płytki jest DS1820), ale przy podzieleniu T/2 otrzymuje wynik +/- 195C, przy podzieleniu na 16 mam +/- 24C.. Czyli rozumie, że powinienem zmienić/dostosować program do DS18B20.. spróbuje i dam znać.
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...
Nie wiem czy to co napiszę jest trafne, bo kompletnie nie znam C. Moja hipoteza to zapełnienie stosu, po kilku godzinach i nachodzenie na wartości zmiennych. Możliwe, że to kompletna herezja tym niemniej takie przypadki na Bascomie bywały.
Witam! 1. czas na konwersję 750 ms, jest to maksymalny czas potrzebny tylko wtedy, gdy mamy czujnik podłączony tylko dwoma przewodami, a wiec przy zasilaniu "parazytowym" i przy maksymalnej rozdzielczości pomiaru. 2. w przypadku kiedy czujnik jest podłączony trzema przewodami, ten czas może być skrócony do około 20 ms. 3. ten czas nie oznacza, że trzeba...
oooooo to chodzi ;) to taki szkielet - ale na podstawie tego sam wiesz już jak sobie poradzić z tym tyle że bez Wait'a dodam jeszcze, że sam fragment: 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 warto zapuścić jeszcze przed wejściem wtedy w pętlę główną żeby już mieć gotową pierwszą zmierzoną temperaturę w czujnikach po resecie - gdyby przypadkiem...
Kod do pomiaru temperatury ze sprawdzeniem CRC pobrałem z internetu, więc nie wiem czy na 100% działa, lecz teraz nie mam możliwości go wkleić tutaj, ale tak samo są absurdalne odczyty temp. W temperaturze pokojowej około 20-22st. C. atmega czasem pokaże ponad 300st, lub poniżej -40.
Jezeli programujesz w Bascom to tu masz ciekawą podpowiedź: http://www.mcselec.com/an_111.htm
Tam nic nie trzeba zmieniać. Wystarczyło podłączyć do identycznych linii LCD i DS18B20 i zmienić $regfile = "Attiny2313.dat" na $regfile = "mega8.dat"
Czy moze ktos ma juz gotową procedure do odczytu temperatury z termometru DS18B20 w bascomie ?
to mój pierwszy projekt z wykorzystaniem ds18b20 i bardzo możliwe że kiepsko napisany. I rzeczywiście minus pojawia się po przecinku, spróbuję to poprawić
Czy tak może być? Nie. Po komendzie: "1wwrite &H55" Spodziewana jest komenda wpisu adresu adresu device do której odnoszą się dalsze komendy, ponadto: Błędem jest stosowanie tejsamej flagi (niby stopniowej) do wielu operacji bez jej kasowania. Zauważ że flaga=1, lub flaga =2 utrzymuje sie przez dłuższy czas, o wiele dłuzszy niż 'przewinięcie 'pętli...
Witam, Wstrzymaj się z bascomem na razie. Wynik jaki otrzymałeś tzn: 16, 197, 244, 1, 2, 8, 0, 128. nie dokońca jest zły. Koledzy słusznie Ci napisali że pierwszy bajt jak powinieneś otrzymać powinien być 0x28 ale w przypadku użycia 12 bitowego czujnika DS18B20 a Ty odebrałeś 0x10 w Hexie więc ja wyrokuję że Ty poprostu korzystasz z czujnika DS18S20...
' Na początku kodu Index_tab=0 ...... ...... If Licznik = 1200 Then IF Index_tab=3 Then ' przesuniecie w tył jeżeli pozyskano co najmniej 3 pomiary Pomiar(1)=Pomiar(2) Pomiar(2)=Pomiar(3) Else ' Fragment kodu wykonywany dla Index_tab=0,1 i 2 Incr Index_tab IF Index_tab>3 Then Index_tab=3 End If Pomiar(index_tab)...
nie rozumiem. Tzn jakis program bascom dziala poprawnie i ten efekt nie ewystepuje wystepuje tylko jak wgrasz ten kawalek w c.
Witam Kolego Unreal89. Pracuję pod Bascomem 8051 i nie spotkałem się z funkcją, o której wspominasz. Przejrzałem pliki help'a i tam również nic nie znalazłem. Zainteresowany jestem z jakiego powodu odpada komenda "fusing"? Dla czego pytam? Pozwolę sobie obszerniej skomentować zaprezentowany listing. 1. Termometr DS18B20 przechowuje informacje o temperaturze...
Nikt nie jest w stanie mi pomóc? nie wie wiem dla czego kontroler nie porównuje wartości Rozumiem że jesteś początkujący , ale nawet Ty powinieneś wiedzieć , że nie porównuje się zmiennej binarnej(Us) ze stringiem (Tmp) :( To tak , jak byś porównywał kilogram z czerwonym :D Poza tym , ten program jest niezwykle pamięciożerny(Fusing,Single). Jeśli ten...
witam jest to termometr cyfrowy DS18B20, wiele informacji na jego temat możesz znaleźć używając opcji szukaj gotowe schematy, programy... Dodano po 2 żeby nie zakładać nowego tematu chciałbym się coś Was forumowiczów zapytać: pisząc procedurę odczytu z DS18B20 w bascom 8051 temperatura po włączeniu kostki do zasilania byłą wyświetlana jako 85,0°C -...
No tak, bo ja nie mam w zamiarze mieć alarmu dźwiękowego. Więc usuń z programu także deklaracje odnosnie wymiarowania zbędnych zmiennych i uzupełnij poprawki j.w. Wytestuj program w symulatorze running "step into code" (F8) i w odpowiednich momentach kodu uzupełniaj 'ręcznie' zmiany logiczne pinów a także symulowane wartości zmiennych (np: odczyt temperatury...
Jeśli w urządzeniu: urządzeniu dla klienta lub nadzorując piec CO nie stosujesz CRC Mimo niestosowania CRC nigdy nawet na długich przewodach To właściwie nie mam o czym z Tobą dyskutować. A co do punktu, którego nie umiesz zrozumieć odczyt aktualnej temperatury masz zawsze po określonym przez producenta czasie po starcie konwersji nieprawdaż? Z mojej...
Witam! - Między wysłaniem polecenia pomiaru, a odczytem temperatury musisz odczekać 850ms. - Żeby odczytać temperaturę z konkretnego czujnika musisz w poleceniu odczytu podać adres czujnika. - Błędna ilość czujników często wynika z zakłuceń i "luzów" na magistrali 1-wire. Pozdrawiam
Dzień dobry Mam problem z termometrem DS18B20, mainowicie napisałem program w bascom i robiłem testy na płytce testowej zl2avr i na lcd miałem dziwne odczyty temperatury ale coś było. Wczoraj zrobiłem już na płytce uniwersalnej ten teromoetr z atmega wszystko pdłaczyłem jak trzeba program wgrałem na atmega w plytce testowej zl2. Program działa na wyświetlaczu...
Witam Dokonałem tej zmiany i także wyrzuciłem zmienna S na Lcd i dalej program nie działa tak jak bym chciał. ................ Jest ok zmieniłem znak ''<" i działa . Do swojej podstawki programującej mam podłączone 2 przyciski do pin d.0 pierwszy do pind.1 drugi gdybym chciał zmieniać progi załączania pind.7 tymi przyciskami (czyli regulować temperaturę...
Sprawdzałeś na 100 % jakimś PEWNYM przykładem (np. z książki Wiązani) w sensie montaż w/g schematu (banalny) i program w Bascomie (też banalny) ? Przewinęło mi się przez ręce kilka-kilkanaście DSów i nie trafiłem jeszcze uszkodzonego.
Witam. Posiadam DS18B20 i AT89S8252 zmontowane w prostym układzie do odczytu temperatury. Napisałem program do odczytu temperatury w asemblerze. Wzorowałem się na odczycie w języku C, Bascom i asemblerze znalezionych na forum. Wszystko działa do momentu odczytu temperatury. Na wyjściu nie otrzymuje żadnego wyniku. Czas na przetworzenie temperatury jest...
Siemka! Nie ma większego problemu i z paroma czujnikami. Rozwiązania tego problemu są conajmniej dwa. 1. Wrzucasz czujniki każdy na innym pinie portu mikrokontrolera i odczytujesz wynik korzystając właśnie z algorytmu dla jednego czujnika. Jedyna kwestia to tylko sekwencyjne przełączanie interface'u 1-Wire pomiędzy połączonymi z czujnikami pinami portu....
michalc85 ma rację. W słoiku z wodą ? Żeby namokły ? Według mnie, wygląda to na zwykłe nabijanie postów (i punktów), ponieważ Twoja wypowiedź nie wnosi niczego do dyskusji. Nieprawda, woda ma dużo większą przewodność termiczną niż powietrze. Wtedy temperatura obu czujników jest prawie równa. Zwróć uwagę że "po zabezpieczeniu". Możesz też oba czujniki...
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ł.
Stosuję odczyt DS18B20 w przerwaniu, dlatego, że przerwanie rozkładało mi transmisję 1wire. Przerwanie jest wyzwalane z częstotliwością 100 Hz, przez częstotliwość sieci 220 V i służy do obsługi ściemniacza. Transmisję 1wire umieściłem w tym przerwaniu, żeby uniknąć jej zakłócania właśnie przez to przerwanie. Co przerwanie wykonywana jest kolejna instrukcja...
...Czy w bascomie można zadeklarować tablicę dwu wymiarową Nie :!: Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu... Bo tak są skonstruowane - patrz tabelki w PDF-ku :) Czy jest możliwe najpierw wysłanie do wszystkich czujników polecenia mierzenia temperatury ... Jasne ;) '... 1wreset If Err=0 Then...
To jest tylko wycinek programu całość programu pochodzi z książki Autor: Marcin Wiązania " Programowanie mikrokontrolerów AVR w Bascom" Ja zmieniłem przeliczenie temperatury z DS1820 na DS18B20 Dim T As Byte Dim TLsb as Byte Dim TMsb as Byte Odczytałem dwa bajty TLsb = odczyt(1) TMsb = odczyt(2) Dodałem do swojego programu T=TMsb + TLsb I podzieliłem...
Poniżej przykład. Zwróć uwagę, że w tym przykładzie komenda konwersji temperatury występuje na końcu, a nie na początku. Odczytana temperatura będzie zatem tą która została konwertowana po poprzednim odczycie. To oczywiście nie ma znaczenia dla tego jak adresować czujniki. Powodzenia ! PL Config 1wire = Portd.6 Dim Adresy(16) As Byte Dim T1 As Byte...
Mniej wiecej tak to mozna zrobic ;) Listing do AVR-a pozmieniaj nazwy portów '################# wyswietlanie temperatury ######################### Multiplex: Dim Mux As Byte Dim 100stopni As Integer Dim 10stopni As Integer Dim 1stopni As Integer Dim Dstopni As Integer Config Porta = &B11111111 Config Portc = &B11111111 T2 = Abs(t1) Porta = &B11111111...
Tak jak pisałem powyżej zmień tylko te fusebity które wymieniłem. Czyli CKSEL3 = 1, CKSEL2 = 1, CKSEL1 = 0, CKSEL0 = 1, CKDIV = 1. Opisałem to według dokumentacji µC. Jak to dokładnie zrobić w Bascomie to nie wiem bo nie używam tego programu.
Jarosław J --> po pierwsze postaraj się jak najszybciej robić odpowiednie wcięcia w kodzie to będzie łatwiej nie tylko nam tutaj na forum analizować twój kod - ale tobie samemu będzie łatwiej a to jest nawet ważniejsze ;) po drugie masz tam gdzieś w tej swojej pętli głównej coś takiego: Convallt ' "Convert ALL T on the 1w-bus" Waitms 1 czyli...
Szukałem DS18B22 i nie znallazłem. Jest DS1822. Jeśli chodziło o DS18B20 i DS1820 to nie są one wymienne. Trzeba w programie zmienić sposób obliczania temperatury. W uproszczeniu dla DS1820 odczyt dzieli się przez 2, a w przypadku DS18B20 przez 16. Związane jest to z różną rozdzielczością termometrów DS. Zaznaczyłem, że w uproszczeniu, bo dla DS1820...
Witam Jeżeli chodzi o wskazanie i dokladnie wiesz ze to jest zawyzanie o 2 stopnie to jaki problem przy koncowym wyniku odjac te 2 stopnie i wyswietlic go ? ;) Pozdrawiam Niby masz rację. Ale ten kawałek kodu skopiowałem z innego projektu i wiem, że w okolicach 20 st zawyża o 2. Ale nie wiem bo chwilowo nie mam jak sprawdzić co będzie w okolicach 40...
Witam, Napisałem prosty program do odczytu temperatury z DS18B20 jak poniżej, jednak odczytuje on wartości temperatury jedynie do około 57st.C. Powyżej tej temperatury same jedynki. Przekopałem dokumentację i jedyne co mi przychodzi do głowy, to alarmy, ale odczyt SCRATCHPAD nie wskazuje na to aby były włączone. Czy ktoś ma jakieś sugestie? [syntax=basic4gl]...
no to tak: Przerwanie od timer0 jest wywoływane zbyt często- podaj jaki jest zegar. W przerwaniu robisz tak- incr temp_0. I tylko to- nic więcej. A w pętli głównej: if temp_0>=x then 'tak aby było > niż 750ms temperatura=funkcja() temp_0=0 end if
Witam ! Probuje napisac w Bascomie program ktory prezentuje odczyt temeperatury z DS18b20 na 7 segmentowym wyswietlaczu, a dokladniej na 4. Temperatura ma byc wyswietlana na pierwszych 2 a na 3 i 4 ma byc znak stopni Celcjusza, z tym sie juz uporalem. Nie umiem natomiast zaprezentowac samego wyniku, na wyswieltaczu 1 i 2 jest caly czas 00. Oto listing...
Po ustawieniu fuse bitów tak żeby uwzględnić $crystal=4000000 program w dalszym ciągu nie reaguje na nic. Mógłbyś napisać program do odczytu temperatury z DS18B20 i wyświetleniu jej na LCD tak żebym mógł sobie sprawdzić moje czujniki temperatury
Witam. Mam czujnik temperatury DS18B20. Przeszukałem ½ forum i nie znalazłem tego czego szukałem. Mój problem polega na tym, że nie wiem jak odczytać temperaturę z tego DS-a. Podaję polecenie na 1wire, aby odczytać pamięć SCRATCHPAD, ale co dalej?? Zrobić jakąś pętlę, która będzie zapisywała te 2 bajty temperatury(chodzi o rozdzielczość 12-bitową)??Jak??...
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...
Żeby być pewnym na 100% to jak odczytać temperaturę z 2 czujników DS18B20? pierwszy czujnik: 1wreset 1wwrite &H55 1wverify ID pierwszego układu 1wwrite &HBE odczekać czas na pomiar temperatura1 = 1wread(2) drugi czujnik 1wreset 1wwrite &H55 1wverify ID drugiego układu 1wwrite &HBE odczekać czas na pomiar temperatura2 = 1wread(2) Czy coś jeszcze trzeba?...
sprawdzenie tego kodu co napisalem No to podłącz i sprawdź ;) Sprawy do rozważenia: - Czujniki masz na jednej linii, czy na osobnych? - Czy zachowujesz odpowiednio duży odstęp czasu między poleceniem konwersji a żądaniem odczytu? - Wyświetlacz obsługujesz poprzez jakiś bufor ramki, czy bezpośrednio w CGRAMie rysujesz?
Dim Sc(9) As Byte 'w tej tablicy beda dane odczytane z czujnika Dim Temperatura As Integer 'tu obliczona temperatura Dim Blad_crc As Bit 'a ten bit bedzie ustawiany w razie bledu CRC odczytu '... program ... 1wreset 1wwrite &HCC 1wwrite &HBE Sc(1) = 1wread(9) 'odczytujemy wszystkie bajty z czujnika If Sc(9) = Crc8(sc(1)...
Więc pytanie zasadnicze. Jak zaokrąglić otrzymany wynik zmiennoprzecinkowy w bascomie AVR? Wykorzystywanie liczb zmiennoprzecinkowych do odczytu temperatury z DS18B20 jest lekko mówiąc mało rozsądne, zwłaszcza że "po przecinku" może być tylko 16 różnych wartości. Takie rzeczy to się zaokrągla na etapie pisania programu, który potem operuje wyłącznie...
Witam Mam problem ze skompilowaniem w Bascom 8051 procedur do DS18B20 B1 = B1 / 16 ,obliczenia wyłącznie... B2 = B2 * 16 , dla temperatur dodatnich. Być może dla Ciebie , przecinek i średnik to to samo - dla Bascome nie ;) Piotrek
Witam serdecznie, ostatnio przesiadłem się z poczciwego Bascoma na C jako bardziej optymalny język no i pojawił się problem z WinAvr i zmieszczeniem obsługi LCD na hd44780 i czujnika na 1-wire DS18b20, za nic w świecie nie mogę tego upchnąć do Procka... a w Bascomie to samo robiący kod, czyli odczyt temperatury i wyświetlenie jej na ekranie mieści się...
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. Zaczolem ostatnio zabawe z czujnikiem temperatury DS18B20 podlaczonym do Atmega8. Wszystko gra ale chcialbym sie dowiedziec w jaki sposob mozna zmienic ustawienie dokladkosci pomiaru bo odczyt temperatury przy ustawieniach fabryczne jest zdziebko przydlugi. Czy takie nowe ustawienie czujnika trzeba zapisywac za kazdym razem jak uruchomie uklad...
Tez prawda:) nie pomyślałem o tym:). Spróboj usunąć podprogram 1wr może to pomoże w zmniejszeniu objętości. I tak ten podprogram to tylko 1wreset to po co z tego robić podprogram? Lepiej od razu wpisać 1wreset moze z podprogramem mniej miejsca zajmuje ale nie sądze. Maksymalny czas odczytu temperatury to 750ms, a nie jak napisaleś w swoim listingu....
W datasheet-cie DS-a jest napisane co oznacza gdy wysyła ci temperaturę 85 stopni... Jest to jak najbardziej uzasadnione, ponieważ pierw odczytujesz wartość rejestru temperatury a dopiero po tym rozpoczynasz konwersję, zawsze pierwszy wynik będzie błędny... Nie przeklejaj bezmyślnie kodu od innych. Pozdrawiam, GSM
http://obrazki.elektroda.pl/8836607800_1... 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,...
OK - skoro 18b20 ma przetwornik 12 bit to dlaczego wszystkie znane mi z elektrody procedury odczytu nie umożliwiają odczytu co 0.1°C tylko co 0.5°C ?? A może mój 18B20 (który teraz podłączyłem zamiast 18S20) ma źle ustawiony bit konfiguracyjny ? Na 9 bitowe przetwarzanie, bo jak wyświetlam sobie wartość Integer zrobioną z bit(1) i bit(2) to zmienia...
..a czy mógłbym poprosić o gotowy program odczytu tych ds-ów w moim przypadku, bo nie mogę dać sobie z tym rady, a tak przynajmniej sobie przeanalizuję co i jak, gdyż nie jestem zaawansowanym programistą jak widać:) Pozdrawiam
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...
Mam przed sobą termometr i program napisany w Bascomie oraz podobny w C. U mnie nie wystąpił odczyt 85'C. Wynika to pewnie z doprowadzenia do czujnika zasilania osobnym przewodem. Co dwa druty to nie jeden. A i jeszcze dla porzadku. Strasznie głośno piszesz (tzn. dużymi literami).
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.
Witam :) Tak na wstępie brakuje mi działu dla piszących w C i ASM (będzie łatwiej coś znaleźć np szukam 2 DS18B20 i 99.9% wyników to bascom). Potrzebuję odczytać dane z co najmniej 2szt. DS18B20, problem polega na tym że jak adaptuje kod do odczytu 1 DS (z jednego portu) na odczyt 2 DS (z dwóch portów) to zamotałem się w funkcje zmieniające nr portu...
odczyt ds18b20 bascom ds18b20 bascom odczyt bascom odczyt ds18b20
podłączyć domofon tabela instrukcja programator elektroniczny sterowa optotriakiem
apple watch wyłączniki dotykowe
Jak dostać się pod bęben pralki Amica? Instrukcja demontażu Wiertarka dwubiegowa: MacAllister czy Celma?