wyświetlanie wyniku zrób na przerwaniach , niezależnie co będzie robił procek wynik będzie musiał wyświetlic co określony czas
Witam! Swego czasu zacząłem przygodę z atmegą i nadszedł czas na zrobienie termometru. Chcę to zrealizować za pomocą dwóch 7 segmentowych wyświetlaczy, termometru DS18B20 oraz mikrokontrolera Atmega8. Układ złożyłem, przedstawiony jest na zdjęciu. Niestety nie posiadam układów, żeby użyć mniejszej ilości pinów, dlatego wyświetlacze zajmują właściwie...
Nie powinieneś odczytywać (getTemp) temperatury częściej niż wysyłasz żądanie (requestTemperatures) jej odczytu, bo wtedy odczytujesz ostatnio zapamiętaną wartość w DS18B20. Program też nie sprawdza, czy wystąpił błąd odczytu. Przeanalizuj sobie przykłady w: https://github.com/milesburton/Arduino-T... Ponadto...
Otrzymane 2 bajty łączę w liczbę 16 bitową. Mnożę ją przez 10 i dzielę przez 16 (tj. przesuwam o 4 bity w prawo). Mam w wyniku temperaturę 10x większą niż w rzeczywistości. Ewentualne obliczenia i ustawienia wewnątrz programu robię na liczbach 10x większych. Dla procesora to żadna różnica. Wyświetlaniem zaś zajmuje się za każdym razem ten sam podprogram,...
Witam, zrobiłem swoją wersję na LCD 2x16 z 4 czujnikami, wyświetlanie wyników na przemian. Mógłby ktoś sprawdzić kod?
ale to jest procedura do DS18S20, który różni się nieco formatem podawanego wyniku od DS18B20 ;)
Z tego co się orientuję to pisząc temp2 = 32+(5/9)*temp; działasz na liczbach całkowitych, więc wynik będzie zawsze 32 bo 5/9 całkowite to 0. Chyba powinno być temp2 = 32.0+(5.0/9.0)*temp; Ale nie jestem pewien. Dodano po 17 Z tego co pamiętam z programowania w C to właśnie zapis "5.0/9.0" dawał kompilatorowi sygnał że dzielenie ma się odbyć na liczbach...
oryginał: /* Plik "main.c" KURS AVR-GCC cz.5 (xyz.isgreat.org) Termometr cyfrowy, przykład nr. 3 (schemat i opis działania w artykule) atmega16 (1MHz) */ #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" #include "ds18b20.h" /* W tablicy będą formowane...
Jeśli zrobisz obsługę OW na przerwaniu timera baz głupotek typu delay, to nie będzie tam oczekiwań i nie będzie to zakłócało wyświetlania. Jeśli dobrze zrobisz wyświetlanie, to nie zakłóci to obsługi OW na przerwaniu timera. Więc pewne szanse powodzenia są.
Ostrzeżenie mówi, że używasz zmienną temp, która nie została zainicjalizowana, co jest prawdą. W linii double c = temp; przypisujesz temp do c, ale temp nigdzie wcześniej nie ma przypisanej wartości. Pamiętaj, że deklaracja zmiennej w większości przypadków nie powoduje nadania im jakiejkolwiek wartości początkowej. Poza tym robisz źle, bo odczyt temp....
Witam, jestem początkujący więc proszę nie krzyczcie na mnie. Chciałem zrobić termometr na atmega16, z temperaturą wyświetlaną na 3 7-segmentowych wyświetlaczach LED (trzeci to 1 liczba po przecinku). Z głębin internetu udało mi się wyłuskać coś takiego: main.c [syntax=text]#include <stdio.h> #include <avr/io.h> #include <util/delay.h>...
Kod razem z bibliotekami skopiowałem ze strony. /* Plik "main.c" KURS AVR-GCC cz.5 (xyz.isgreat.org) Termometr cyfrowy, przykład nr. 3 (schemat i opis działania w artykule) atmega16 (1MHz) */ #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" #include "ds18b20.h"...
Zrób [url=https://en.wikipedia.org/wiki/Metho... temperatury i doprowadź wyświetlanie temperatury do porządku. Aby uzyskać wartość jednostek przy konwersji temp lepiej użyj operatora modulo.
oto kod mojego programu, właśnie niewiem czy napewno 176 to numer stopnia, skąd jeszcze mogę się tego dowiedzieć? niewiem o co ci chodzi z tym put_s chyba powinno być lcd_puts(zmienna); #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h" #include "ds18b20.h" char stopien=176; char...
Witam, mam problem z przerobieniem biblioteki do obsługi DS1820, tak ,aby można było odczytywać temperature z kilku czujników umieszonych na osobnych pinach. Biblioteki pobrane są ze strony http://kursc.dioda.com.pl/. W podanym niżej pliku port PC0 do którego przypięty jest czujnik jest przypisany na sztywno. Chciałem zrobić tak: #define SET_ONEWIRE_PORT...
Czy przypadkiem ta linia nie jest odpowiedzialna za 10krotnie wyzszy wynik ? hmm Sprawdz i usun ja :P
Ale w jaki sposób dopisać do mojego pliku.h te drugie wyjście? Dodano po 48 W głównym programie main.c jest odczyt z czujnika ds18b20 podpiętego do pinu PA0 a na chwilę obecną temperatura zew i wew jest czytana z tego samego czujnika bo nie potrafię zdefiniować drugiego czujnika na pinie PA2.Czy mam stworzyć nowy olik z rozszerzeniem .h? np:ds18b20x.h?...
Witam serdecznie. Mój cel jest dosyć prosty - zbudować termometr oparty na uC ATmega128 wykorzystując czujnik DS18B20. Sprawa wydawała się banalna - wydawała się, gdyż niestety do tej porty nie potrafię sobie z tym poradzić. KOD: Identyczny jak ten ze strony http://hobby.abxyz.bplaced.net/index.php... (oczywiście ze zmienionym pinem 1wire):...
Witam, Uporałem się już z obsługą multipleksowania wyświetlaczy 7-segmentowych za pomocą timerów, ale teraz powstał kolejny problem. Mam taki kod: [syntax=c]/* Plik "main.c" */ #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "ds18b20.h" #include <avr/interrupt.h> #include <stdbool.h> #define F_CPU...
A więc kolego odczytałem numer seryjny i wyświetla mi, po konwersji wyniku na system dziesiętnym, 16. Czy to jest poprawnie czy znowu jakaś bzdura?
Mam pytanie odnośnie wyświetlania wyniku na wyświetlaczach led temperatury z czujnika DS18b20 odebranej z RMF12. Ramkę ładuję do bufora i wyświetlam na lcd; [syntax=c]lcd_locate(0,0); lcd_char(test[0]); lcd_str("-"); lcd_char(test[1]); lcd_str("-"); lcd_char(test[2]); lcd_str("-"); lcd_char(test[3]);[/syntax] Następnie chcę wysłać te dane do wyświtalacza...
Właśnie natknąłem się na: http://pdfserv.maxim-ic.com/en/an/app162... Przerobie te procedurki co tam są (jak dam radę) i zobacze czy zadziała. Jak ktoś ma jakiegoś gotowca to też może zamieścić (chociaż mam nadzieję, że samemu uda mi się to napisać) :) Zanim zaczniesz się wysilać zrób sobie w programie, który zamieściłeś wyżej tak, żeby wyświetlało...
Witam. Chciałem zrobić termometr bezprzewodowy. Na razie mam problem z komunikacją UART. Nadajnik działa na 100 % odczytywałem temperaturę na komputerze prze ft232. Ale odbiornik nie odczytuje temperatury. W tej chwili obydwa mikrokontrolery są spięte przewodem TX ->RX Kod Nadajnik [syntax=c]#include <stdio.h> #include <avr/io.h> #include...
Jest to modyfikacja kodu termometru z kursu avr-gcc. Mój wkład to funkcje 'przyciski' i 'termostat', a więc błąd dotyczy tylko ich(ewentualnie usytuowania ich w programie). Problem polega na tym, zwarciu PC4 do masy dostaje krzaki na lcd. Oto kod: #include <stdio.h> #include <avr/io.h> #include <util/delay.h> #include "hd44780.h"...
Witam, zamierzam pomiędzy dwiema Atmegami32 przesłać pomiar temperatury, przewodowo, za pomocą SPI. Linie MISO, MOSI, i SCK podłączyłem ze sobą, SS mastera jest na masie, SS Slave'a także. Temperaturę przez pewien czas przesyła prawidłowo, jednak po pewnym czasie, na wyswietlaczu Slave'a sa glupoty, jak odłączę na chwilę kabel SS Slave od masy i znowu...
Wynik po przecinku skacze, bo DS18B20 mierzy temperaturę z rozdzielczością do 1/16 st. C. Tak więc nie ma najmniejszego sensu wyświetlać temperaturę z dokładnością do 2 miejsc po przecinku.
Witam! Zrobiłem sobie termostat i wszystko ładnie po podłączałem oraz oprogramowałem. Jest jednak jeden problem: chce sobie zrobić podmenu (ustawianie histerezy). Na początek tworzenia w/w podmenu chciałem sprawdzić, czy są wciśnięta oba przyciski, a nastepnie wyczyścić wyświetlacz i wypisać aktualną temperaturę. Problem jest jednak taki, że wszystko...
Dzięki tmf z odpowiedź. Mam pytanie dotyczące łączenia instrukcji programów w całość . Chodzi mi o to że robię sobie termometr w którym odczytam sobie temperaturę wewnętrzną ,zewnętrzną a także napięcie swojego akumulatora i czas,datę z układu DS1307.W jaki sposób połączyć kilka plików to ze sobą w sposób profesjonalny? Czy wszystko ująć w jednej pętli...
Układ mam już zmontowany, problem polega na wyświetlaniu pomiaru, a jeszcze precyzyjnie, na pobraniu wyniku pomiaru z termometru. Mianowicie na czas pobrania, wyświetlacz 7-segmentowy gaśnie i zapala się po chwili z nowym wynikiem. Czy jest jakaś możliwość, żeby pozbyć się tej przerwy?
(at)domin122 Stwórz w pamięci obszar danych reprezentujący to co chcesz wyświetlić na pojedynczym wyświetlaczu. Nie wiem ile informacji chcesz wyświetlić, powiedzmy ze około 5 znaków szerokich na 5 kropek. myślę że około 30 bajtów powinno wystarczyć. Do tej przestrzeni wpisz swój wynik pomiaru używając wcześniej zdefiniowanego generatora znaków. Do...
Przypuszczam że jest to wynik przeliczenia wartości z jego rejestrów. Przejdz na DS18b20 i będziesz mił z głowy przeliczenia. W tym termometrze wynik możesz mieć z dokładnością 12bit bez jakichkolwiek przeliczeń tylko odczytujesz rejestry z dallasa. Powodzenia !!!
Poprawiłem, po usunięciu return faktycznie zadziałało. Teraz mam problem z wyświetlaniem wyniku, przykładowo jeśli jestem na wyświetlaniu Nap, podłączam baterie 1,4V wynik wyświetla się, ale po odłączeniu baterii dalej zostaje 1,4V. Dopiero po przełączeniu na Temp i znów na Nap pokazuje 0.0V. Jak zrobić, żeby wynik na bieżąco był odświeżany i zczytywany...
Ale już miałeś 85*C. Co zmieniłeś że masz 0,0*C? Bo napisałeś "I dalej to samo 0,0 stopnia" czyli rozumiem że przed zmianą opóźnienia też miałeś 0,0. A powinieneś testować to na kodzie który dawał wynik 85*C. Czyli ostatecznie: wróć do kodu który dawał wynik 85*C i to w nim zmień opóźnienie na to opóźnienie w pętli.
Tu masz sprawdzoną procedurę odczytu temperatury... No nie całkiem sprawdzoną :( Przy temperaturach ujemnych , zawyża wynik o 1 stopień :( Dla B1=&H90 i B2=&HFC wyświetla -54 a powinien -55.Skoryguj obliczenia dla ujemnych :) Piotrek
janbernat --> Wystarczy przerwania wyłączać na czas przesyłania poszczególnych bitów w odpowiednich pętlach, które wysyłają całość. Pewnie, że to też co nieco zabiera ale o niebo krócej niż gdy wyłączać przerwania na całe te czasy które tu przytoczyłeś. Druga sprawa to oczywiście jak się wykorzystuje w ogóle przerwania, bo jeśli w tym sposobie o którym...
Zastanawiał się ktoś nad tym że multipleksowanie startuje od razu a wyniku konwersji jeszcze nie ma? Niedawno pisałem taki termometr i żeby w pierwszej sekundzie do momentu aż zmienne otrzymają swoje wartości termometr miał coś do wyświetlenia to wyświetla "Init" :D Mogłem wyświetlać cztery óswmki jako test segmentów wyświetlacza, ale to brzydko wyglądało...
1. Zapomniałeś o filtrowaniu pomiarów, o czym pisałem parę dni temu. Pomnożenie wyniku przez jakąś liczbę, a nestępnie podzielenie go przez tę samą liczbę raczej nie daje filtracji. 2. W jakiej to nocie prezeczytałeś, że wynik dzielenia 8000000 przez 1024 i przez 7 wynosi 1000? Zwykle parametry czasowe wylicza się podczas pisania programu, a nie "wyczytuje...
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...
Znalazłem jeszcze taki kod: http://www.elektroda.pl/rtvforum/viewtop... Uproszczony do maksimum. I = 1wread(2) S = I / 16 T = Fusing(s , "##.#") Locate 1 , 1 Lcd "Temp:" ; T ; Chr(0) ; "C" Program pobiera wynik, dzieli przez 16 i wyświetla na LCD.. Tylko czemu dzieli akurat...
Ale temperatura u mnie jest ok może być tak jak jest bardziej interesuje mnie te dwa pozostałe parametry tj display.print(int(flowRate)); oraz display.print(totalMilliLitres/1000); . Jak wyświetlić te wartości po dwóch miejscach po przecinku, bo jak zrobi się już dwa to nie będzie problemu zmniejszyć na jeden. I wartości na minus tutaj nie będzie bo...
(...) y jeżeli elektronicznie podłączenie jest sprawne, zaproponujesz listing (AVR GCC) testujący taka "obciążoną" magistralę wyświetlający adresy odczytanych termometrów, ich parametry i temperatury oraz szacunek, który z nich to fake. Program ma możliwie najwięcej nieprawidłowości wychwycić (obsługa błędów). Rozpoznanie podróbek DS18B20 wymaga zaimplementowania...
[syntax=c]float temp = 0; temp = (float)(pad[0]+(pad[1]*256))/16; dtostrf(temp,1,1,buf);[/syntax] Dodam, że to kosztuje cię trochę KB kodu, sporo pamięci i sporo cykli, gdy wystarczy użyć, albo notyfikacji stałoprzecinkowej (fixed point) // nota bene u mnie mimo --fixed-point-enable najzwyczajniej NIE DZIAŁA (kompilator pluje się o nierozpoznany typ...
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...
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...
Jeśli potrzebujesz jedną cyfrę po przecinku to : Wynik = Float * 10 Wynik zapisz do zmiennej typu Int. Nie programuję w Arduino , ale to chyba dokona niejawnego rzutowania na Int. To z przykładowej wartości 58,7 zrobi 587. Potem już sobie "pykasz" na przykład Modulo 10 :D
nie pomogło bo na testowym z arduino jest to samo może czujnik padł Zgaduję, że gdy mówisz "na testowym z arduino jest to samo", próbujesz użyć innego mikrokontrolera do testowania tego samego czujnika? Jeśli tak, i wciąż widzisz te same wyniki, możliwe że problem leży faktycznie w czujniku DS18B20. Czujniki DS18B20 są zazwyczaj dość niezawodne,...
http://obrazki.elektroda.pl/8609137500_1... Witam, przedstawiony układ umożliwia: -pomiar zarówno dodatnich, jak i ujemnych temperatur, -wybór jednej z dwóch częstotliwości powtarzania pomiaru, -pamiętanie najniższej temperatury (wyświetlanie po wciśnięciu przycisku, kasowanie po resecie uC), -prezentację wyniku na 4-cyfrowym wyświetlaczu...
2. Jak wygląda wyświetlanie temp z DS1820 (nie B), przy użyciu wzoru: TEMP=TEMP_Read-0,25+(Count_Per_C-Count_R... Wynik w postaci ZSDJ,X ale lubi oszukiwać :(
Przewód powinien mieć małą pojemność, super by był w ekranie Jeśli w ekranie to przeważnie ma dużą pojemność. Dla DS sprawdza się skrętka komputerowa. Zakłucenia w wyświetlaniu wyniku pomiaru temperatury mogą być powodowane różnymi przyczynami, na przyklad resetowanie processora, czego nie zaobserwujesz bezpośrednio na LCD. Przyczynę resetu można odczytać...
Program Kompiluje sie dobrze jednak nie wyświtla wyniku pomiaru No od kompilacji programu do wyświetlenia wyniku jest jeszcze parę kroków :wink:. Co znaczy nie wyświetla? Czy nic nie wyswietla, czy źle wyświetla, czy w ogóle coś wyświetla? (to ostatnie jest pewne bo nigdzie nie widzę żebyś konfigurował lcd'ka). Jak jesteś początkujący to proponuje...
Próbowałem. Dodawałem odczyt do programu głównego za getrc5, a wyświetlanie temp w Sub Wys_czas na końcu za Lowerline. Efektem tego było wyświetlanie d dolnej linii na wyświetlaczu: Wynik: 0.0 C Us. Czyli coś namieszałem, bo powinno być najpierw w dolnej linii: Ustaw godzinę, po ustawieniu dopiero temperatura.
Prosze bardzo, zmenne oraz main. Zakomentowane linie sluza do odczytu temperatury z ds1820, wyswietlania jej na LCD czy tez zapiswanie do eepromu. [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <stdio.h> #include <stdlib.h> #include <util/twi.h> #include "hd44780.h" #include "ds18b20.h" #include "i2cds1307.h"...
Przeczytałem, to, ale problem polega na tym że po takiej zamianie będę miał temperaturę w zmiennej char, i nie będę mógł jej porównać z inną temperaturą. Jak robiłem termometr na LM35 to zrobiłem to w taki prosty sposób że miałem np. int calkowita = wynik/100 int poprzecinku = wynik%100 int bezprzecinka=calkowita*100+poprzecinku i miałem jedną cyfrę...
Witam Próbuje przerobić kod obsługujący kilka DS18B20 na jednej linii i drugi obsługujący kilka DS18B20 na kilku liniach. Niestety jak na razie efekt jest taki, że działa tylko pierwsza linia, czyli dwa DS18B20. Jeśli chodzi o konfiguracje, to celowo nie ma Config 1wire = Porta.1 gdyż wpisanie tego portu, jako 1WIRE powoduje wyświetlanie 0.0 dla pierwszego...
Witam, mam problem, kiedyś robiłem termometr oparty na atmega8, z podpiętym lcd i czujnikiem ds18b20, działało elegancko, teraz chcę wykorzystać starą płytkę, uruchamiam a tu nie wyświetla temperatury, tekst na wyświetlaczu jest elegancko, nawet mam podpięty do portu com i też działa, a z tym czujnikiem się już kilka dni użeram i nic. Testowałem na...
Witam Wszystkich :) Mój układzik dobiega już końca, jeszcze tylko kilka poprawek programowych i przejde do fazy testów. Mam jeszcze tylko problem z zasilemniem mojego układzika. Układ odczytuje dane z GPSa (RS232) i po przetrawieniu danych wyświetla wynik na wyświetlaczu od Nokii 3310. Sercem układu jest ATMEGA 32 do tego wchodzi MAX232, pamięć 24C64...
Witam ponownie Zrobiłem to przez Timer0. Jednak problem z aktualizacją wyświetlania dalej występuje. Jeszcze drugi problem to start, przez okres zdefiniowany zmienną Licznik ( teraz równą 300 ) nic się nie wyświetla - dopiero po czasie = 300. Próbowałem również z Enable/Disable Interrupts na czas pomiaru, ale nie było żadnego efektu. Mam takie pytanie...
W kodzie widziałem _delay_us(2), _delay_us(15) przy obsłudze magistrali 1W bez wcześniejszego użycia cli(). Sprawdzałeś jak długo wykonują się twoje przerwania? Dotyczy to sytuacji: //wykonanie funkcji w tym miejscu powoduje błędne wyświetlenie lecz nie powoduje migania Miganie zaś (gdy wynik pomiaru ok) jest spowodowane tym, ze w przerwaniu masz _delay_us(15)...
W tym co napisałeś : temp1 = read_byte(); //lsb temp2 = read_byte(); //mmsb ... float temp=0; temp=(float)(temp2+(temp... moim zdaniem powinno być temp=(float)(temp1+(temp... w końcu MSB ma być bardziej znaczącym bajtem więc jego należy przesunąć o 8 pozycji i dodać LSB...
Akurat też buduje termometr na ds18b20 tylko że w Bascomie, ja też miałem problem z ujemną temperatura. Co do ujemnej temperatury trzeba do obliczeń zamienić ujemną liczbę na dodatnią bo ds podaje np . dla 0 stopni zwraca wartość 0 co mnoży się dalej * 0,0625 daje 0 ale dalej dla ujemnych daje wartość -1 , -2 , -3 itd. Trzeba otrzymany wynik zamienić...
Pytam więc czy jest alternatywa? Sprintf odpada. LCD działa dobrze, wyswietla teksty. Odczyt temperatury też jest poprawny. W innej wersji programu szczytuje kolejno bit po bicie do tablicy[12] i wyswietlam wynik w postaci binarnej...po przeliczeniu temperatura się zgadza. Błędy są dopiero wtedy kiedy zamieniam wynik jak w kodzie powyżej i próbuję go...
Musze mierzyć dwie temperatury formy prasy z zakresu 1-100C. Pomiar za pomocą zwykłej J-ki. Wyświetlanie wyników musi być na drzwiczkach skrzynki elektrycznej. Macie jakieś gotowe i możliwe tanie rozwiązanie dla problemu? Te z allegro za 10zł byłyby idealne jeśli chodzi o wyświetlacz ale one są na DS18B20 a nie na jotki. Szukam czegoś podobnego. Nie...
Witam, mam pytanie odnośnie przesyłania pomiaru temperatury z czujnika DS18b20 przez RS232 do PC. Korzystam z płytki edukacyjnej: http://are.net.pl/?id=products&cmd=9... Do uC mam podłączony czujnik DS18b20, wyświetlacz LCD. Pomiar temperatury na LCD wyświetla się poprawnie, to samo chcę wysłać przez RS232 do PC i już nie działa, w ogóle...
Witam chciałbym zaprezentować mały układzik pomiaru temp. z dwóch czujników Ds18b20 po sieci WiFI. Od dawna chciałem zbudować termometr elektroniczny dla domu który będzie mierzył temperaturę zewnętrzną i wewnętrzną , nawet parę takich zrobiłem niestety zawsze brakowało mi determinacji aby dokończyć obudowę i projekty lądowały w..... (no wiecie na strychu...
Jak mogła nie zdać egzaminu ?Tzn. wyświetlanie powinno być prawidłowe(dalej nie wiem dlaczego się restartuje program). Skoro przy każdym odświeżaniu wyświetlacza wyświetlane są na nowo dane i ostatni znak po (stopniu) jest czyszczony. I nie ważne ile znaków będzie miał wynik temperatury. Zawsze wyświetli się to poprawnie. A zmiana jaką zaproponowałem...
WItajcie Czy jest szansa, by w 2 kB 90s2313 zmieścić obsługę DS18B20 wraz z obliczeniami by uzyskać na LCD temperaturę z wartościami po przecinku. Walczę z optymaliacją programu i wszystko łacznie z LCD i komunikacją sie mieści, ale gdy dodam operacje obliczania temperatury to zawsze wychodzi mi ponad 2 kB. Jak do procedury DS18B20 i na jakich zmiennych...
http://obrazki.elektroda.pl/2534599000_1... Zegar + termometr DS18B20 - ATtiny 2313 - LED Wykonany na ATtiny 2313. Znane podobne zegary oparto na Atmega 8 i LCD. Program napisany w Bascom. Pracuje bez zarzutu. http://obrazki.elektroda.pl/9466031800_1... http://obrazki.elektroda.pl/4401807600_1... http://obrazki.elektroda.pl/5327081100_1...
Usunąłem Wait 1 przy konwersji z DS18B20, działa, bez problemu ( na trzech przewodach ), tylko wyniki są opóźnione - tzn. wyświetlany wynik nie jest z aktualnego pomiaru, tylko z poprzedniego. Dodałem jeszcze dwa czujniki DS18B20. Ich zapis razem z godziną i datą na karcie jest jak najbardziej w porządku, tylko wyświetlanie trochę szwankuje - tzn. czasem...
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...
Szanowni Forumowicze, od pewnego czasu interesuję się programowaniem mikroprocesorów. Wykonałem już kilka bardzo prostych projektów jak woltomierz cyfrowy czy termometr analogowy (mcp9700) z wyświetlaniem wyniku na LCD (HD44780). Problem mam jednak ze zrozumieniem sterowania elementami cyfrowymi. O ile w przypadku np. termometru mcp9700 sprawa jest...
... Nie możesz mieć szeregowych rezystorów z czujnikami.... Producent tak sugeruje: https://www.maximintegrated.com/en/image... (kurde dlaczego edytor zaawansowany nie działa?) Wywaliłem problematyczny termometr, zostawiłem sześć. Napisałem sobie wsad który zamiast pokazywać temperatury liczy i wyświetla procent błędnych odczytów....
Mam taki problem że mierze temperaturę za pomocą ds18b20 dostaje wynik(2 bajty lsb i msb) i wyświetlam go na lcd działa pięknie, teraz chce go wysłać bezprzewodowo za pomocą rfm12b fragment kodu wysyłania wygląda tak while(1){ LEDR_ON(); RFXX_WRT_CMD(0x0000);//read status register RFXX_WRT_CMD(0x8239);//!er,!ebb,...
Bingo ! :) Cała pętla wykonuje się może w ciągu 5 -10 ms . Więc podczas trwania warunku, kilkadziesiąt razy zostanie wykonana także funkcja lcd.clear() . To powoduje migotanie wyświetlacza, zwłaszcza w momentach gdy program na chwilę zwalnia ( nie znam biblioteki DS18B20 ale może ona być blokująca - czyli blokuje działanie programu do czasu, gdy układ...
teraz już jest wszystko w jednej lini, dziękuje;) ale mam jeszcze jeden problem, a mianowicie cały czas wyświetla mi coś takiego: "wynik: -0,1 stopni C, nawet gdy odepnę czujnik temperatury to się nic nie zmienia. Nie trzeba jeszcze czegoś przypadkiem ustawić przed kompilacją??? Wydaje mi się ze nie wykrywa czujnika wogóle. a podłączenie LCD mam tak...
Tu masz działający i uproszczony do max kod do obsługi ds18b20 (wyświetla temp na wyświetlaczu) [syntax=basic4gl] I = 1wread(2) S = I / 16 T = Fusing(s , "##.#") Locate 1 , 1 Lcd "Temp:" ; T ; Chr(0) ; "C" [/syntax] tu masz dokładnie objaśnione co i jak: [syntax=basic4gl]Do 1wreset 'reset 1wwrite &HCC 'jedna kostka, więc wykorzystujemy rozkaz SKIP ROM...
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...
http://obrazki.elektroda.pl/7170442600_1... Witam, Chciałbym zaprezentować system pomiaru temperatury, który wyświetla wynik na wyświetlaczu 7-segmoentowym oraz na urządzeniu przenośnym z systemem Android. Koncepcja http://obrazki.elektroda.pl/2779861800_1... Mikrokontroler za pomocą magistrali 1-Wire odczytuje temperaturę...
Witam ponownie. Ze względu na częstą potrzebę wykonywania pomiarów temperatury w dość długich procesach postanowiłem ulżyć sobie i stworzyć coś co zrobi to za mnie. Efektem moich przemyśleń jest urządzenie oparte o mikrokontroler Atmega8 i czujnik temperatury DS18b20. Dodatkowo urządzenie wyposażone jest w wyświetlacz, na którym można odczytywać mierzoną...
Witam Zachęcony sukcesami z płytką EVB 4.3 zaprojektowałem i zamówiłem swoją - na początek z AtMega8 w DIP. Do tego pamięć 24C32 oraz układ do RS485. Wszystkie układy mają kondensatory 100 nF ( stabilizator 7805 również + jeden elektrolit ). Całość ze złączem pod wyświetlacz 2*24 ( właściwe 4*12 ) Reset przez rezystor 10 K do +5V AtMega8L ( na 8 MHz...
Aż tak bardzo zły? To teraz przyznam ze schemat podłączenia tych wyświetlaczy dokładnie znalazłem tu na elektrodzie (at)michalko12 Z tego kodu wynika, że jeżeli odczyt temp, jest ujemny to (dosłownie) "odwróć" go czyli zmień znak, następnie cały wynik przesuń w prawo tak aby pozbyć się ułamków... to rozumiem.. i to 100% racja... Jednak po zastosowaniu...
Witam. Szukałem już duuuużo na forum i nie znalazłem działającego kodu do obsługi trzech czujników ds18b20 (nie działa mi nawet obsługa dwóch) Jeśli ktoś wie jak to zrobić to prosiłbym o pomoc. PS. Jeden czujnik obsługuje się w miare prosto. Wynik wyświetla z rozdzielczością do 0.1 st C i działa OK $regfile = "m8def.DAT" $crystal = 1000000...
Pozwolę sobie podpiąć się pod temat. Zleży mi na zwiększeniu czybkości odczytu z Dallasa więc zmieniłem warość konfiguracyja w DS18B20 na odczyt 9bitowy. Po odczycie wartość scratchpad wynosi 31, czyli jest ustawione dobrze (9bitów). Teraz nie wiem jak to poprawnie odczytać? Napsiałem 2 procedurki odczytujące i wyświetlające wynik na wyśletlaczu. Pierwsza...
https://obrazki.elektroda.pl/8241660300_... Spodobała mi się stacja pogodowa Byrrt'a https://obrazki.elektroda.pl/1157501600_... https://obrazki.elektroda.pl/2524472200_... https://obrazki.elektroda.pl/3232342100_... https://obrazki.elektroda.pl/5523406500_... https://obrazki.elektroda.pl/6703679600_...
Witam, pracuję nad czujnikiem temperatury do silnika pewnej maszyny. Mam dwa problemy. 1. Czy istnieje sensor temperatury typu DS18B20 (1-wire) o zakresie do 200 C ? 2. Czy istnieje możliwość wyeliminowania mrugania czterech wyświetlaczy 7seg ? Jak to zrealizować w C ? Wyświetlacze gasną podczas wykonywania pomiaru temperatury przez DS18B20. Zmontowałem...
Witam ! Piszę program regulatora temperatury. Używam czujnika ds18b20, którego obsługuje Attiny2313. Komunikacja z komputerem poprzez USART. Postanowiłem, że prześle 2B danych z czujnika ds18b20 i konwersje dokonam na komputerze, w terminalu otrzymuje śmieszne krzaczki, ale nie przejąłem się tym, napisałem w Delphi używając bibliotek CPort program do...
Dzięki za wyczerpującą odpowiedź (at)tmf. Parę lat temu zrobiłem rodzicom taki alarm/termometr do pieca CO z lat 80-tych. W piwnicy LM35 z jakimś małym "kondensatorem uśredniającym", nie pamiętam jakim, może 1uF, 20 metrów kabla telefonicznego dalej - w mieszkaniu jest drugi mały kondensator Atmega8, i... wynik pomiaru taki sam jak przy 20cm przewodu....
Hej, Chcę sprawdzić jak czujnik zachowuje się przy wyższych temperaturach. Dlatego podgrzewam go suszarką i wynik bardziej znaczący bajt na wyświetlacz (system binarny, wyświetlam bajt 1 ze scratchpada) . W pewnym momencie po przekroczeniu temperatury ok. 64 stopnie C, bajt zawiera same 1. W tej samej pętli sprawdzam zawsze sumę CRC i co dziwne nawet...
Zacznij od rozdzielenia problemów: Najpierw sprawdź sobie zapis do EEPROMA - czyli zrobić zapis i potem odczyt z porównaniem z wartością początkową. Byłoby super mieć jakiś display i wyświetlać cząstkowe wyniki. Jak tego bedziesz pewien, to zrób obsługę czujnika w kolejności: 1. Jego inicjalizacja. To nie jest tylko zwykły reset ale trzeba też mu ustawić...
Jest to dość klasyczny układ, nie jest ani odkrywczy, ani nie zawiera najnowocześniejszych elementów - termometr z 3-cyfrowym 7-segmentowym wyświetlaczem LED ze wspólną anodą. Zamieszczam pełny kod programu w asemblerze z komentarzami. Układ jest zbudowany na mikrokontrolerze AT89C2051. Jego zadaniem jest odczyt temperatury z czujnika DS18B20 (1-wire),...
Czy teraz jest lepiej? I jeszcze jedno pytanie czy wyjcie control na lcd jest dobrze podlaczone, oraz czy kondensatory na wyjściu vcc i gnd w max232 sa dobrze podlaczone pod wzgledem biegunowosci. Rezonator jaki chce zastosowac to 20MHz, czy taki bedzie pasował? http://obrazki.elektroda.pl/5483227600_1... Ogólnie urządzenie ma służyć...
http://obrazki.elektroda.pl/5623098300_1... Założenie jest takie aby szybko i sprawnie zbierać dane z rozproszonych czujników i wyświetlać je w ładnej formie i mieć możliwość porównania wyników za pomocą wykresów. http://meteo.lipowa.net/temperatury2 Do działania takiego systemu potrzebujemy serwer HTTP z php i publicznym adresem IP...
hubertfab jest to proste urządzenie, które nie stanowi problemu w budowie, ale nie rozumiem w czym problem? LM35 też mógłby być, ale moim zdaniem pomiar byłby obarczony większym błędem, gdyż na dłuższym przewodzie w tym wypadku 5m i temperaturze to temperatura przewodu mogła by fałszować wynik. Z czterema wyświetlaczami również działa. Dorzucam film...
Ad1. Znalazłem rozwiązanie mojego problemu. Ad2. Niestety nie znalazłem tego czego szukałem, samo stworzenie tablicy i wyświetlenie tego co napisze nie jest problemem najgorzej z wyświetleniem otrzymanej temperatury poniżej zaprezentuje kawałek kodu. fTemperature=(float)(cTemper... dtostrf(fTemperature,1,1,cStringBuff...
Nie do końca rozumiem! Pobrane z Ds'a dane są zapisane w tablicy: unsigned char ds18b20_pad[9] Trochę niżej składam to i dzielę na 16 czego wynikiem jest zmienna temp zadeklarowana oryginalnie jako double: [syntax=c]temp = ((ds18b20_pad[1] << 8) + ds18b20_pad[0]) / 16.0 ;[/syntax] Zmienna temp była typu "double" i program działał, natomiast zmieniłem...
Więc tak to co wrzuciłem w linku tam jest wszystko opisane. Nadajnik należy skonfigurować jako nadajnik :) w urządzeniu mierzącym temp, zmierzyć temp zapisać do 2 rejestrów np MSB,LSB dalej writeCmd(0x0000); rfSend(0xAA); // PREAMBLE rfSend(0xAA); rfSend(0xAA); rfSend(0x2D); // SYNC rfSend(0xD4); rfsend(MSB);...
Witam Szanownych forumowiczów! Naukę z mikrokontrolerami zacząłem dość niedawno i od pewnego czasu męczy mnie pewna sytuacja z którą nie potrafię sobie poradzić dlatego zwracam się z prośbą do was. No więc do sedna programuję na płycie EvB 4.3 zakupionej w internecie program jaki używam do programowania to AVR Studio 5.0. Mój problem polega na tym,...
Dziękuje za liczne odpowiedzi. Wystarczy po ustawieniu pozycji kursora LCD wysłać tylko zaktualizowane wartości wtedy gdy się wielkość zmienia. Już zabieram się do roboty, trafne spostrzeżenie. Zamiast wypisywać co cykl cały wyświetlacz (kilka ms) będę wypisywał zaktualizowane temperatury na już wcześniej wysłanym szablonie. A może kolega wytłumaczyć...
Witam W ramach nauki języka C na Avr'ki postanowiłem zrobić prosty termometr. Czujnikiem jest DS 18B20, a wynik ma byś wyświetlany na dwóch wyświetlaczach led obsługiwanych multipleksowaniem. I tu pojawia się problem. Napisałem program, poprawiłem błędy a termometr nadal nie działa i nie wiem czy problem jest w programie czy w sprzęcie. Oto program...
https://obrazki.elektroda.pl/7536377200_... Witam chciałbym przedstawić jedną z możliwości do wykorzystania modułu wifi esp8266. Pracuje on jako kontroler układu do pomiaru temperatury DS18b20. Zazwyczaj większość ludzi na tym kończy tworząc jeszcze stronę www na samym esp i wyświetlając np wynik. Ja poszedłem krok dalej. Dane czyli...
Witam Zegar genialny, sterowanie pilotem chyba nie przyszłoby mi do głowy :D ale :!: wyłaczanie budzenia z pilota nie jest dobre dla "śpiochów" (wiem po sobie :D ) - mając budzik dalej od łóżka, muszę wstać, żeby wyłączyć alarm -> jak wstanę, to się rozbudzę, i już nie marzy mi się tak bardzo dalsza drzemka ;) Natomiast, mając wyłącznik alarmu przy...
wyświetlanie wyniku bascom ds18b20 wyświetlanie zaokrąglanie wyniku
instrukcja kuchenki zapis pliku excel naprawa zamka drzwi
Strąg 24 – piszczenie i brak uruchamiania, diagnoza zasilacza i LED HP Compaq Presario A900 modem Conexant HDA – sterowniki, instalacja, diagnostyka