Termometr Cyfrowy DIY

15 komentarzy

Witam! Przedstawiam kolejny projekt, który powstał wczoraj.

Jest to termometr cyfrowy oparty na czujniku temperatury Maxim-a DS18B20. Czujnik ten jest przede wszystkim tani, posiada ciekawe możliwości oraz pracuje na magistrali 1Wire co oznacza, że potrzebujemy tylko jeden przewód do komunikacji. Ponadto mamy możliwość wyboru rozdzielczości pomiaru w 3 opcjach. Pomiar temperatury z dokładnością do 0.5 stopnia trwa zaledwie 93 milisekundy. Jeżeli chcemy uzyskać pomiar z dokładnością do 0.1 stopnia, czas konwersji będzie wynosił 750 milisekund. DS18B20 mierzy temperaturę od -55 do 125 stopni Celsjusza. Po więcej szczegółów odsyłam do noty katalogowej. Mózgiem układu jest mikrokontroler z rodziny AVR - Attiny2313 pracujący z zegarem 16Mhz. Obsługuje on komunikacje z czujnikiem przez magistralę 1Wire oraz wyświetlanie pomiaru na wyświetlaczu 16x2. Oprogramowanie zostało napisane w BASCOM AVR. Kod zajmuje około 70% pamięci Flash, więc można wprowadzić do programu jeszcze drobne modyfikacje, np dotyczące sposobu wyświetlania temperatury bądź rozdzielczości pomiaru. Układ jest zasilany poprzez stabilizator L7805 co umożliwia nam wykorzystanie zasilacza dostarczającego napięcie w zakresie mniej więcej 6-12V. Kod programu :

$regfile = "attiny2313.dat"
$crystal = 16000000

Config Lcd = 16 * 2

Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5

Deflcdchar 0 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32

Config 1wire = Portb.0
Dim Temp As Integer , Napis As String * 6

Cursor Off
Cls

Do

1wreset
1wwrite &HCC
1wwrite &H44

Waitms 750

1wreset
1wwrite &HCC
1wwrite &HBE

Temp = 1wread(2)

Temp = Temp * 10
Temp = Temp / 16
Napis = Str(temp)
Napis = Format(napis , " 0.0")
Locate 1 , 1
Lcd " Temperatura: "
Locate 2 , 1
Lcd " " ; Napis ; " " ; Chr(0) ; "C "


Loop

End

Zdjęcia, Schemat, Opis, Kod źródłowy programu z opisem komend znajduje się tutaj.





Mały update. Powstała nowa wersja oprogramowania. Program dodatkowo zapisuje i porównuje temperaturę co 20 minut a następnie pokazuje na wyświetlaczu czy temperatura wzrosła, spadła czy jest stała. Oto link.

Halogen Project

8 komentarzy

Człowiek leniwym stworzeniem jest. W celu ułatwienia sobie życia powstało oświetlenie halogenowe sterowane pilotem Rc5. Sercem urządzenia jest ATmega8 na kwarcu 16Mhz. Elementem wykonawczym są 2 przekaźniki JQX115F-005 5V 8A. Są one sterowane mikrokontrolerem przez tranzystor NPN. Odbiornik podczerwieni to TSOP1736.

Program został napisany w BASCOM-ie :

----------------------------------
$regfile = "m8def.dat"
$crystal = 16000000
Config Pind.0 = Output
Config Pind.1 = Output
Lampa1 Alias Portd.0
Lampa2 Alias Portd.1
Config Rc5 = Pind.2
Dim Address As Byte , Command As Byte
Dim Status As Byte
Enable Interrupts
Status = 0
Do
Getrc5(address , Command)
Command = Command And &B01111111
Select Case Command
Case 12 :
If Status = 0 Then
Set Lampa1
Set Lampa2
Waitms 200
Status = 1
Command = 55
Elseif Status = 1 Then
Reset Lampa1
Reset Lampa2
Status = 0
Waitms 200
End If
Case 1 :
Set Lampa1
Reset Lampa2
Waitms 200
Status = 1
Case 2 :
Set Lampa2
Set Lampa1
Waitms 200
Status = 1
End Select
Loop
End
----------------------------------
Schematu nie ma, powstawał na bieżąco.





Update: W najbliższym czasie przygotuję schemat i bardziej opiszę projekt. Stay Tuned.




lypse(at)lypse.net