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...
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...
Zegarek oprócz funkcji wyświetlania czasu ma pokazywać temperaturę i mieć możliwość sterowania z pilota (RC5). Normalnie (by default) Bascom używa Timer0 dla RC5. Jeżeli Timer0 masz zajęty do inego celu, więc potrzebujesz skonfigurować Timer2 dla RC5. e marcus
Gdybym opisał program wszystko stałoby się oczywiste :D Użycie IF ELSE bez END IF zawsze warte jest omówienia bo potem nikt nie może się doliczyć END IF :D Chodzi o to że jeśli tylko jedna instrukcja jest od jakiegoś warunku zależna to można ją zapisać w jednej linii. Jeśli z powodu jakiegoś warunku musza juz być zmienione dwie zmienne lub wykonać się...
Witam, migają na przemian - i prawidłowo :wink: Zwróć uwagę, że przed wyświetleniem i czasu, i temperatury czyścisz ekran ( Cls ). :roll: Pozdrawiam, GSM
A skąd wytrzasnąłeś takie dziwadło :?: 1 Wreset Ma być bez spacji 1wreset Piotrek
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...
Miałem trzy diody i tak jak przewiduje kod jeśli napiecie było poniżej 250mV to jedna z diod świeciła dużo słabiej. Powyżej 300mV słabiej świeci inna dioda. Sprawdź empirycznie ;) Co do diody RGB tam gdzie pisze Set wpisz w kodzie Reset a tam gdzie pisze Reset wpisz Set i powinno się obyć bez wymiany diody ;) Chyba coś takiego ;) [syntax=vbnet] If Reference...
Zajrzyj do dokumentacji LM, tam jest pokazane, jak należy go podpiąć, żeby mierzył ujemne temperatury.
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...
Jak zwykle czasu nie ma, ale nie mogłem się powstrzymać. Nakręciłem pierwszy klip - ahahahaha :D No musiałem się pobawić edytorem. Efekt to półtora minuty magii :D Ahahaha miałem kupę zabawy z tym :D Przy okazji możesz zobaczyć jak się używa wbudowanego symulatora by zadawać wartości ADC ;) Twój pomniejszony kodzik też poniżej, tylko używając poza symulatorem...
temperatury zostaja zmienione na lcd ale tylko raz, znaczy się gdy temperatura zmieni się to nie ma zmian na wyświetlaczu. temperatura na lcd zmienia się "live" tylko wtedy gdy trzymam przycisk cały czas. Program działa dokładnie tak jak go napisałeś, w momencie kiedy naciskasz przycisk wartość odczytana jest przepisywana do zmiennej która jest wyświetlana...
Problem może być ... sprzętowy. Otóż Tiny2313 fabrycznie ma ustawiony zegar na 8MHz i preskaler zegara na podział przez 8 czyli pracuje na 1MHz. Jeśli nie manipulowałeś z Tinką to nie będzie zgodna rzeczywista częstotliwość taktowania uC z zadeklarowaną w programie. Magistrala 1Wire jest bardzo wrażliwa na czas poszczególnych impulsów i nie zniesie...
Zajrzyj też [url=http://www.elektroda.pl/rtvforum/to... Tu była podobna dyskusja na ten temat. Pozdrawiam
W skrócie: TYMCZAS=TEMPERATURA TYMCZAS=TYMCZAS + 30 TYMCZAS=TYMCZAS * 1.85 PWM=TYMCZAS Najpierw pozbywasz się wartości ujemnej, a następnie mnożysz przez współczynnik będący wynikiem działania MAX PWM / MAX TEMP , czyli około 1,8 .
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.
Hej! Twój problem polega na specyficznej konstrukcji magistrali 1Wire i tego że wszystkie czujniki są podłączone za pomocą jednej lini i w momencie gdy chcesz pobrać dane z jednego to zgłaszają ci się wszystkie na raz lub ten który jest szybszy. Miałem podobny problem gdy w układzie miałem podłączony czujnik temperatury oraz pastylkę dallasa i efekt...
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...
No to spróbuj tego: $regfile = "m16def.dat" $crystal = 4000000 $hwstack = 32 $swstack = 32 $framesize = 32 config 1wire= portb.7 Do 1wreset if err=0 then print "PP_ok" ' czy LCD "PP_OK" - co tam masz else print "PP_err" ' j/w endif waitms 500 Loop Napisz o wyniku doświadczenia :D Piotrek
Masz tutaj program odbierajacy dane z rc5 w przerwaniu int0: 'Program umożliwiający odbior danych w standardzie rc5 z użyciem przerwania int0 'dzieki czemu odbior danych nie zakłóca działania programu głównego $regfile = "m32def.dat" 'atmega32 $crystal = 8000000 'kwarc 8MHz Config Lcdbus = 4 Config Lcd = 16 * 2 'wyswietlacz 2x16 znakow Config...
No to mamy winowajcę. Robienie czegokolwiek długotrwałego w przerwaniu to chory pomysł, ale problem polega na tym, że procedury obsługi LCD nie blokują przerwań na czas wykonywania operacji na LCD - dołóż blokowanie i odblokowanie przerwań na prymitywach LCD i zadziała (jako proteza). żeby zadziałało dobrze - przenieś obsługę 1Wire do pętli głównej.
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.
Dobrze nawet zrozumiales z tym znakiem. ale jesli temperatura jest ujemna to negujesz calosc i odejmujesz 1 zeby miec poprawna temperature (potem dzielisz na 16). i tyle filozofii.. a swoją drogą nie masz zamrazalnika? wez kostke lodu i sprawdz.... ;]
mnie sie udalo uruchomic ten program, chociaz z bascomem mam do czynienia od jakichs 2 godzin to znalazlem blad :) twoja wersja If Temperatura(2) > 0 Then 'jeśli zmienna Temperatura(2)> 0, to temperatura ujemna przeliczenie temperatury 'ujemnej Temperatura(1) = 256 - Temperatura(1) End If 'koniec warunku Temperatura(1)...
Witam. Po wgraniu kodu do obsługi czujnika DS18S20 (Bascom), temperatura wyświetla się kilka jako jedności i kilka miejsc po przecinku (dziele przez 16). Jak zmniejszyć wyświetlaną temp do 1 miejsca po przecinku?
Mozliwe. Dodales rezystor? Jeszcze masz taka zmienna err w bascomie, poczytaj troche o niej.
Szukałem na forum i nie znalazłem żadnych informacji na ten temat. Może złe hasło wpisywałem. Proszę o pomoc. Tu jest to , o czym myślałem. http://www.elektroda.pl/rtvforum/viewtop... Piotrek
Natomiast jeżeli dam jakąkolwiek prędkość wyższą niż 9600 to na terminalu pojawiają się od razu krzaki. No dobrze ale czy jeśli dasz konkretnie 38400 to też masz krzaki ??? Nie powinno ich być, a jeśli procek pracuje w temperaturze pokojowej to temperatura nie będzie miała żadnego znaczenia. Za to może się okazać, że warto podregulować wewn. oscylator...
witam nie bawiłem się jeszcze 1921 ale obsługa jest standardowa tylko przy odczycie temperatury musisz dać opóźnienie na konwersje temperatury jakieś 750ms. DS1994 ma wiele funkcji i własny eeprom po za tym można zrobić całkiem dobry system kontroli dostępu zabezpieczenia wszystko zależy od pomysłowości. pamiętaj jedno jak piszesz cokolwiek do 1-wire...
przed linia Lcd Chr(2) ; "=" ; Napis ; " " ; Chr(1) ; "C" 'wynik dopisz : locate 1,1 pozdrawiam
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.
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...
Witam zaraz spróbuje czy sposób Kolegi Mazomen coś pomoże. Kolego arktkik1 dlaczego nie możesz zrozumieć co to wyświetlacz 14 segmentowy np. taki: http://obrazki.elektroda.net/45_12692721... Sprawdziłem. Program dobry dla 4 wyświetlaczy ale nie dla 14. Wszystko miga, jak skrócę obsługę do 4 wyświetlaczy to działa dobrze. Dalej jestem w kropce. Ciekawe...
No widzisz, zawsze tak robię, nawet przy skomplikowanych projektach. Na płytce jest wiele innych rzeczy, m.in RTC i zasilanie do niego. Te 2 elementy po lewej stronie uC to są przyciski do ustawiania godziny. I nie mam zwyczaju osobnego nazywania każdego elementu, także na płytce jest "lekki" chaos... :| (at)tronics: docelowo ma tam być wyświetlana...
...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...
co prawda w C, ale zasada ta sama: http://mikrokontrolery.blogspot.com/2011...
Moim zdaniem lepiej zastosować np. LM35 i przetwornik A/C lub np. DS18B20. Jeśli chcesz pozostać przy swojej opcji zastosuj wiele pomiarów np. 20 pomiarów, a potem wyciąg sobie średnią.
A w jaki sposób sprawdzić przyczyny resetowania sie układu? Popatrz na skrót fragmentu Twojego kodu: [syntax=basic4gl] Mainn: '... Gosub Temp '... Temp: '... Gosub Mainn '... [/syntax] Jeśli rozumiesz w czym tkwi błąd, to OK, ale jeśli nie, to ... jeszcze sporo nauki przed Tobą :|
Prawidłowe wywołanie procedury musi być PRZED end,a nie po. [syntax=basic4gl] If Menu = 3 Then Menu = 0 call wyswietl_temperature End If [/syntax] Proponuję zrobić "po mojemu" czyli declare sub i sub wywoływany call'em.
Przetestuj ten. Tak go poopisywałem, że aż mi się nie podoba :D [syntax=basic4gl]$regfile = "m8def.dat" $crystal = 8000000 $hwstack = 40 $swstack = 16 $framesize = 32 '# wyświetlacz Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Cls '# timer ' 8000000Hz(8MHz)/256(Prescaler)=...
Bity mają BASE = 0 Bity się liczy od 0 czyli jak ich jest szesnaście to największy to 15. Nie śpij. Zrób sobie kawę albo przewietrz głowę :D Widziałeś kiedyś PORTB.8 w AVR? :D Jest osiem pinów a najstarszy to 7 bo pierwszy to 0.
Poprawione sa przyciski ale mrugania temperatura nie ma
Jak wgrasz .hex'a do uC to sie przekonasz, a wtedy jesli nie bedzie dzialac to zadaj pytanie "dlaczego nie dziala?" zamiast "czy to dziala?". A odnosnie tego co juz masz to piszac wyswietlajac dane na LCD w ten sposob: {...} Lcd " T1 'c" Cls If T1 > T2 Then Deflcdchar Print , 4 , 14 , 21 , 4 , 4 , 4 , 4 , 4 ' replace ? with number...
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
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...
Witam Gdyby dalej były problemy z uruchomieniem transmisji to mogę podesłać kod źródłowy do takiego urządzenia, bo sam coś takiego zrobiłem z tym że wynik podawany jest na 3 wyświetlacze LED. Transmisję zrealizowałem bardzo podobnie tylko za pomocą bascomowego polecenia Inkey(), odbierane są zawsze dwa bajty i na podstawie ich zawartości określane jest...
Tzn. wiem, że zmienna typu bajt nie może być większa niż 255, ale zapomniałem, że nie robi się operacji na różnych typach zmiennych razem [syntax=vbnet] Solar_mid_mod_temp = Solar_mid_mod_temp \ 2 ' srednia z dwoch czujnikow = 283 [/syntax] co prawda przekracza 255, ale wynik z dzielenia przez 10 i Modulo 10 już nie, czyli 28 i 3 [syntax=vbnet] Solar_mid_dec...
Co do wyłączenie światła po 30 sek. Dodaj dodatkową zmienną bit która będzie ustawiana np: na 1 po wyłączenia światła przez timer po 30 sekundach a dzięki niej nie będzie ponownie włączane światło przez wciąż otwarte drzwi (stan niski na wejściu uC). Dopiero zamkniecie drzwi ( stan wysoki na wejściu uC) spowoduje zmianę tej zmiennej na 0 dim 30SEK as...
Juz to widzialem wczesniej, bardziej chodzi mi o realizacje programowa w assemblerze - bascom. Temperatury maja byc stabelaryzowane. Calosc realizowana na plytce ewaluacyjnej aTmega
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...
Program działa, chociaż wydaje mi się, że temperatura jest ciut zawyżona, no ale może i faktycznie taka jest. Mam jeszcze inny problem, a właściwie póki co za małą wiedze w temacie, żeby wiedzieć jak ten temat ugryź, a mianowicie: Mam tak zdefiniowane zmienne: ( or ) missing [IF(CHR(S2(1)) = 4 THEN] Assigment error...
Witam. Moje pytanie dotyczy wyświetlania temperatury na 7 - segmentowych wyświetlaczach LED. Posiadam czujnik DS18B20. Jak napisać program aby temperatura wyświetlana była na dwóch kostkach wyświetlacza. W książce pana Marcina Wiązania znajdują się 2 programy : - Program multipleksowego sterowania wyświetlaczami - Program obsługi termometru DS1820 Jaka...
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...
to w tej linijce należy ją usunąc i dzielic przez 10
Ten kod jest w jakiejś książce? Pytam z ciekawości bo widzę go już któryś raz. Wynik -0,1 pokazuje się zawsze gdy nie pasują prędkości zadeklarowane w kodzie z prędkością mikrokontrolera. Pomaga zmiana FuseBitów na 8MHz w Mega8 i w kodzie :) Równocześnie, tak żeby się zgadzało i tu i tu. Najpierw sprawdź, potem komentuj :D
witam ja bezproblemowo doczytalem V i T z ds2438 zrob tak 1wwrite H&B8 1wwrite H&00 przynajmniej ja tak mam jesli nie bedzie dzialc to daj znac
Ten oscylator jest niedokładny - zwykle stosuje się do tego celu oscylatory o niższej częstotliwości a najlepiej dedykowane układy z kompensacją temperatury, np. DS3231.
Witam, co z tego, że wywołujesz polecenie konwersji co 1 sek. skoro zaraz po wysłaniu polecenia konwersji (H44), żądasz odczytu (HBE). DSxxxx potrzebuje czasu właśnie na konwersję i tego powinno się przestrzegać. Myślę że zasilanie DS`ów jak i podłączenie zrobiłeś bezbłędnie :?: Najprościej w Twoim kodzie, to zamień miejscami - najpierw odczyt (HBE)...
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...
chodzi o to, że gdy temperatura nagle zaczyna wzrastać powiedzmy o 3, 4 st. na sekundę to na wykresie nie wykonuje mi się żaden punkt
...kwarc jest zewnętrzny 4Mhz, wiec wszystko gra... To po raz N-ty na tym forum , zapytam: A fusebity skonfigurowałeś/przestawiłeś/zmieniłeś/r... :?: Piotrek
Muszę napisać program do pomiaru temp za pomocą termoistora i kondensatora. Jednak nie moge uzyc "getrc". Czym mogę go zastąpić? Moze mi ktoś napisac jak powinna wyglądać taka procedurka?
Ten program jest taki, że nie wiadomo od czego zacząć poprawiać. Najlepiej byłoby go napisać od nowa :D Niemniej poprawiłem to co ewidentnie musiało być poprawione. Tak na marginesie to nie wiem co za magik wymyślił te ponowne włączanie przerwań w obsłudze przerwania po to tylko by odebrać kod RC5 w przerwaniu. Ludzie to małpują i kłopoty gotowe. Sprawdź...
Witam. Nie bardzo mam koncepcję jak najszybciej wyznaczyć minimum i maksimum mając takie zmienne (BASCOM): Temperatura as Byte (przechowuje wartość mierzonej temperatury) Znak_temp as Bit (przechowuje znak mierzonej temperatury, "0" jeśli "+" i "1" jeśli "-") przy czym maksimum i minimum może mieć zarówno znak "+" jak i znak "-", więc zmienne przechowujące...
Witam Temperatura i wilgotność, wyświetla tylko wartość całkowitą. A jak z czytać przynajmniej jedno miejsce po przecinku ?
Czy przypadkiem zmienna I nie zwraca ci temperatury ujemnej gdy ona występuje? Znak jest zawarty w drugim bajcie => patrz datasheet.
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...
16 (liczba nie cyfra) ponieważ temperatura odczytywana jest z dokładnością do 4 cyfr po przecinku, dlatego odczytaną wartość trzeba podzielić przez 16 (przesunąć o 4) Bd(1) = 1wread(9) tu do Bd jest wpisanych 9 bajtów ( liczba bajtów w nawiasie) odczytanych przez 1wread(9) z czego 2 pierwsze to temperatura
Witam W ramach dalszego eksperymentowania z AVR i Bascom popełniłem połączenie odczytu z DS18B20 z sterowaniem wyjściem uC ( przez tranzystor FET ) + dodatkową atrakcję - buzer, który sygnalizuje wł/wył tranzystora/wyjścia. Chciałem dodać możliwość zmiany temp max i min, przez proste menu. Menu zrobiłem w oparciu inny mój kod obsługujący ustawianie...
Zobacz tutaj If Flaga_przygotowanie_odczytu = 1 Then Incr Liczniczek_przygotowanie_odczytu [...] -----Breakpoint;)------- Flaga_przygotowanie_odczytu = 0 End If No i tak, powiedzmy że w miejscu które pokazałem program siedzi 2 sekundy. Przerwań było od groma, a Tobie zmienna tylko raz się podniosła. Dlatego takie rozwiązanie jest złe. Musisz...
Podlaczylem na trzech przewodach i zadnych zauwazalnych zmian nie widac. zalaczam listing programu
Witam Temat może i wałkowany kilka krotnie, ale siedze nad tym jeż 3 dni i nie mogę odczytać temp z DS1820 i wyświetlić na LCD 16x2, na AT89S52 wszystko działa mi elegancko czujniki sprawne, napisze drugi program pod Atmege, wykrywa mi czujnik, i wyswietla komunikat jak odepne, ale ciagle mam 0 stopni, może ktoś ma na 100% sprawdzony program, moze jakieś...
Mógłby to kolega zapisać w C :-) nie bardzo rozumiem jak to zapisać po tej komendzie ONE_WIRE_SendByte(0x44)... Po prostu należy odczytywać 1-bit i sprawdzać czy jest = 1. np. send_byte(0xCC); send_byte(0x44); //_delay_ms(800); while( !(read() ) _delay_ms(10); //... Możesz jeszcze obwarować pętlę...
zumek, mnie nie chodzi od której pozycji na lcd zacząc wyswieltac. Popatrz, dajmy na to zaczne od ósmej pozycji, wyświetlę temp xx.xoC to na 13 pozycji pokaże się znak "C". -------xx.xoC--- Następnie temperatura się zwiekszy ponad 100 stopni wiec bedzie xxx.xoC i tak samo zacznę od ósmej pozycji i teraz znak "C" pojawi się na 14. -------xxx.xoC-- Wszystko...
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)...
wprowadzasz zmienną temperatura2 as single wyswietlanie: if temparatura<>temperatura2 then temperatura2=temperatura LCD .... end if return
Witam Chciałbym wydzielić tylko to co znajduje się po przecinku odczytanej temperatury na przykład w Tempp. Czyli ładuje wartość odczytaną z ds1820 do Tempp potem: Shift Tempp , left , 8 if Tempp >= 10000000 then Tempp = to co jest po przecinku tak?
Konfiguracja?
Z tym "else" to nie tak do końca - próg wyłączania powinien być niżej, niż próg załączania, inaczej, gdy temperatura będzie się wahała w okolicach tych 20 stopni, wskazania będą np. 19,9-20.1, zmieniające się co kilka sekund - i wiatrak oszaleje... czyli coś a'la: if (temp > 20) wlacz(); else if (temp < 19) wylacz();...
Witam ! Program który przedstawiłeś działa, tak pokazuje temperaturę w Poznaniu za oknem: http://obrazki.elektroda.pl/9998290700_1... Pozdrawiam. Stefan ps. szkoda że nie pokazałeś swojego projektu ( zdjęcie )
Krzywa grzewcza w najprostszej postaci to prosta "ax+b" - dobierz doświadczalnie współczynniki "a" i "b" - x to będzie temperatura zewnętrzna.
Do wartości 255? Skąd taka temperatura?
Ale wyświetla temperaturę?
Witam, zdecydowałem się ponownie poruszyć temat najpopularniejszego chyba układu na elektrodzie - przeczytałem chyba wszystkie posty i wydaje mi się, że zastosowałem się do porad dla innych pytających - a jednak: układ teoretycznie dobrze mierzy temperaturę, jest to DS1820 na 3 przewodach +, - i sygnał przez 4,7k do + do 90S2313, kwarc 4MHz. W pokoju...
Temat do zamknięcia , nie potrafię sobie poradzić z obliczeniami wyników temperatury i ciśnienia.
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. Problem z histerezą polega na tym że histerezę ustalasz w liniach wykonywanych tylko raz po starcie procka, dlatego ona zawsze będzie wynosić 0+5 (zmienna przechowująca temperaturę zmierzoną po starcie programu będzie 0). zmienną histerezy musisz umieścić w pętli aby byłą aktualizowana cały czas wraz ze zmianą temperatury. Pozdrawiam
Witam. Chciałbym przedstawić inkubator własnej konstrukcji do wylęgu jaj . Został on odwzorowany na konstrukcji jednego z forumowiczów, lecz w większej wersji i została wykorzystana do tego celu stara lodówka. Do utrzymywania temperatury w inkubatorze został zaprojektowany termostat na Atmedze8 wraz w wyświetlaczem. Do tego został napisany prosty program...
[syntax=vbnet][/syntax]Witam; Małe pytanko odnośnie wyświetlania wyników - dokładniej chodzi o temperaturę ujemną [syntax=vbnet]1wreset 1wwrite &HCC 1wwrite &H44 Waitms 750 1wreset 1wwrite &H55 1wverify Dsid1(1) If Err = 0 Then 1wwrite &HBE T = 1wread(2) T = T * 10 T = T / 16 S = Str(t) S = Format(s , " 0.0") Lcdgoxy 1 , 3 Lcdstr S , 2 , 0 Lcdupdate[/syntax]...
Ponoć ustawienia w listingu maja priorytet, więc nie powinno się tak stać, ale kto zrozumie te urządzenia? ;-) Co edytujesz? Czy tylko to: Lcd " Temperatura: " Może spróbuj skompilować program bez żadnych zmian, wtedy dowiesz się, czy kolega comer3 nie ma racji ;-)
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 -...
Witam, zauważyłem te post i choć jest bardzo stary, liczę że ktoś odpowie, mianowicie, czy pomiar temperatury z kodu powyżej dotyczy czujników ds18b20 podłączonych w trybie parasite, czy nie?? Pozdrawiam.
przy założeniu 8 bitowego PWM, OCRx zmieniać się będzie od 126 - 255, czyli przyjmie wartości 126 + (od 0 do 129). Temperatura zmienia się w zakresie Tl-Th, więc: (uint8_t)(129 / (Th-Tl)) będzie skokiem PWM dla 1 stopnia powyżej Tl jeśli Tl<temperatura<Th OCRx = 126 + ( (Temperatura - Tl ) * (uint8_t)(129 / (Th-Tl)) ) mimo, że nie Bascom, myślę,...
Niestety sprzeszukałem Internet i czytałem dadatasheet (od tego zazwyczaj się zaczyna współpraca z czym kolwiek :D) kod który zamieściłem wyżej się odziwo kompiluje bez problemu (z tąd wiem ze po wgraniu do uC jest taki wynik)Zresztą jest skopiowany z elektrody jako jeden z przykładowych, Zresztą Wszystkie kody które sam pisałem lub kopiowałem z internetu...
usunąłem jedno zero dalej lipa
Może trzeba by było zdefiniować prędkość zegara w programie bascom :?:
trochę późno ale co tam , tu masz link z przykładami obsługi lm76 : http://www.qsl.net/pa3ckr/bascom%20and%2...
Źle się wyraziłem, pisałem oczywiście o przyłożeniu 2,5V na jedno z wejść pomiarowych :D Jeszcze mam pytanie: Rozdzielczość = 2,56 / 1024 = 0,0025 = 2,5mV Jak można użyć tego parametru przy pomiarze temperatury?
Może mi ktoś powiedzieć jak napisać w Bascomie obsługę LM35 dla temperatur ujemnych. Myslę tu o schemacie z diodami od strony masy taki jak producent podaje w opisie. Ale jak mam zrobić to w AVR to już nie wiem. dzięki.
Witam! Czy ma ktoś może procedurkę umożliwiającą pomiar temperatur ujemnych, dla DS1820 w Bascom-ie? Jak to jest, że w dokumentacji pisze, że rozdzielczość tego układu wynosi 0,5`C a za pomocą procedurki często spotykanej np. w Bascom mierzymy tą temperaturę z dokładnością 0,1`C ? Czy da się zmierzyć temperaturę w zakresie -30 +40 z dokładnością 0,1`C?...
temperatura bascom regulator temperatura bascom pomiar temperatura bascom
metody wytrawiania płytek czujnik biegu wstecznego amica śmierdzi
pralka electrolux ewt1262tdw sprzedaz anteny
Jak wyłączyć komunikat w Viessmann VT 200? Kod błędu P1728 w Fiat Scudo 1.6 JTD 2007 - przyczyny i naprawa