Witajcie, chciałbym lekko odgrzać kotleta i poprosić o wskazanie błędu przy próbie wyliczenia temperatur ujemnych. Odczytuję czujnik DS18B20 w maleńkim ATTINY13 (zmienne float właściwie odpadają) i co około sekundę wysyłam wynik poprzez UART. Dla temperatur dodatnich - dzięki uprzejmości p. Podkalickiego i jego "odchudzonej" biblioteki DS18B20 działa...
Przypadkiem nie jest tak że ogniwo Li-Ion w ujemnych temperaturach słabnie dość mocno ?
Cześć. Mam mały problem z pomiarem/wyświetlaniem temperatur ujemnych z wykorzystaniem czujnika DS18B20. Korzystam z bibliotek: <OneWire.h> <DS18B20.h> Ujemna temperatura jest na wyświetlaczu pokazywana jako dodatnia - tzn. jest tylko wartość a nie ma znaku +/-. Czy DS18B20 zwraca wartości ujemne? Czy brakuje mi tylko warunku np.: jeżeli...
co prawda w C, ale zasada ta sama: http://mikrokontrolery.blogspot.com/2011...
Błąd jest w konwersji dekoder pokazuje to co dostaje na port . W programie brak inicjalizacji stosu . Konwersję tego typu łatwiej wykonywać odejmując od wyniku konwersji wartość przetwornika stałą i inkrementując liczbę operacji odejmowania do chwili otrzymania wartości zerowej lub ujemnej . gdy pozostała wartość będzie mniejsza lub równa zero liczba...
Witaj Kolego, Nie wiem czego oczekujesz bo kod który zamieściłeś jak się domyślam nie jest twój, więc po co to sprawdzać, jak chcesz mogę Ci podesłać albo zamieścić coś napisane przez mnie procedury które obsługują wszystkie modele DS18x20 oraz konwersję U2 (ujemnych temperatur) oraz pracujące z ATM32 no i oczywiście konwersje do stringa oraz wartości...
Zacząłbym od tego: Otrzymujesz wartość zmiennej temperatura równą np. 1871819,25. Jak przemnożysz to przez 16 to okaże się, że wyrażenie (temp1 + (temp2*256)) zwraca wartość 29 949 108. Teoretycznie zmienne temp1 i temp2 nie powinny przyjmować wartości większych od 255, więc wartość maksymalna wyrażenia (temp1 + (temp2*256)) = (255 + (255*256)) = 65535....
Czy można przez konwersję BCD wyciągnąć znak (temperatura dodatnia/ ujemna) Wynik zczytywany jest do zmiennej Integer(nie Single, żeby od razu odciąć część ułamkową) dalej poprzez BCD uzyskuję liczbę dziesiątek i jedności. Wszystko działa tylko jeśli temperatura spadnie poniżej 0, zaczyna liczyć od końca. W jaki sposób można oddzielić znak "-" ze zmiennej...
Widzicie. Ja walczyłem z timerami, przerwaniami,DS'ami i wyświetlaczami, chyba wewszelkich możliwych kombinacjach. I stwierdzam, że bardzo trudno jest w Bascomie ustalić wybraną częstotliwość przemiatania z jednoczesnym odczytem czujnika. Nawet jeśli pozornie wszystko działa to przy ujemnych temperaturach czas konwersji jest na tyle długi, że nie da...
No niezupełnie, dla ujemnych temperatur to nie zadziała, a dla dodatnich dość pokręcone. [syntax=c]int16_t temp = data[1] << 8 | data[0]; if (temp < 0) { znak = '-'; temp = -temp; } else znak = '+'; ulamek = (temp & 0xf) * 5 / 8; temp >>= 4;[/syntax]
A czy na małe zmiany temperatury reaguje (gdy chwycisz w palce?) Zawsze możesz spróbować zamienić funkcję konwersji "Read_Temp" z Twojego programu. Pozostawiając reszte bez zmian. U mnie działała (bez temperatur ujemnych). ...dobrze obsługujesz wyświetlanie floata?
informującego o zmianie temperatury co 1 stopień w górę lub dół To są założenia więc co każdy stopień ma być krótki sygnał. Warunek If T >= 200 then spowoduje że przekroczenie 20 stopni spowoduje sygnał. Muszę chwilę pomyśleć. Trzeba badać także różnicę pomiędzy odczytem poprzednim a następnym. Sprawdź to: (zmień procesor, konfigurację LCD, portów,...
witam problem raczej standardowy bym powiedział :) zakładam, że wolisz wersję skróconą bez wykładu a dlaczego tak itd :D 1wreset 1wwrite &HCC 1wwrite &HBE Odczyt(1) = 1wread(2) T = Makeint(odczyt(1) , Odczyt(2)) Tspr = T T = Abs(t) T = T * 10 : T = T / 16 Przecinek = T Mod 10 T = T / 10 1wreset...
Witam Mam taki program który wyświetla temperaturę potocznie zwany termometrem. Problem w tym ze nie wyświetla mi znaku minus przy ujemnych temperaturach. Po wsadzeniu do zamrażarki mija temperaturę 0 st C i idzie dalej niby w dół, ale bez minusa. Przeglądałem sporo źródeł na elektrodzie i w innych miejscach i nie mogę sobie z tym poradzić. Oto kod:...
Załączam sprawdzoną, działającą bibliotekę do 1-Wire. Opóźnienia są policzone dla kwarcu 16MHz. Skoro Ty wykorzystujesz kwarc 1MHz to wystarczy, że podzielisz przez 16 argumenty funkcji opóźniających. Jakbyś miał z tym problem to napisz. Gratis dorzucam też sprawdzoną i działającą funkcję do odczytu i konwersji temperatury z czujnika DS18B20. // odczytanie...
Prawdopodobnie dlatego że ten czujnik używa kodu U2. Tutaj więcej informacji. [url=http://mikrokontrolery.blogspot.com... EDIT: Napisz jeszcze co oznaczają zmienne (szczególnie scratchpad)
http://mikrokontrolery.blogspot.com/2011...
atom1477 --> ja nie krytykuję kodu (tzn nie krytykowałem - nawet jeszcze nie spojrzałem na niego) ;) nie zaperzaj sie tak, toż widzę że krótszy. .....Ale powiedz mi gdzie masz w tym krótki kodzie oczekiwanie na konwersję, co najmniej 750ms ??? bo jakoś nie widzę.
tzn nie jest to równe 63 ale ok -63.563. i jak bardziej grzeje tym temp maleje i jest ujemna Dodano po 3 ok ..już wszystko jasne...niepotrzebna konwersja z float do double dla dodatnich liczb....
Patrząc na Twój kod zauważyłem że wykorzystujesz funkcję z biblioteki "delay.h". Tymi funkcjami nie uzyskasz dokładnych czasów potrzebnych do obsługi interfejsu 1-Wire po którym komunikuje się czujnik DS18B20. Udostępnię Ci swoją sprawdzoną w 100% bibliotekę do komunikacji po 1-Wire. W tej bibliotece wystarczy dobrać czasy opóźnień dla Twojego kwarcu...
ee no musiało pomóc, sprawdzałem u siebie i kod się zmniejszał o kilka kB pokaż jakim poleceniem ze wszystkimi flagami jakie używasz kompilujesz kod dla tych zmiennych równych 134 i 1: LS Byte: 10000110 MS Byte: 00000001 w MS Byte pięć najważniejszych bitów wskazuje na znak - zera to dodatnia, a jedynki to ujemna trzy najmłodsze bity z MS Byte i cztery...
Witam, trochę przegrzebałem fora dyskusyjne wczoraj i dziś w szukaniu wersji non-float i znalazłem to. // na początku kodu #define THERM_DECIMAL_STEPS_12BIT 625 //.0625 uint8_t temperature[2]; int8_t digit; uint16_t decimal; char buffer[14]; digit=Temperature.LSB>>4; digit|=(Temperature.MSB&0x7)... decimal=Temperature.LSB&0xf;...
Witam! Najogólniej mówiąc musisz te 4 bity podzielić przez 16, natomiast jeśli masz ujemną temperaturę to robisz to samo a następnie otrzymany wynik odejmujesz od 1.
Chciałbym wiedzieć, czy sterownik DS1820 obsługuje wiele czujników temperatury? Właśnie przeprowadziłem test z podłączonymi 2 czujnikami i mam temperaturę dla jednego, ale nie dla drugiego. Oto komunikat o błędzie po podłączeniu drugiego czujnika: Info:SENSOR:D S1820[0] - Rozpoczęcie konwersji Info:SENSOR:D S1820[0] - Temp=21.12 Info:SENSOR:D S1820[0]...
http://mikrokontrolery.blogspot.com/2011...
Co trzeba rzerobic w programi zeby obsługiwało temperatury ujemne?? Sprawdź czy bity 11-15 (bity 3-7 starszego bajtu) są równe 1. Jeżeli tak, to oznacza liczbę ujemną. Dokonaj wtedy konwersji : zaneguj wszystkie bity (z obu rejestrów) i dodaj 1 (pamiętaj o ewentualnym przeniesieniu). Dalsza interpretacja liczby jest taka sama jak dla temperatur dodatnich,...
Nie to sprawdzałem. Wygląda to jakby procedury odczytu DS-a działały bo ta temperatura wyświetlana -0.1 o tym świadczy. DS jest zasilany z 3,3V i wyczytałem że przy takim zasilaniu rezystor podciągający linie DQ ma mieć około 2k i taki mam. Ale z rezystorem 4,7k też nie działało. Gdzie to wyczytałeś? Datasheet nic na ten temat nie mówi, poza "Can be...
każdy LM35 ma współczynnik konwersji 10mV/'C. Co oznacza, że dla temperatur ujemnych napięcie wyjściowe powinno być ujemne. W nocie aplikacyjne jest stosowny schemat jak do tego doprowadzić. Bez stosownej polaryzacji czujnik działa od 2 stopni. Rysunek jest na drugiej stronie PDFa poniżej, na pierwszej stronie był gdy National był Nationalem a nie Texasem....
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...
Taka sprawa: Zasilalem termometr "pasożytniczo", ale dosyc nieuważnie przejrzałem Data Sheet od niego i nie zauwazylem, ze nalezy zapodawac high pullup na szyne przez mosfet, podczas konwersji temperatury i operacji na eepromie :( O dziwo na poczatku ds konwertowal prawidlowo i poprawnie mierzyl temp. ujemne i dodatnie, jednak z czasem zaczely pojawiac...
Witam. Projektuję sobie przetwornik do konwersji temperatury na napięcie. Zrobiłem coś takiego lecz wydaje mi się, że to będzie coś nie tak. W literaturze zenerki są w ujemnym sprzężeniu zwrotnym, lecz wtedy + wzmacniacza jest zwarty do masy. Nadmienię, że wyjście będzie podłączone do multipleksera 4067. W jaki sposób ograniczyć Uwyj?? Jak Ci pomóc...
Nie, przecież to jest garść drutów - skąd narzędzie ma wiedzieć jak ma zrobić dodawanie na garści sygnałów? No jakaś automatyka w syntezerze jest. Może to wydedukować jakoś :D Ale jak bity maja reprezentowac liczby? Jak kodujesz wartosc ujemna? Czy to jest format zmiennoprzecinkowy czy staloprzecinkowy? A moze IEE754? Zapoznaj sie z biblioteka numeric_std,...
A co to za cudaczne obliczenia :wink: ... unsigned char wynik1=0; unsigned char wynik2=0; wynik1=read1w(); wynik2=read1w(); reset1w(); float temp=0; if((wynik2)!=0){ //temp ujemna wynik1=~wynik1; temp=wynik1+1; //dlaczego /2 i gdzie się podział wynik2 ? temp=-temp/2; //??? } else{ //temp dodatnia...
Witaj, Temperatura rzędu 500C jest nie mozliwa do odczytania z DS18x20. Czujnik może co nawyżej wskazać 125C. Niestety procedury których użwasz do przeliczenia odczytanych danych na temperaturę są błędnie napisane. U uśrednianiu wyniku to tu raczej nie ma mowy bo DS18X20 jest czujnikiem cyfrowym z własnym kontrolerem któy już sam sobie uśrednia wynik...
U mnie dziala tak: 1wire_1 Alias P3.0 Dim T As Word Sub 1wire1 1wreset 1wire_1 ' reset magistrali 1wire 1wwrite &HCC 1wire_1 ' zaadresowanie DS'a - skip rom 1wwrite &H44 1wire_1 ' polecenie dokonania konwersji Wait 1 ' dajemy czas na konwersję (wystarczy 750ms) 1wreset 1wire_1 ' reset 1wwrite &HCC 1wire_1 ' adres 1wwrite &HBE 1wire_1...
A czy ktos wie, jaka może być przyczyna. Jeśli czujnik będąc na 5 cm przewodach i z rezystorem 4k7 pokazuje poprawnie temperatury ujemne. Ale już na 3 metrowym przewodzie i tym samym rezystorze pokazują się krzaczki. Rezystor zmieniałem na 2k2 i dalej te same krzaczki. Niewiem co jest grane, do konwersji i wyświetlenia używam tego: a = ((temp2...
https://obrazki.elektroda.pl/7717804000_... Witam wszystkich, Tym razem chciałbym zaprezentować termometr dwukanałowy zasilany z dwóch równolegle połączonych akumulatorów Li-Ion, zbudowany w oparciu o mikrokontroler ATTiny84 i dwa czujniki DS18B20 oraz pozostałe części "z szuflady". Termometr ten służy mi do pomiaru temperatury w pokoju...
Witam. Mam termometr na Atmedze8, program napisany przez kolegę Ducha. Chciałbym dodać funkcję zapisu do eepromu najniższej zarejestrowanej temperatury przez termometr, lecz nie jest to możliwe ponieważ ostateczny format temperatury zapisywany jest w zmiennej typu string. Program ma porównywać, czy aktualna temperatura jest mniejsza od zapisanej w eepromie,...
Pomiar: dokładność 1st C. jeśli pomiary nie muszą być zbyt często Są wykonywane co około 2s. 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ą. Np. 1 pomiar:25st, 2 pomiar, 3p, 4p. - też 25 lub 26stC, a 5 pomiar (błędny) - 85st...
Problem rozwiązany. W datasheet zalecany jest rezystor podciągający ok. 5k. Jednak dalej, jest informacja, że podczas niektórych operacji (m.in. przy konwersji temperatury) zapotrzebowanie na prąd, może wynieść 1,5 mA. 5V/5kohm = 1mA max. Zmiana rezystora na 3,3k rozwiązało problem. Szkoda tylko że maxim jest mało konsekwentny w swojej dokumentacji...
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...
Hah jaka prosta sprawa, popełniłem zwykły błąd, który przy dodatnich temperaturach nie dawał o sobie znać - oczywiście konieczna jest konwersja na DI oraz REAL, co wskazywał też jazda_gazda. Teraz wszystko działa, dziękuję bardzo za cierpliwość, jeszcze raz przekonałem się o fachowości uzytkowników tego forum :) Pomroczność jasna nie zna granic jak...
Skoro teoretyzujemy, to odpowiedzcie mi na pytanie, o ile podniesie się temperatura na powierzchni ziemi w tych dwóch przypadkach: - teren równo pokryty łąką / piachem / drzewami / domami, - teren jak wyżej, ale w połowie pokryty panelami fotowoltaicznymi? Takie panele, muszą być / są tak skonstruowane, by absorbować jak najwiecej energii, energii która...
Witajcie, jak przekonwertować poprawnie wartość z czujnika temperatury ds18b20 w postaci dwóch liczb typu uint8_t, które odpowiadają części całkowitej i ułamkowej, do postaci jednej zmiennej typu int16_t? zakres liczby ułamkowej to 0-9, zakres liczby całkowitej jest 8-bitowy. Wartości ujemnych nie ma.
(...) odczytu temperatury. Jaki zaproponowałbyś kod (AVR GCC), aby nie trzeba było używać delay'a (może pooling lub maszynę stanu) ? Przy okazji przedstaw optymalną (bez zmiennoprzecinkowych liczb) konwersję danych ze scratpad'a na stopnie (może być złożeniem liczb całkowitych jako stopnie i części ułamkowe). Do obsługi termometrów DS18B20 bez blokowania...
O kurde zapomniałem :D Jeszcze raz przepraszam. Używam ATTINY 2313 a jako czujnik DS1820 A tu program: Config 1wire = Portd.5 : Dim Odczyt(2) As Byte , A As Byte , Dim T As Integer , Tmin As Integer , Tmax As Integer Deflcdchar 1 , 4 , 14 , 21 , 4 , 4 , 4 , 4 , 32 Deflcdchar 2 , 4 , 4 , 4 , 4 , 21 , 14 , 4 , 32 Do 1wreset : 1wwrite &HCC : 1wwrite...
Z tego co widziałem, to funkcja z pliku ds18b20 zwraca temperaturę jako int16_t czyli ze znakiem. Nie wiem jak to przekonwertować ani co dostanę po konwersji (jak znam życie to wynik będzie odniesiony do 1024 i jeśli 22 stopnie w przypadku int16 będzie częścią 512 bitów tak po zmianie typu na uint16 będzie częścią z 1024) Co do wartości bezwzględnej...
temp2temp jest tylko do sprawdzenia, wykluczenia tego, że to zmienna decicelsius2 jest winna wykrzaczaniu temp2, co pokazało, że nie, bowiem w temp2 i w temp2temp przy wykrzaczeniu są inne wartości. Co do zmiennej licznik, to ona się ma nie zerować, ponieważ liczę średnią temperaturę przez cały czas działania urządzenia, a więc potrzebuję sumę wszystkich...
Przede wszystkim te 0.777V nie z diody, bo napięcie diody zależy od temperatury! Potrzebny jest wzorzec napięcia skompensowany temperaturowo (są takie układy scalone), dający napięcie ujemne i dzielnik z trzech oporników - układ gwiazdy, jeden do tego wzorca, drugi do masy, trzeci do sygnału - trzeba je wyliczyć tak, żeby na połączeniu wyszło napięcie...
Witam Muszę stworzyć układ w którym bedę używał 8 czujników DS18B20 , i każdy musi pracować na osobnym pinie. Nie mogę podpiąć wszystkich na jednej linii i odpytywać ich po ich ID. Kiedyś robiłem sterownik w którym odczyty robiłem w ten sposób: Sub Odcz_temp1 Config 1wire = Portb.0 1wreset 1wwrite &HCC 'opuszczenie zapisu numeru ID 1wwrite &H44 'start...
Dzięki za podpowiedż - Dla Jonego 15 Właśnie się z tym uporałem i wygląda to tak Działa i sprawdzone Na tyle się ociepliło, że musiałem płytkę z prockiem zapakować do zamrażarki i przeżyło Sub Read18b20 1wreset 1wwrite &HCC 1wwrite &H44 'dokonaj konwersji - zmierz temperaturę Waitms 750 1wreset 1wwrite &HCC 1wwrite &HBE 'polecenie odczytu DS18b20 Odczyt(1)...
Witam, Jako autor oryginalnego opracowania wtrącę swoje trzy grosze (Autor postu poinformował mnie mailowo o tym wpisie). Przede wszystkim jestem zaskoczony, że ktoś odgrzebał tego mojego starocia jeszcze z czasów licealnych:) Co ciekawe jakiś czas temu znalazłem oryginalny prototyp tego wynalazku w starym pudle ale niestety puściło jakieś lutowanie...
Widzę że nie ja jeden mam problem z odbiorem danych z ds-ów a wszyscy je polecają hm w zamian można dać jakieś np. Lm35 tylko nie wszystkie mają ujemną temperaturę i są droższe. Będę miał jutro czas to posiedzę jeszcze nad tym programem mam nadzieje że dam rade, w razie czego tu jeszcze napisze. Mam książkę M.Wiązania bardzo fajna właśnie fragmenty...
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ść...
1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM 1wwrite &H44 'dokonaj konwersji Waitms 750 'przeczekaj czas konwersji 1wreset 'reset 1wwrite &HCC 'rozkaz adresowy SKIP ROM 1wwrite &HBE 'rozkaz funkcyjny - polecenie odczytu DS18x20 Odczyt(1) = 1wread(2) 'odczytaj dwa pierwsze bajty T = Odczyt(2)...
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ę...
1. Czujniki RTD nie są liniowe Zależność pomiędzy temperaturą a rezystancją określona jest wielomianem Callendar-van Dusen-a (IEC-60751) osobno dla temperatur ujemnych: dla -200 °C to 0 °C: Rt = R0 [1 + At + B t^2 + C(t – 100 ºC) t^3] i dla temperatur dodatnich dla 0 °C to 850 °C: Rt = R0 [1 + At + Bt^2) współczynniki: A = 3.9083 e-3 [°C^(...
atom1477 serdeczne dzięki za zainteresowanie! udało mi się wreszcie pomierzyć temp dodatnie więc zabrałem się za ujemne. galusz napisał: Tak oczywiście w programie musisz to uwzględnić... V OUT =+1,500 mV at +150°C = +250 mV at +25°C = −550 mV at −55°C Jednakże w naszym wypadku musimy do tych wartości dodać 1.2V (musisz dokładnie zmierzyć)...
Jest program napisany dzieki waszej pomocy. A tu program w razie jakiś błędów piszcie. Config Portb = &B11111111 Portb = &B11111111 Config Portd = &B1111111 Portd = &B1111111 Config 1wire = Portd.5 : Dim Odczyt(2) As Byte , A As Byte , T As Integer Do 1wreset : 1wwrite &HCC : 1wwrite &HBE 'odczyt z DS1820...
NTC na rezystancje ujemną w funkcji temperatury a LOGO! potrzebuje raczej napięć narastających w funkcji temp. więc chyba odpada. Wewnątrz LOGO możesz sobie dowolnie przeskalować wartość analogową. Logo ma wejścia napięciowe 0-10V więc do czujnika np. PT100 dołącz przetwornik pomiarowy - wejście PT100 , wyjście napięciowe 0-10V. Alternatywą jest firmowy...
Witam. Mam pytanie dlaczego mój termometr nie działa poprawnie. Zapamiętuję temperaturę maksymalną lecz nie zapamiętuje temperatury minimalnej. Minimalna temperatura jest tylko zapamiętywana tylko przy minusowych temperaturach. Oto program: Config 1wire = Portd.5 : Dim Odczyt(2) As Byte , A As Byte , Dim T As Integer , Tmin As Integer ,...
Trzeba prawdopodobnie tylko wyłączyć kursor. Funkcja void LCD_SendCommand(unsigned char ucCommand) komendy zdefiniowane l pliku .h LCD Ewentualnie spróbuj pobawić się kontrastem może uda się go ustawić tak aby nie było bardzo widać przejścia kursora podczas odświeżania. Co do porównania temperatur w bibliotece onewiere.c jest funkcja OW_CompareRawTemperature....
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....
Zbudowałem mały sterowniczek do kolektora na 2051, pomiar temperatury Ds1820 w zbiorniku i kolektorze , program w Bascomie, cieszyłem się że ładnie pracuje a tu po czasie ZONG!!!.Jeden z czujników pokazuje mi od czasu do czasu zero. Nie bardzo rozumiem do tej pory chodziło dobrze sterowało pompą i wyświetlało . nawet po wyłączeniu zasilania nie zawsze...
Witam Pisze program na AT2313 obsługujący jeden czujnik temp DS18B20 /identyfiakcja oraz suma kontrolna nie są potrzebne/, a następnie wysyłający wynik pomiaru na RS. Problem tkwi w magistrali One Wire, nie mogę skomunikować się z czujnikiem. Robiłem już próby z rezystorem podciągającym 0d 3.3k do 4.7k. nie pomogło. Każda komenda/1wreset, 1wwrite/ wysłana...
Jak komuś przeszkada ten wzmacniacz operacyjny w AVT2410, to można się go oczywiście łatwo pozbyć. Podpowiem tylko, że należy wykorzystać końcówkę ADJ układu LM385. rozwiązanie nienajlepsze, ponieważ powoduje zmianę wartości współczynnika konwersji, a sprawadzenie różnicy potencjałów na wyjściu tego czujnika do zera dla temperatury 0,0 °C i tak nie...
Witam Mam 7 układów DS18B20 i chciałem dokonywać ich odczytu w kolejności. W przerwaniu od Timer0 ustawiam co 4 sekundy flagę, która ma spowodować wywołanie programu odczytu. ................ Tylko, że wstawienie tego w Case nie ma chyba sensu, bo w momencie wyboru z Case, dane jeszcze nie są obliczone. Pierwsza uwaga to nie dajesz wymaganego czasu...
To ja zaproponuję, abyś zamiast: [syntax=C]lm35_1 = analogRead(lm35_1_pin); lm35_2 = analogRead(lm35_2_pin); temperatura_1 = (5.0 * lm35_1 * 100.0)/1024.0; temperatura_2 = (5.0 * lm35_2 * 100.0)/1224.0;[/syntax] napisać: [syntax=C]lm35_2 = analogRead(lm35_2_pin); lm35_1 = analogRead(lm35_1_pin); temperatura_1 = (5.0 * lm35_1 * 100.0)/1024.0; temperatura_2...
Hey czyli problem jest w instrukcji Ss = Format(ss , " 0.0") wrzuć ten program i powiedz czy wszystko gra jeżeli tak będę pisał co zrobiłem. [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) 'Deklaracja portów od wyświetlacza...
Mam podobny problem z wyswietlanym zerem , tylko ja mam dwa czujniki na jednej lini i z jednego wyswietla mi dobrze a z drugiego od czasu do czasu pokazuje zero . Czy mógłby ktoś z szanownych kolegów zerknąć na kod czy jest wszystko w porządku , nie jestem biegły w programowaniu a to mój pierwszy układ . Zbudowałem mały sterowniczek do kolektora na...
I jeszcze jedno pytanie. Jak czytać temperatury ujemne ? Chyba zapisywane są one jako U2... czyli muszę czytać 9 bitów, zamiast 8 i sprawdzać stan najstarczego bitu. Jeśli jest równy 1 to obliczam jak U2, a jak równy 0 to z BIN do DEC ? A czy ty z tych dwóch bajtów gdzie jest zapisana temperatura wybierasz sobie tylko 8 bitów? Czyli odczytujesz sobie...
Witam, Proponuję spróbować tego, to kawałek kodu z mojego pliku pomocy w obsłudze termometru DS18B20: 'Odczyt temperatury z dokladnością do dziesiątych części $regfile = "89s8252.dat" $crystal = 12000000 Dim Odczyt(2) As Byte 'deklaracja dwóch zmiennych typu byte do których będą zapisywane dane z termometru Dim T As Integer , Przecinek...
witam wszystkich. mam problem mianowicie po skompilowaniu i wgraniu do procka programu wykonuje polecenia z petli glownej. po nacisnieciu przycisku ok powinien wejsc w osobna procedure ustawianie, jednak nawet gdy nic nie naciskam zalacza sie sama. Pytanie dlaczego. jestem początkujący jak co :) [syntax=basic4gl]$regfile = "m32def.dat" $crystal = 16000000...
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 '---------------------------------------...
z ta kalibracjo to ciekawy temat ,ale jak podepne czujnik do termometru zrobionego na rs232 to temperature pokazuje idealnie,a ten kwarc to faktycznie 12.902400 ,tylko zmieniłem go na 11,059 oczywiscie tez zmieniając w kompilatorze. Wybacz kolego , ale Cię troszkę "obsztorcuje" :D 1)Twierdzisz , że używasz DS1820 (9-bit) , a temperaturę obliczasz jak...
Witam, problem tkwi w wyświetleniu temperatury na LCD. Czujnik działa w trybie 12 bitowym. Szczytuje pierwsze 12 bitów z pamięci scratchpada, sprawdzam czy temperatura jest + czy -, a następnie dokonuje konwersji temperatury na string. Na wyświetlaczu pokazują się jednak dziwne rzeczy. Użycie funkcji typu sprintf odpada (zajmuje za dużo miejsca). Konwersja...
Tu masz fragment z prawidłowym pozycjonowaniem temperatury, położenie stC i pozycja przecinka będzie w stałym miejscu bo w twoim kodzie zależnie od ilości cyfr i czy jest temperatura dodatnia lub ujemna cały napis przesuwa sie w twoim kodzie i jedna pozycje to w prawo to w lewo. Tu jeż będzie na stałej pozycji. Pomysł z wyświetlaniem "ślisko nie jest...
Tak jak pisałem wcześniej, czujnik reaguje na zmianę tamperatury. Wartość napięcia wyjściowego jest proporcjonalna do szybkości tej zmiany a nie do wartości temperatury. Moc wyjściowa jest proporcjonalna do mocy wejściowej a czułość proporcjonalna do rezystancji obciążenia Tzn. jeśli temperatura rośnie mamy napięcie dodatnie, jeśli maleje to ujemne....
Ciekawe czy rozdzielenie kabla coś by dało czy jakby między nimi było z 5 cm przestrzeni czy nic by się wtedy nie indukowało? Pojemność będzie znacznie mniejsza, za to może zbierać zakłócenia, możesz zrobić próbę jeśli masz dwa (nawet różne) przewody, nawet wielo żyłowe, nie musisz niczego rozcinać. pojawia się tu pojemność oraz indukcyjność "pasożytnicza"...
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: http://obrazki.elektroda.pl/6410117800_1... Zadaniem...
https://obrazki.elektroda.pl/9042630500_... Pokażę tutaj moją modyfikację rozlutownicy ZD-915 do pracy z pistoletem SOLOMON SL-2. Zmiany wykonałem prowizorycznie już jakiś czas temu, ale jestem zadowolony, więc przyszła pora na zrobienie "na gotowo". Zdjęcia pochodzą przeważnie z wersji prototypowej. ZD-915 nie "cieszy" się dobrą opinią...
Poniżej podaję przykładowy poprawny kod dla układu DS18 B 20, wyświetlający temperaturę z rozdzielczością 0,1*C: Dim Bd(9) As Byte 'tablica Dim T As Integer 'zmienne Dim T1 As Integer Dim T2 As Integer Declare Sub Read18b20 'deklaracja procedury Cls Lcd "Temp:" Do 1wwrite &HCC 'rozkaz SKIP ROM 1wwrite &H44 'rozkaz CONVERT...
Witam, Uczę się bascoma, i stworzyłem sobie programik z zegarkiem i termometrem, lecz na LCD temperatura miga mi na przemian z godziną oto kod: [syntax=basic4gl] 'definicja użytego procesora $regfile "m32def.dat" 'prędkość taktowania 16MHz $crystal = 16000000 $eeprom 'piny podłączenia LCD i definicja jaki LCD | 16x2 Config Lcdpin = Pin , Rs = Portb.0...
Pojazdy konwertowane ze wszystkimi udogodnieniami typu klimatyzacja itd wcale nie muszą pomniejszać zasięgu, można to zrealizować przez oddzielne zasilanie doładowywane w czasie jazdy. Ciekawą teorię Kolega głosi. Jak Kolega chce doładowywać dodatkowe akumulatory w czasie jazdy? Z czego? Z prądnicy zasilanej silnikiem elektrycznym? A ten silnik to...
Witam, czy moglibyście wytłumaczyc jak prawidłowo zapisać w kodzie wyświetlanie temperatury na lcd 2x16...Cały czas mam problem z dobraniem offsetu.... w chwili obecnej pokazuje mi zakres tem od -25C do 25 C . Stan początkowy 262mV ---> 21.68C..Lm35Dz mam w konfiguracji z pomiarem ujemnych temp poprzez dołaczenie R18k i 2diód.(podniesieie nap masy)......
https://obrazki.elektroda.pl/6203916300_... Pytanie: Jak mogę dokonać pomiaru wartości analogowej, jeśli w moim systemie pozostało tylko jedno GPIO na FPGA/mikrokontrolerze? Odpowiedź: Zamiast przetwornika analogowo-cyfrowego można zastosować przetwornik napięcia na częstotliwość. Ponieważ zapotrzebowanie na funkcje pomiarowe staje...
https://obrazki.elektroda.pl/5304082500_... * 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...
Tego fragmentu zdania , nie jestem w stanie pojąć I tu się nie dziwię. Za co przepraszam i postaram się wyjaśnić co miałem na myśli W Czasie przeszukiwania forum znalazłem taki kod konwersji T = Makeint(odczyt(1) , Odczyt(2)) 'zrób z dwóch bajtów jednego integer'a Tspr = T 'teraz sprawdzam jaki jest wynik 'interesuje nas tylko...
Wobec tego arktik1 miał rację twierdząc, że Jego kod działa. Zwracam honor! Już niejako na koniec tej dyskusji/lekcji chciałbym się upewnić, czy muszę coś kombinować z częścią ułamkową, czy też metoda jest identyczna jak w przypadku liczb całkowitych? Chodzi mi o uzyskanie wartości bezwzględnej, by móc potem wykonywać na niej działania matematyczne....
Witam wszystkich czytających, Męczę od jakiegoś czasu router Edimax BR-6104K. Zainstalowałem na nim OpenWRT w wersji 8.09.1. Jeden z portów GPIO (w miejscu diody D12) skonfigurowałem jako magistrale 1Wire do której dołączyłem czujnik DS1820 (w trybie parasite power). Od strony systemu zainstalowane są wszystkie niezbędne składniki do obsługi 1-Wire,...
Witam, Na tej stronie znalazłem opis jak podłączyć czujnik DS18B20 do wyświetlacza LCD http://www.portalnaukowy.edu.pl/termomet... Oto kod: 'Jednopunktowy termometr z czujnikiem DS18B20 'www.portalnaukowy.edu.pl 'Program na podstawie kursu z ksiażki "Mikrokontrolery dla Poczatkujacych" Pana Piotra Góreckiego $crystal = 4000000 'deklaracja...
Witam. Prosze osoby obeznane w temacie o pomoc w znalezieniu błędu w poniższych podprogramach obsługi termometru. Całe urządzenie ma wyświetlać temperature z dokładnością do 1stopnia Celsjusza. W programie wykorzystuje dwa przerwania : od licz. T0 do wyznaczania sekundy , i po upływie tej sekundy w procedurze przerwania wywołuje procedury : ;upłynęła...
If I3 > 0 Then .Nie wiem właśnie, w którym miejscu robię błąd, bo w sumie przepisuje wynik pomiaru do I3 i procedure If, then, else, end if.
Pomyśl trochę nad "sprytem" kodu :D Chodzi mi o to że kiedy widzisz powtarzające się linijki kodu to powinieneś pomyśleć "czym one się różnią" i tylko te różnice napisać osobno a wszystkie powtarzające się sprawy napisać tylko raz. Po co tyle tych Locate 1,1 . Przeciez i tak i tak będziesz tę linijkę rysował od 1,1 zawsze, chyba że inaczej podejdziesz...
$regfile = "m8def.DAT" 'deklaracja procesora, w tym wypadku Atmega16 $crystal = 8000000 'deklaracja cześtotlwiości pracy 'Deklaracja portów od wyświetlacza LCD Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5 Config Lcd = 16 * 2 Cursor Off '**** Termometr **** Config 1wire =...
Myślałem trochę o układzie, niestety z moim skromnym zasobem wiedzy niewiele jestem w stanie zdziałać. Przeczytałem owy artykuł, nadal nie wiem jak wykryć ładunek dodatni. Owszem autor artykułu opisuje pewien sposób, ale niestety jest to tak naprawdę efekt uboczny układu - jaśniejsze świecenie diody. A mi zależy na tym, żeby móc załączać dwa niezależne...
https://obrazki.elektroda.pl/7276456600_... Nowy materiał o silnym działaniu efektu Seebecka może zrewolucjonizować pozyskiwanie energii cieplnej. Nowy materiał został opracowany w Instytucie Fizyki Ciała Stałego na Uniwersytecie Technicznym we Wiedniu. Naukowcy opracowali nowy materiał, który znacznie lepiej przekształca ciepło w...
Witam, tworzę menu dla mojego termometru z wykorzystaniem 3 przycisków. Sęk w tym, że nie chcę to za bardzo działać i nie wiem za bardzo co powoduję, że nie mogę kontynuować programu. Sprawa wygląda tak, że mamy teoretycznie jak na razie zdefiniowane 2 ekrany, które wyświetlają temperaturę pokojową oraz zewnętrzną. Wykorzystałem do tego zmienne uint8_t...
Wiem że podobne tematy krążą po forum, to też od paru tygodni czytam je uważnie i próbuję rozwiązać mój problem ,lecz z marnym skutkiem…:/ Jestem początkujący w programowaniu w BascomAVR, w związku z czym napotykam na duże trudności w realizacji przedstawionego poniżej problemu(jest to kwestia zalki z jednego przedmiotu :D). Problem jest następujący:...
Witam, po przeczytaniu książki o programowaniu zabrałem się z próbę adaptacji popularnych stacji lutowniczych RL1 z Elektroniki praktycznej do własnych potrzeb. Dodałem przyciski z profilami temperaturowymi i obsługę enkodera do zmieniania temperatury, pomiar temperatury otoczenia na DS18B20 i obsługę kolby Weller WSP80 z wbudowanym czujnikiem temperatury...
konwersja liczba ujemny konwersja temperatura temperatura ujemny
alpine kostka z18xe wymiana silnika vectra błędy komputera
stabilizator lm7812 polar cz340
Wymiana płytki z mikrofonem w Nokii 3.1 TA-1063 Dekoder satelitarny po upadku - migająca czerwona dioda