Chciałem zrobić termometr na Mega8 i DS18B20.
Znalazłem fragment programu który dekoduje temperaturę z układu 1820 ale nie działa w 18B20.
Oto fragment programu do odczytu temperatury z 1820:
Kod: Zaznacz cały
Sub Odcz_temp 'definicja procedury pomiaru
'temperatury
1wreset 'reset magistrali 1-Wire
1wwrite &HCC 'opuszczenie zapisu numeru ID
1wwrite &H44 'start pomiaru temperatury
Waitms 750 'opóźnienie na czas pomiaru
1wreset 'reset magistrali 1-Wire
1wwrite &HCC 'opuszczenie zapisu numeru ID
1wwrite &HBE 'komenda odczytu zmierzonej
'temperatury
Temperatura(1) = 1wread(2) 'odczyt zmierzonej temperatury
'do tablicy Temperatura
1wreset 'reset magistrali 1-Wire
If Err = 1 Then 'jeśli układ dołączony do
'magistrali nie odpowiada, to
Cls 'czyszczenie LCD
Lcd "Brak ukladu" 'wyświetlenie komunikatu o braku
'dołączonego układu
Do 'nieskończona pętla w celu
'wstrzymania działania programu
Loop
End If
If Temperatura(2) > 1 Then 'jeśli zmienna Temperatura(2)
'> 0, to temperatura ujemna
'przeliczenie temperatury
'ujemnej
Temperatura(1) = 256 - Temperatura(1)
End If 'koniec warunku
Temperatura(1) = Temperatura(1) / 2
'dalsze przeliczenie odczytanej
'temperatury dodatniej jak
'i ujemnej
End Sub