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
Odczytaj_ds: 1wreset If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Ds_1 = 1wread() Ds_2 = 1wread() Status_temp = 1 If Ds_2 >= 248 Then 'wartość ujemna Ds_1 = 255 - Ds_1 Ds_2 = 255 - Ds_2 Status_temp = 0 End If T1 = Ds_1 / 16 T2 = Ds_2 * 16 T1 = T1 + T2 T1 = T1 + 0.05 'T1 wartość temperatury xx.xx T1 = T1 * 10 'wartość całkowita...
Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
Witammój problem polega na tym że podłączyłem do megi termometr i po wywołaniu tego kodu im 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 * 1 Sub Temp 1wr 'podprogram 1wr 1wwrite &HCC 'komenda skip ROM 1wwrite &H33 'komenda convert T Waitms 250 Waitms 250 1wr 'podprogram 1wr 1wwrite &HCC...
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.
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...
(at)opamp: rozkręciłem za pomocą wewnętrznego oscylatora do 8MHz (za pomocą mkavrstudio) i nic to nie dało. Po włączeniu watchdoga "ucina" mi kawałek temperatury, np. kiedy temperatura powinna wynosić 022.3 'C pokazuje mi się 022. albo 3 'C. Tak na marginesie to jednak 30 cm a 2 m to jest lekka różnica ;) (at)tronics: niestety nie pomogło (at)dondu:...
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
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:)
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.
Witam. Ja kiedyś napisałem program który zawierał odczyt z ds18b20. 'tablica temperatury po przecinku Tabtemp(1) = 0 Tabtemp(2) = 1 Tabtemp(3) = 1 Tabtemp(4) = 2 Tabtemp(5) = 3 Tabtemp(6) = 3 Tabtemp(7) = 4 Tabtemp(8) = 4 Tabtemp(9) = 5 Tabtemp(10) = 6 Tabtemp(11)...
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"
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.
Witam mamy taki przykładowy kod: $regfile = "attiny2313.dat" $crystal = 1000000 Config Lcd = 16 * 1a Config Lcdpin = Pin , Db4 = Portd.0 , Db5 = Portd.1 , Db6 = Porta.1 , Db7 = Porta.0 , E = Portd.2 , Rs = Portd.3 Config 1wire = Portd.0 Config Timer0 = Timer , Prescale = 1 Enable Timer0 Enable Interrupts On Timer0 Pobierz_temp Dim wire_read...
Masz tu procedurkę odczytu i wyliczenia temperatury. Prościej się nie da. Nie wiem w czym piszesz, ale sama procedura (bascom) jest czytelna.
Ups zapomniałem dodać, że chodzi tu o BASCOM AVR
usunąłem jedno zero dalej lipa
to wiem tylko ta właściwa temperatura przy rozdzielczości 12 bitów dla np 20 stopni powinna zwrócić 01h 04h a zwraca 00h 28h.
Witam , miałem niegdyś podobny problem , tyle że działam w Bascomie , lekarstwem było przestawienie procka w fusebitach na częstotliwość 8 MHz.
Jezu, każesz mu najpierw zrobić stringa, potem go pochlastać, a potem z tego inta? Starryyyy BASCOM upośledza;/
Gdybym wiedział jak to zrobić w bascom to bym Ci powiedział :(
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.
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.
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ą...
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...
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...
Wypadałoby wysłać do DS18b20 polecenie pomiaru temperatury:&H44 i zaczekać jakieś 700ms przed odczytem:?:
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...
Program do czujnika temp ds18b20 ktory mierzy z dokladnoscia dwoch miejsc po przecinku. Sprawdzony ale tak jak juz koledzy mowili wyniki po przecinku bardzo czesto skacza Deflcdchar 0 , 7 , 5 , 7 , 32 , 32 , 32 , 32 , 32 Config Pind.7 = Output Config Pind.4 = Output Config Pind.5 = Output Config Pina.6 = Output Config Pina.7 = Output Set Portb.0 Set...
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.
Teraz dopiero dopatrzyłem się, że przy starcie raz wywala wartość 85 stopni co nie powinno mieć miejsca. To jest zupełnie normalne że pierwszy odczyt może wskazywac 85°C. Patrz: uwaga pod tabelą na str. 3 datasheet: *The power-on reset value of the temperature register is +85°C Może ci się takze pokazac 0°C , - jako jeden z poczatkowych odczytów gdy...
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ć.
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.
Niekoniecznie, możesz po resecie DS-a zmienić wyświetlanie na następną cyfrę i dopiero robić odczyt temperatury (można podzielić jeszcze drobniej).
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)...
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...
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 -...
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.
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.
Czy moze ktos ma juz gotową procedure do odczytu temperatury z termometru DS18B20 w bascomie ?
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 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...
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.
Chwilowo straciłem ten kod postaram się go znaleźć ale opierałem się na projektach z internetu. No bez jaj. Na 99% nic nie masz tylko czekasz na gotowca. Ale dobra, zlituję się na święta :D Pomijając całą beznadziejność kodu do multipleksowania wyświetlacza, takie coś powinno działać: $regfile = "ATTiny2313.dat" $crystal = 8000000 Dim Jednosci...
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 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ę...
Napisane na szybko nie sprawdzałem ale chyba powinno działać. [syntax=basic4gl] $regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega8 $crystal = 1000000 'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza) '*************************************WA... 'Pamiętać o podłączeniu...
Ok, znalazłem wśród zapasów takie DS-y przy których błąd pomiaru jest skorelowany.
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...
Witam. Chciałbym odczytać temperaturę z czujnika DS18B20 przez długie i krótkie migania diodą. Np gdy mamy temperaturę 25 stopni to dioda sygnalizowała by dziesiątki za pomocą dwóch długich piknięć a jedności poprzez 5 krótkich. Dopiero zaczynam zabawę z Bascomem i kompletnie nie wiem jak się za to zabrać. Poniżej wklejam fragment kodu z odczytem temperatury....
Tam nic nie trzeba zmieniać. Wystarczyło podłączyć do identycznych linii LCD i DS18B20 i zmienić $regfile = "Attiny2313.dat" na $regfile = "mega8.dat"
Jezeli programujesz w Bascom to tu masz ciekawą podpowiedź: http://www.mcselec.com/an_111.htm
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
nie rozumiem. Tzn jakis program bascom dziala poprawnie i ten efekt nie ewystepuje wystepuje tylko jak wgrasz ten kawalek w c.
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...
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ć
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...
Tak teraz napisy nie mrugają, ale odczyt temperatury jest błędny od ujemnej do 256. Dziękuję za pomoc, spróbuję sam powalczyć. pomógł.
Witam ! 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...
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...
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...
' 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)...
Jak widzę będzie się kolega zmagał z programem w Bascom. Jeżeli chodzi o one 1Wire to możemy podłączyć to na 2 sposoby: - z dwoma przewodami - wtedy używamy tylko lini DQ (linia DQ powinna być podciągnięta do zasilania poprzez rezystor 3k3 - 4k7 do zasilania ponieważ porty mikro kontrolera mają zbyt małą wydajność) i GND. Zasilanie odbywa się przez...
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 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
Sypie błędem- co dokładnie to oznacza? Ja specem od Bascoma nie jestem ale przy odczycie z DS18B20 raczej nie pojawiały się jakieś "zawirowania". Istotnie -pierwszy otrzymany wynik to 85 st. C -ale to jest opisane już nawet w nocie katalogowej producenta więc jeżeli to istotne pierwszy pomiar zwyczajnie się ignoruje w programie. Z tego co pamiętam...
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. 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...
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
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...
Ż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?...
Witam Prosił bym o zweryfikowanie kodu. Wydaje mi się ok ale nie chcę od razu uśmiercać DS'a. DS daje mi odczyt 4095.94 (nawet po odłączeniu nóżki od masy, po odłączeniu zasilania lub nogi danych pokazuje 0). $regfile = "m8def.dat" $crystal = 16000000 Config Portb = 255 Portb = 255 Config Portc = 255 Portc = 255 Config Portd = 255 Portd =...
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! - 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
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...
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.
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...
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,...
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.
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...
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, 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]...
Witam, tworzę coś na kształt stacji meteo, odczyt temperatur, wilgotności i ciśnienia. Do pomiaru ciśnienia zastosowałem BMP085 i tu pojawił się problem, teoretyczne wszystko działa, ale pomiary temperatury i ciśnienia strasznie pływają. Zaraz po włączeniu odczyty są chyba najbardziej wiarygodne, później temperatura podnosi się o ok.2-3°C i automatycznie...
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...
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....
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...
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...
Już tłumacze tylko pierwsze mam też prośbę mogłby kolega zmienić $crystal na 8Mhz oraz w procku to ustawić i sprawdzić czy działa? Zastanawia mnie ta linijka: Odczyt(1) = 1wread(2) Dlaczego odczytywane z czujnika są 2 pierwsze bity? Nie bity tylko bajty kolego. A co one oznaczają to musi sobie kolega ściągnać datasheet do ds18b20 i tam jest napisane...
Jest rok 2015 teraz robi się to tak: DS18B20 moze być zasilany z linii transmisji bądź trzecim pinem. Jeśli masz podłaczone 5V na stałe podczas pracy programu czyli do DS`a idą trzy przewody to DS może dla Ciebie przygotować temperature i poczekać spokojnie aż ją odczytasz. Czyli każesz mu przygotować temperaturę i wracasz po nią za sekundę. Kiedy wracasz...
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?
przy DS18b20 uzywam tylko lini dwu przewodowej i w odleglosciach od 10cm do 50m dziala bezproblemowo jedymie co jakis czas resetowal mi sie ds i wyskakiwala temperatura 85stC obszedlem to najlatwiej przez ignorowanie przez sterownik tej temperatury linie data podciagam rezystorem 4k7 lub tez robilem podciaganie tranzystorem w czasie konwersji temperatury...
Witam. Stosuję czujnik DS18B20 i DS1820 do odczytu temperatury pewnych obiektów. Odpowiednia ich temperatura uruchamia proces, który jest dalej kontynuowany bez względu na wskazania z czujników - wyłączyć go może zewnętrzny sygnał, wygenerowany w odpowiednich okolicznościach. Czujniki są oddalone od urządzenia o 10 - 15 metrów. Chcąc się zabezpieczyć...
Tworzę sterownik który będzie operował na 4szt DS18b20 Program jest pisany w bascom Czy w bascomie można zadeklarować tablicę dwu wymiarową Tablica (4)(8) Dla czego przy odczycie danych muszę ponownie resetować magistralę i podawać numer seryjny układu. Podobno po wysłaniu za pierwszym razem numeru układu inne milczą a wskazany nadsłuchuję 1wreset 1wwrite...
Witam Mam program zrobiony tak zmienne Dim T As Single Dim T1 As Integer Dim T2 As Integer odczyt i konwersja 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 *...
Zawsze kiedy pojawia się sterownik akwariowy to... Zawsze zawiera ten sam spsób na ugotowanie akwarium, tzn [syntax=basic4gl]Temperatura_t(1) = 1wread(2) 'jesli blad lub ujemna temperatura... If Err = 1 Or Temperatura_t(2) >= 128 Then Temperatura = 99 Else[/syntax] Czyli uszkodzenie czujnika, zalanie go (nietrudno o to w akwarium) = dostaniemy od razu...
odczyt ds18b20 bascom ds18b20 bascom odczyt bascom odczyt ds18b20
ekspres krups ea9000 kocioł gazowy buderus kluczyk passat przycisk otwierać
Wpływ długości szczotek na kontrolkę ładowania w alternatorze sześciodiodowym Wpływ długości szczotek na kontrolkę ładowania w alternatorze sześciodiodowym