Witam /files/user_img/u43/termostat.JPG Jest to termostat. Jego działanie miałoby polegać na ustawianiu temperatury za pomocą dwóch switchy(góra "+", dół "-"). Po przekroczeniu ustawionej temperatury ma przełączyć się przekaźnik. Na wyświetlaczu ma się pokazywać temperatura aktualna oraz nastawiona. Z góry dziękuję za pomoc.
|
|||
Jeśli termostat ma "pilnować"
Jeśli termostat ma "pilnować" podgrzewacza wody w zamkniętym zbiorniku, to jak dla mnie to 100 stopni, to już o wiele za późno na alarm.
Co do schematu to polecę Ci dwie witrynki z artykułami po przeczytaniu których sam błędy/nieprawidłowości znajdziesz (-;
linka 1 -> o przekaźniku
linka 2 -> zasilanie ?C i nie tylko
Mówi się też że stan aktywny na porcie ?C to logiczne zero, więc ja bym leda zapiął do Vcc - to tylko sugestia.
Może też nie potrzebujesz rezonatora i możesz skorzystać z wewnętrznego oscylatora, mniej elementów będzie na PCB i może płytka będzie mniejsza.
Powodzenia (-;
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
Skorzystałem z linków które
Skorzystałem z linków które podałeś i zmieniłem cały swój schemat. Teraz proszę o ocenę :)
/files/user_img/u43/Termostat.png
Chyba parę filmów jeszcze
Chyba parę filmów jeszcze obejrzałeś edukacyjnych, efekt piorunujący ((-;
Przypatrz się co wyszło z dławikiem.
kaktus
Kurcze masz rację jaka wpadka
Kurcze masz rację jaka wpadka :) już poprawione oraz pozmieniałem trochę z wyświetlaczem bo postanowiłem połączyć na przewodach.
/files/user_img/u43/Termostat_1.png
Jeszcze jest jeden problem: program. Posiadam program do mierzenia temperatury i pokazaniu wyniku na wyświetlaczu. Jeszcze nie testowałem czy działa.
Ale jeszcze trzeba wpisać histerezę 5 stopni i alarm oraz co jest najważniejsze możliwość nastawiania temperatury.
Czy posiada ktoś z Was jakiś programik na którym mógłbym się wzorować. Podpatrywałem program Mirka dotycząca wytrawiarki aby pojąć histerezę ale mam jeszcze z tym problem.
Proszę o pomoc i wskazówki.
Pozdrawiam :)
Do tinny też powinno się
Do tinny też powinno się zmieścić. Co za różnica czy wyświetlacz na kabelku czy bezpośrednio przylutowany na PCB? Te same dziury musisz wiercić.
Z tą histerezą to chodzi o margines załączania wyłączania, żebyś grajka z przekaźnika nie zrobił.
Np. ustawiasz sobie temperaturę załączenia na 20 stopni, więc niech załącza jak jest poniżej czyli np 19,
a temperaturę wyłączenia na 30 stopni więc niech wyłącza powyżej np gdy będzie 31 stopni. Ważne aby przeciągnąć czas grzania ponad próg 30 stopni, o ileś tam stopni. I dogrzewać gdy temperatura będzie poniżej zakresu - progu.
To tylko mój przykład dla zobrazowania o co chodzi, chyba nie pogmatwałem
Sam coś napisz bo to nie jest skomplikowane.
powodzenia
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
Mniej więcej wiem o co chodzi
Mniej więcej wiem o co chodzi z histerezą ale nie mam pojęcia jak to programowo rozwiązać.
Proszę o sprawdzenie programu, ponieważ wgrałem do procka i wyświetla mi temperaturę 0 stopni C, gdzie mam błąd?:
Fusebity ustawione na wewnętrzny oscylator 8MHz.
Jak dla mnie to zgwałciłeś
Jak dla mnie to zgwałciłeś DS-a bez gry wstępnej i ostrzeżenia, na siłę.
Teraz się dziwisz że ma krzywą minę ((-;
Opowiedz mi szczegółowo jak teoretycznie ma wyglądać komunikacja - odpytywanie tego układu scalonego.
Jak nie wiesz to pewno mirlej gdzieś to tu opisał, ewentualnie nota katalogowa i teraz wiesz czemu noty są takie ważne - to przepisy postępowania na "udany seks" ze scalakami.
Opisz jak ma działać Twój termostat.
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
Czyli DS "kaput"? Chciałem
Czyli DS "kaput"?
Chciałem sprawdzić i nauczyć się pomiaru temperatury oraz wyświetlania jej na wyświetlaczu. Tylko z tym pomiarem jest coś nie tak :(
DS'a podłączyłem jak na moim schemacie tylko testowo do nóżki PB.0, i niestety program pokazuję non stop "0" stopni.
Termostat:
W pierwszej linii wyświetlacza chciałem aby się wyświetlała zmierzona przez czujnik temperatura np: TEMP: 25,0 C
W drugiej linii wyświetlacza chciałem aby się wyświetlała ustawiona temperatura np: NAST: 28,0 C
Gdy temperatura mierzona osiągnie zadaną zmienia sie stan na jednej z nóżek procesora, przekaźnik przełącza styki i zapala się dioda led. Histereza 5 stopni czyli temperatura musi spać 5 stopni mniej niż zadana wtedy przekaźnik wraca do pozycji pierwotnej.
Dodatkowa funkcja to buzer który się włącza po określonej programowo temperaturze.
Czujnik cyfrowy pewno
Czujnik cyfrowy pewno sprawny.
Problem polega na tym że nie wiesz jak go obsłużyć.
Aby z powodzeniem uruchomić projekt, musisz posiadać wiedzę teoretyczną na temat tego cyfrowego układu scalonego.
Czyli musisz nauczyć się "gadać" za pomocą ?C, z tym scalonym czujnikiem. BEZ TEGO ANI RUSZ.
Dlatego ponawiam prośbę: Opowiedz mi szczegółowo jak teoretycznie ma wyglądać komunikacja - odpytywanie tego układu scalonego.
A na święta przyjmij ode mnie życzenia -> Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.
((-;
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
Dziękuję za życzenia mistrzu
Dziękuję za życzenia mistrzu YODA:)
Tobie również życzę Wszystkiego Dobrego i jeszcze więcej cierpliwości w nauczaniu i pomocy innym :)
Napisałem nowy program :) niestety temperatura jaką wskazuję to: -0,06 C. Wzorowałem się na opisie: http://mirley.firlej.org/obsluga_ds18x20
Gdzie popełniam błąd bo nie rozumiem :(
chymmmm, nie masz się
chymmmm, nie masz się wzorować tylko zrozumieć co i z czego wynika a jak już będziesz wiedział to wtedy możesz spróbować się wzorować, ale podejrzewam że nie będzie to już konieczne.
No więc skoro nie chcesz mi teoretycznie opowiedzieć to może ja trochę zacznę ;-ppp
aby 1wire działało to szyna musi mieć pull-up i to tyle jeśli chodzi o hardware. Czujnik musisz zasilić odpowiednim (prawidłowym) napięciem.
Cyfrowy czujnik DS może pracować nazwijmy to w dwóch "konfiguracjach sprzętowych" - pasożytniczej (podłączenie na dwóch kablach) i zwykłej (podłączenie na trzech kablach). Jak będziesz chciał wiedzieć jakie są konsekwencje jednego i drugiego podłączenia to poczytaj, bo różnice są duże.
Teraz trochu o samym czujniku scalonym.
Po pierwsze, musisz z czujnikiem dogadać się aby zmierzył i prze konwertował dla Ciebie temperaturę na wartość którą jesteś w stanie przetworzyć w swoim systemie ?C. I powiedzmy że to jest pierwszy etap. Tu musisz wiedzieć że zajmuje to odpowiednią ilość czasu i dla ?C to wcale nie jest mało, bo można powiedzieć że trwa prawie jedną sekundę.
Po drugie, gdy DS już upora się z tymi obliczeniami, może już odesłać konkretne dane pomiarowe.
Więc znowu możesz się z nim dogadać za pośrednictwem ?C i "zażądać" wysłania tych danych, po czym je odebrać. Jak już je odbierzesz to możesz z nimi robić co uznasz za stosowne. ((-; Czyli np przystąpić do konwersji temperatury na wartości, do jakich jesteśmy przyzwyczajeni.
Najważniejsze naświetliłem szczegóły DOCZYTAJ, a gwarantuję że termometr będzie działał bezproblemowo i rewelacyjnie, i będziesz miał w dodatku satysfakcję z samodzielnej pracy, która zaowocuje w przyszłości.
Mogę jeszcze poradzić aby odczytów nie wykonywać zbyt często, być może unikniesz wtedy problemów.
Mam nadzieję że nie byłeś "leniuchem" i poczytałeś co mirley ładnie opisał w artykule -> o tutaj
jego znalezienie zajęło mi a właściwie wujowi google (0,25 s), przy okazji znalazł jeszcze Około 16,300 wyników obsługując moje zapytanie "zasada działania ds18b20"
owocnej pracy
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
Czy do wyświetlania
Czy do wyświetlania temperatury nie jest potrzebne podłączenie nóżki wyświetlacza nr 15 z jedną z nóżek procesora z wykorzystaniem tranzystora? Obecnie mam to połączone do zasilania poprzez rezystor. Czy to nie przeszkadza?
Odpowiem byle jak, znaczy tak
Odpowiem byle jak, znaczy tak jak się nie powinno - pytaniem.
co to jest nóżka nr 15 wyświetlacza?
Pytanie 2
jaki ma związek ten pin z temperaturą?
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
hehe wiedziałem że to głupie
hehe wiedziałem że to głupie pytanie no ale sprecyzuje nóżka 15 i 16 w moim wyświetlaczu jest odpowiedzialna za podświetlenie tyle że masz rację co to na wspólnego z wyświetlaniem temperatury :) zapomnijmy o tym idę się bardziej dokształcać z ds18b20
I tak trzymaj. ps żadne
I tak trzymaj.
ps
żadne pytanie nie jest głupie, niekiedy wynika z niewiedzy pytającego.
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
Masakra z tym
Masakra z tym DS'em.
Nauczyłem się tyle, że wysyłam polecenie do ds'a żeby zmierzył temperaturę i prze konwertował, później odczekuję 750 ms i wysyłam aby odczytać temperaturę, miejscami odpowiednio resetując ds'a:
wiem, że do odczytu potrzebuję tylko dwóch bajtów. Ale za cholerę nie mogę rozkminić jak zrobić te wszystkie obliczenia dla temperatur mając ustawiony wewnętrzny oscylator na 8MHz oraz jak uporać się z ujemną temperaturą. Czy mogę prosić o jakąś wskazówkę? Napisałem już 6 programów. W niektórych wyświetla mi temperaturę 0,5C albo -0,1C albo 4095,9C. Gdzie popełniam błąd?
Fuse Bity ustawiam tak: http://mirley.firlej.org/files/ART_fuseM8_03B.gif
A czy zapoznałeś się z
A czy zapoznałeś się z linkiem zawierającym opis tego wszystkiego, z mojej poprzedniej wypowiedzi. Mirley to wszystko ładnie wytłumaczył.
Po za tym nie resetujesz układu scalonego tylko magistralę. (-;
Dobrze Ci idzie, już prawie skończyłeś.
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
Dobra czegoś tu nie rozumiem
Dobra czegoś tu nie rozumiem :(
Przepisałem program z książki M.Wiązania:
Wyświetlacz pokazuję że nie mam układu podpiętego :( Jeżeli obrócę o 180 stopni czujnik czyli gnd podepnę do +5V to wtedy wyświetla się temperatura -1205 stopni.
Natomiast gdy wgram program:
To wyświetla się temperatura 4095 C. Natomiast gdy obrócę dallasa o 180 stopni to wyświetla 1207 stopni C i spada natomiast po dotknięciu palcami temperatura rośnie i są zauważalne jakieś reakcje.
Zgłupiałem :(
Nie kombinuj tylko czytaj i
Nie kombinuj tylko czytaj i myśl to nie boli.
Te listingi do tego zmuszają jak bezmyślnie przepiszesz i dobrze to zrobiłeś to drugi źle temperaturę wyliczy (choć zastosowany algorytm jest poprawny), i po co tyle tych 1wirereset, poczytaj kiedy i poco się je stosuje.
z helpa avr
ponieważ nie odpowiedziałeś zapytam ponownie, czytałeś artykuł mirleya?
kaktus
"Cierpliwym być musisz, by wiedzę zgłębiać tajemną, gdyż ciemna strona mocy niszczącą i silną jest.".
KOD $regfile =
KOD
2xDS18B20
Witam Wszystkich!
Do swojego programu dodałem drugi czujnik Ds'a ale nie potrafię ogarnąć tego programowo.
Proszę o pomoc i wskazówkę gdzie robię błąd.
KOD:
Jak program rusza sprawdza numery ds'ów. Jak mogę je wykorzystać?
DS1: 2824945304000012
DS2: 2895CCAE0300001F
Z góry wielkie dzięki za pomoc :)
Pozdrawiam!
trochę teorii
nie oglądałem programu, zafunduję Tobie trochę z grubsza partię teorii do wykorzystania.
Otóż jak wiesz 1wire to magistrala dwukierunkowa, na której mogą pracować różne "węzły" (urządzenia). Aby był ład ?C za każdym razem musi wysyłać adres do tego z którym chce "pogadać" aby reszta "nie przeszkadzała". I tak masz dwa układy scalone podległe ?C. Tu pamiętaj że aby ?C odczytał temperaturę z DS robimy to dwuetapowo z zachowaniem wymaganej odpowiedniej przerwy.
Teraz musisz się zdecydować czy chcesz mieć jedną magistralę 1wire (tak pewno wybrałeś) i na niej dwa układy podległe, wtedy musisz posługiwać się ich identyfikatorami. ID możesz po ich odczytaniu i identyfikacji wpisać w kodzie na "sztywno" bądź stworzyć "inteligentny" kawałek programu.
Odmiennym rozwiązaniem być może dla Ciebie na tym etapie wygodniejszym, jest zrobienie dwóch magistral 1wire z pojedynczymi układami wykonawczymi, odpada wtedy adresowanie i identyfikacja ID.
Składnia polecenia
Ot z grubsza cała tajemnica sukcesu.
Mirley opracował helpa z podstawowymi "zagadnieniami" obsługi DS-a na 1wire, w rozwiązaniu które najprawdopodobniej zastosowałeś - jedna magistrala.
kaktus