(14 głosujących) Termometr ten pracuje w zakresie temperatur od -50.0 do +99.9 stopni lub w drugiej wersji oprogramowania aż do +125 stopni. Układ został zaprojektowany do mierzenia temperatury w akwarium ale z powodzeniem można dla niego znaleźć wiele innych zastosowań. Na płytce znajduje się miejsce na dwa przyciski oraz dodatkowe złącze ogólnego przeznaczenia. Po zmianie oprogramowania urządzenie może pełnić funkcję prostego termostatu, lub bardziej złożonego regulatora temperatury. Układ został zbudowany w oparciu o popularny, często stosowany czujnik DS18B20 i mikrokontroler AT89C2051 co znacznie uprościło jego konstrukcję i zmniejszyło wymiary. W układzie można też bez większego trudu zastosować mikrokontroler ATTiny2313, wymaga to tylko wprowadzenia kilku prostych modyfikacji.
Działanie:Schemat termometru przedstawia poniższy rysunek: Sercem urządzenia jest mikrokontroler U2 (AT89C2051) wraz z rezonatorem kwarcowym X1 (12MHz) i dwoma kondensatorami C4 (33pF) i C5 (33pF). Kondensator C3 (1uF) resetuje procesor po włączeniu napięcia zasilającego, a C1 (220uF) filtruje to napięcie. Do złącza zas podłączamy napięcie zasilające o wartości 5V. Rezystory R9 - R16 (330R) ograniczają prąd wyświetlaczy. Tranzystory T1 - T3 (BC557B) wraz z rezystorami R1 - R6 (3,3k) sterują anodami wyświetlaczy. Budowa:Termometr można zbudować z wykorzystaniem dostępnej tutaj płytki drukowanej. Wersja płytki w odbiciu lustrzanym dostępna jest tutaj. Montaż elementów można dokonać w dowolnej kolejności, najlepiej od najmniejszych do największych. Pod wyświetlacz dobrze jest wlutować kawałek podstawki DIP40, natomiast pod mikrokontroler podsatwka jest bezwzględnie konieczna. Od strony druku należy wlutować rezystor 4,7k podciągający magistralę 1-Wire (nóźka 9 układu U2) do plusa zasilania. Złącze GP1 w wersji podstawowej służy do podłączenia diody sygnalizującej ujemną temperaturę (katodą do portu procesora, anodą do VCC) gdyby miało być wykorzystywane w inny sposób należy usunąć z kodu programu linijkę: P3.7 = Not Minus. Przód obudowy można z powodzeniem wykonać z kawałka laminatu. Płytkę termometru mocujemy do panelu przedniego za pomocą dwóch przylutowanych do niego śrub. Pomocą przy konstrukcji może okazać się schemat montażowy dostępny tutaj. Jeżeli w układzie będzie zastosowany mikrokontroler ATTiny2313 zamiast AT89C2051, nie należy montować kondensatora C3, a kondensatory C4 i C5 powinny mieć wartość 22pF. Wykaz Elementów:8x 330R 2x 33pF 1x Rezonator Kwarcowy 12MHz Programowanie:Oprogramowanie do termometru zostało napisane w wersji demo programu BASCOM 8051 firmy MCS Electronics (http://www.mcselec.com/). Program w całości przedstawiony jest poniżej: '**************************** 'Konfiguracja '**************************** $crystal = 12000000 '12MHz $regfile = "89C2051.DAT" Config 1wire = P3.5 Config Timer0 = Timer , Gate = Internal , Mode = 2 On Timer0 Przerwanie0 Load Timer0 , 250 Enable Timer0 Start Timer0 Enable Interrupts '**************************** 'Zmienne '**************************** Dim Lsb As Byte Dim Msb As Byte Dim Co4ms As Byte , Co100ms As Byte , Co1s As Byte Dim Wysw As Word , Wysw1 As Byte , Wysw10 As Byte , Wysw100 As Byte Dim Tempa As Word Dim Mux As Byte Dim Zezw_wysw As Bit Dim Pomiar_odczyt As Bit Dim Minus As Bit Dim Ur As Bit '**************************** 'Wartosci Poczatkowe '**************************** Reset Pomiar_odczyt Reset Ur Wysw1 = 191 Wysw10 = 191 Wysw100 = 191 '**************************** 'Petla glowna '**************************** Do If Zezw_wysw = 1 Then Reset Zezw_wysw 'co 4ms Wysw = Tempa If Ur = 1 Then Gosub Przelicz Gosub Wyswietl End If Loop End '**************************** 'Przerwanie timer0 '**************************** Przerwanie0: Incr Co4ms If Co4ms = 16 Then Co4ms = 0 '*************************************** co 4ms Set Zezw_wysw Incr Co100ms If Co100ms = 25 Then Co100ms = 0 '*************************************** co 100 ms 'ew flaga obslugi przyciskow Incr Co1s If Co1s = 7 Then Co1s = 0 '*************************************** co 1s Pomiar_odczyt = Not Pomiar_odczyt Disable Interrupts 1wreset If Pomiar_odczyt = 1 Then 1wwrite &HCC 1wwrite &H44 Else If Err = 0 Then 1wwrite &HCC 1wwrite &HBE Lsb = 1wread(): Msb = 1wread(): Minus = Msb.7 Tempa = Msb * 256 Tempa = Tempa + Lsb If Minus = 1 Then Tempa = Not Tempa Tempa = Tempa + 1 End If Tempa = Tempa * 10 'temperatura *10 Tempa = Tempa / 16 If Ur = 0 Then Ur = 1 Else Tempa = 10000 'Er wyswietli wyswietlacz potem End If End If Enable Interrupts '*************************************** End If '*************************************** End If '*************************************** End If Return '**************************** 'Inne Etykiety '**************************** Przelicz: If Wysw < 1000 Then Wysw1 = Wysw Mod 10 Wysw = Wysw / 10 Wysw10 = Wysw Mod 10 Wysw = Wysw / 10 Wysw100 = Wysw Mod 10 If Wysw100 = 0 Then Wysw100 = 10 'wygaszenie zera wiodcego Wysw1 = Lookup(wysw1 , Tabela) Wysw10 = Lookup(wysw10 , Tabela2) Wysw100 = Lookup(wysw100 , Tabela) Else Wysw1 = 175 'r Wysw10 = 175 'r Wysw100 = 134 'E End If Return Wyswietl: Incr Mux If Mux = 3 Then Mux = 0 P3.7 = Not Minus Select Case Mux Case 0: Set P3.0 P1 = Wysw100 Reset P3.2 Case 1: Set P3.2 P1 = Wysw10 Reset P3.1 Case 2: Set P3.1 P1 = Wysw1 Reset P3.0 End Select Return 'Tabele do wyswietlania na wyswietlaczu Tabela: Data 192 , 249 , 164 , 176 , 153 , 146 , 130 , 248 , 128 , 144 , 255 'znak: 0 1 2 3 4 5 6 7 8 9 pusty Tabela2: Data 64 , 121 , 36 , 48 , 25 , 18 , 2 , 120 , 0 , 16 , 255 'znak: 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. pusty Ustawienia Fusebitów dla mikrokontrolera ATTiny2313: Zdjęcia Projektu:
|
|||
Re: Termostat HEX
Ale przecież kod źródłowy z termostatem jest na stronie, wystarczy skompilować bascomem..... jeśli hex się nie robi to trzeba w opcjach zaznaczyć "ptaszka" żeby się robił i po problemie.... przeszukaj opcje
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
---
Wykonałem ten termometr, działał jakiś czas, a po włożeniu do obudowy wyświetla cały czas "---", co jest źle?
Próbowałem już różnych konfiguracji resetu itd, ale program nadal stoi na "---"....
Termometr
dat file error 89c2051.dat not found prosze o zrobiene hexa z termostatem nie wiem jak w bascomie dla tego ukladu na atmege idzie
Re: Termometr
jak jest --- to brak połączenia z czujnikiem... może się kabel urwał po włożeniu do obudowy albo jeśli masz jakieś złącze to coś nie styka.
Pliki zaraz wrzucę.... kompilować masz w BASCOMIE 8051 a nie w bascomie AVR. Bacom AVR jest do AVR jak sama nazwa wskazuje a 2051 należy do rodziny 8051
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Dziala ;]
Rzeczywiście czujnik był niepodłączony, teraz działa.
Inne pytanie, jak wyeliminować mruganie wyświetlaczy? Co 1sek widać, jest to bardzo uciążliwe, załadowałem wsad dla Attiny2313 bez termostatu jeśli to ma jakieś znaczenie.
Podziękować kompilacja
Podziękować kompilacja zrobiona termometr wraz z regulacją temperatury śmiga.
Mam jeszcze jedno pytanie chodzi o czujnik temperatury co muszę zmienić w kodzie aby działało na czujniku DS18S20+ . Na DS18B20 działa OK jak podłączam DB18S20 pokazuje mi 3.5 stopnia wiem że one się różnią patrzyłem w note katalogową układu ale nie wiem gdzie to się zmienia.
Milczaz
Re: Ds termometr
Żeby nie migało od czasu do czasu to trzeba napisac program inaczej. Popatrz na program do minitermometru uniwersalnego... tam jest nowy program i nie miga.
----------
Aby działał DS18S20 zamień 16 na 2 w linijce:
Powinno to wystarczyć
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Witam, Złożyłem ten termometr
Witam,
Złożyłem ten termometr ale cos jest nie tak. Wyswietla 0.0 i swieci sie dioda sygnalizujaca temp ujemna. Bez czujnika wyswietla sie ---. W czym leży problem? Omylkowo tez wlutowalem zle tranzystory, ale teraz sa juz dobrze.
Re: Termometr
Masz rezystor 4,7k między +5V a linią sygnałową czujnika?
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Re: Termometr
po dodaniu rezystora temperatura wyświetla się prawidłowo, ale problem pozostał z dioda ujemnej temperatury. Sprawdziłem w zamrażalce i dochodzę do wniosku ze dioda działa odwrotnie ponieważ w ujemnej temp przestała świecić.
Jakie zmiany wprowadzić w programie żeby działało prawidłowo?
Obróć diodę :-)
Obróć diodę :-)
Re; Dioda
A jak ta diodę podłaczyłeś? od +5V przez rezystor do portu czy od portu przez rezystor do masy?. pierwsza opcja powinna być ok
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Wyświetlacz 2,3 cala
Czy można tu zastosować wyświetlacz LED 56,80mm 2,30". Czy duże zmiany należy wprowadzić w schemacie [ ewentualnie jakie ].
http://www.artronic.pl/o_produkcie.php?id=504
Re: Wyswietlacze
Problem jest sprzętowy a mianowicie napewnona 5V ten wyświetlacz nie zaświeci bo ma po 4 diody w szeregu na segment, możesz to sobie sprawdzić jak masz już ten wyświetlacz. Trzeba zastosować wyższe napięcie zasilania dla anod i tranzystory muszą być np na potencjale 12V, względem masy..... Trzeba zatem dodac do sterowania każdej z anod dwa tranzystory, jedne npn podłączony do wyjścia mikrokontrolera, którego kolektor dopiero włacza tranzystor PNP sterujący anodą wyświetlacza. W programie trzeba zmienić sterowanie anodami na przeciwnym sygnale
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Mam takie pytania [jeszcze
Mam takie pytania [jeszcze nie zrobiłem ten termometr - jestem w trakcie ;-)]
1. Czy ta wersja "Program po kompilacji (HEX) (wersja podstawowa" jest dla kości 'AT89C2051' ?
2. czym ta kość 'AT89C2051' zaprogramować Bascom AVR czy ''Bascom 8051' i czy tym samy programatorem jak do ATTiny2313 ?
3. Czy nie potrzeba żadnej kalibracji wyświetlania temeratury ?
4. Jak i gdzie wstawić ewentualna korekcję siły świecenia wyświetlacza
5. Co to sa za przyciski S1 i S2 ?
Jeszcze jedno pytanie o
Jeszcze jedno pytanie o wyświetlacze - czy muszą być takie jak w spisie elementów czy mogą być inne
wys. 14mm ?
Bład na płytce i schemacie ?
Nie wiem ale coś m i tu nie gra ;-)
Na płytce i na schemacie jest pokazane że dioda LED jedną nogą idzie do nóżki '11' procka a druga do minus '-'
natomiast w wypowiedzi tutaj "
cytuje
Re: termometr
Należy zastosować dowolną diodę LED z szeregowym rezystorem 330R-510R... katoda idzie do złącza GP1(ten pin co trafia do procka) a anoda idzie do +5V
i jak tak podłączę to dioda zaświeca sie przy temp. ujemnej
???
Re; Dioda
Na schemacie nie ma nigdzie diody LED sygnalizującej ujemną temperaturę
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
LED i czujnik w Termometrze
W związku z tym ze jak piszesz nie ma na schemacie diody LED
proponuję:
1. czyjnik DS18D20 - połaczyć skrajne PINy plus i minus i podpiąć do minus na płytce
a PIN sygnałowy normalnie jak na schemacie. [[czujnik nie musi mieć osobno + i - ]]
2. Niewykorzystany pin PLUS przeznaczony dla czujnika wykorzystac do podpiecia diody LED sygnalizujacej temp. ujemną
czyli dioda led do +5v i do nóżki '11' procka ze złacza GP1
Przy takim podłaczeniu nie potrzeba zmieniac nic na płytce a więc "wilk syty i owca cała" ;-)
Termometr
Dzieki za info
Mam taki mały problem z
Mam taki mały problem z minusem wiem że temat był poruszany ale nadal nie wiem co mam zrobić :D mam tak jak było pisane że przy dodatnich temperaturach jest minus a przy ujemnej nie ma :D wiem że trzeba coś zmienić w programie ale niewiem w którym momencie :D
Re: minus
Jak masz podłączoną diodę od minusa? Anodą do +5V i przez rezystor do portu, czy katodą do masy i przez rezystor do portu? to pierwsze rozwiązanie jest prawidłowe
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Ciecze
Czy istnieje możliwość pomiaru temperatury cieczy, a nawet wytrawiacza? Czy nie zaszkodzi to urządzeniu?
I jeszcze pytanie o wersje z ATtiny2313, nie montować kondensatora c3 czyli zewrzeć ze sobą punkty czy zostawić tam przerwę ?
Jeżeli zabezpieczysz czujnik
Jeżeli zabezpieczysz czujnik to możesz mierzyć.Ja robię sobie takie tulejki z rurki 6mm i tym ochraniam sensor,do wytrawiacza to się nie nadaje możesz koszulka termo osłonić.Jeżeli sie nie mylę to po zwarciu C3 będziesz miał reset procesora
czujnik
Troche poczytałem w internecie o zabezpieczaniu i najlepszą metodą wydaje mi się zalanie go silikonem neutralnym. Nadawać się będzie idealnie to pomiaru temp. wytrawiacza, ale nie wiem jak to będzie z szybkością reakcji na zmiane temperatury powietrza. Ktoś wie może? Czy będzie to w rozsądnych granicach, czy jednak takie zabezpieczenie uniemożliwi skuteczny pomiar?
jeżeli chodzi o najłatwiejsze
jeżeli chodzi o najłatwiejsze zabezpieczenie to weź rurkę termokurczliwa wciśnij silikon do środka,następnie włóż czujnik uzupełnij silikon ,który wypchniesz i podgrzej rurkę.Po zaciśnięciu usuń zbędny silikon i poczekaj ,az wyschnie.Po paru godzinach masz dosyć dobrze zabezpieczony czujnik.Jeżeli nie budujesz czujnika super dokładnego to nie wyczujesz różnicy, a już na pewno nie w wytrawiarce gdzie płyn ma duza bezwładność termiczna.
Kiedy, bo czekam :-)
Witaj,
a ja ciągle czekam na termoregulator z prawdziwego zdarzenia (PID) do tego stopnia, że zacząłem się zastanawiać, czy nie napisać go samemu. Ale stwierdziłem, że to dłuuuuga droga... Taki wszystkomający były idealny, sterowanie impulsowe grzałki, przyrost temperatury w zadanym czasie, itp, ech...
wyświetlacz
Ktoś ma jakiś pomysł jak zgrabnie połączyć 3 pojedyncze wyświetlacze w 1 potrójny? Każdy pomysł jaki mi przychodzi do głowy to plątanina kabelków.
Wyświetlacz
Najlepiej wypalić płytkę i polutować te 3 wyświetlacze na niej
Re: Wyświetlacz
tak czy inaczej będzie to plątanina ścieżek lub kabelków.... dlatego stosuje zawsze potrójne lub poczwórne wyświetlacze
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Zasilacz
Witam,
Zamierzam zasilić ten układ zasileczem 5V tylko nie wiem o jakiej wydajności prądowej ???
Re: termometr
Wydajność prądowa jak będzie >100mA to wystarczy, nie pamiętam ile układ dokładnie pobierał.
---------
rezystor ma dwie końcówki, co jeszcze potrzebujesz aby go podłączyć. Jedna końcówka do P3.5 (nóżka 9 układu U2), druga końcówka rezystora do +5V
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
kondensator C3
Jeszcze jedno małe pytanko:
Jeśli robie układ z wykorzystaniem ATtiny2313 wiec wyrzucam kondensator C3 i pozostawiam rozwarcie czy zwarcie ?
Zamiast C3 możesz dać
Zamiast C3 możesz dać rezystor 10k
obudowa
Ktoś posiada ten termometr w jakiejś obudowie "kupnej" ze sklepu? Jaki typ się nada do tego urządzenia? Którą byście polecili? Oczywiście sam bym mógł sobie wymierzyc i kupić ale może ktoś już to sprawdził i znalazł odpowiednią obudowę.
zasilanie
Czy to jest normalne ze po podłączeniu zasilana +5V gdy mierze wychodzi mi 2,56V? Zwierajac do masy odpowiednie piny świecą mi się jako tako segmenty.
Zasilacz
Jaką wydajność prądową ma ten zasilacz?
zasilacz
zasilacz 5V, 600mA, jest to ładowarka do motoroli. Przy okazji zapytam się- co może spowodować taki spadek napięcia? Czy np kabelek który słabo styka? Dla mnie to jest dziwne, albo napięcie jest, albo nie ma. W poprzednim projekcie mialem sytuacje ze źle złącze ark zlutowałem i wogole nie było napięcia, jak poprawiłem to wszystko działało. Tutaj jest połowa, nie wiadomo dlaczego. Jeszcze sytuacja na tyle sie zmieniła (też niewiadomo czemu) że na wejściu znów jest 5V, a np na podstawce 2,5V. Nie wiem gdzie wypatrywać błędu.
Zasilacz
Próbował kolega podłączać inny zasilacz?
podłączyłem zasilacz 9V z
podłączyłem zasilacz 9V z stabilizatorem na 5V(układ wykonałem na bazie dostępnego na tej stronie) i też podobna sytuacja ma miejsce.
kondensatory
Jaki rodzaj kondensatorów zastosować? (chodzi mi o elektrolityczne,ceramiczne...itp)
C1 -
C4 -
C5 -
GP1
"Złącze GP1 w wersji podstawowej służy do podłączenia diody sygnalizującej ujemną temperaturę (katodą do portu procesora, anodą do VCC)"
Patrząc na schemat złącze GP1 jest pomiędzy portem procesora a masą, wiec jak ma być?
.
C1 to elektrolit, C4 i C5 to kondensatory ceramiczne.
Też się zastanawiam nad diodą, cośmi się wydaje że ścieżka jest źle poprowadzona.
Jaka dioda? Wrzuć zdjęcie
Jaka dioda? Wrzuć zdjęcie płytki
dioda
no chodzi o diode sygnalizującą minus. Ma być miedzy portem uC i Vcc a na scieżce jest port i Gnd. Nie odpaliłem jeszcze swojego układu ale cos mi sie wydaje ze nie zadziała ;p
Re: Dioda minus
Dioda ma być podłączona tak jak w opisie, miedzy pinem procka a +5V. Złącze GP1 nie było przewidziane do podłączenia diody, po prostu został wolny pin. Dioda powstała z pomysłu późniejszych ulepszeń
---------
Zasilanie: Najpierw zmierz tą ładowarkę bo nie wierzę że daje 5V na wyjściu. Pewnie daje 11V. Wyjmij procek z podstawki i zmierz rezystancję między liniami zasilania. Czy nie ma czasem zwarcia? Ewentualnie zmierz pobór prądu układu.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Jaki rezystorek wlutować przy
Jaki rezystorek wlutować przy diodzie? Żeby procka nie sparzyło...
Ja dałem 330R
Ja dałem 330R
Moglby ktos kumaty zerknac na
Moglby ktos kumaty zerknac na schemat i plytke, bo nie jestem pewny czy to dobrze zlozylem(jestem jeszcze dosc zielony w te klocki:)).
Schemat:
http://zapodaj.net/f014762444d1e.png.html
Plytka:
http://zapodaj.net/bcc6e5e49a7bd.png.html
Z gory dzieki.
Eagle
Źle podłączone złącze X1 i przy czujniku tem. brakuje rezystora, R5,R6,R7 daj np 3,3k