FAQ | Points | Add... | Recent posts | Search | Register | Log in


4x DS18b20 +LCD = Termometr


Post new topic  Reply to topic      Main Page -> Forum Index -> DIY Structures -> 4x DS18b20 +LCD = Termometr
Author
Message
Duch__
Poziom 22
Poziom 22


Joined: 12 Dec 2004
Posts: 1911
Location: Opole

Post#151 Post from the author of the topic 25 Apr 2008 15:43   

Re: 4x DS18b20 +LCD = Termometr


peleton123 wrote:

Można byłoby dać jeszcze ze 2 zmienne które zapamiętywałyby do 3 ostatnich temperatur.



Czyli w sumie 8 zmiennych (po 2 na każdy czujnik). Dobrze myśle??
Back to top
   
Google

Google Adsense


Post# Post from the author of the topic 25 Apr 2008 15:43   





Back to top
   
peleton123
Poziom 10
Poziom 10


Joined: 22 Mar 2008
Posts: 49
Location: Mińsk Maz.

Post#152 25 Apr 2008 18:20   

Re: 4x DS18b20 +LCD = Termometr


Tak. Ale właśnie to trochę marnotrawstwo pamięci:/

Nie mam innego pomysłu jakby tu sprawdzać stabilniej temp. bo jednak czujniki są tak dokładne i wahają sie ciągle temp
Back to top
   
jacekhe
Poziom 16
Poziom 16


Joined: 06 May 2007
Posts: 334
Location: Janów Lubelski / Rzeszów

Post#153 26 Apr 2008 10:13   

Re: 4x DS18b20 +LCD = Termometr


A jak przerobić do atmegi8 na wyświetlacz 2*16znaki mam z tym małe problemy, bo nie cofa mi stopnia celciusza i strzałek. Dam 15pkt za pomoc. Dziękuję.
Back to top
   
peleton123
Poziom 10
Poziom 10


Joined: 22 Mar 2008
Posts: 49
Location: Mińsk Maz.

Post#154 27 Apr 2008 08:14   

Re: 4x DS18b20 +LCD = Termometr


Jak to nie cofa?? nie rozumiem. Można dokładniej opis problemu i kawałek kodu który masz do wyświetlania temperatur
Back to top
   
jacekhe
Poziom 16
Poziom 16


Joined: 06 May 2007
Posts: 334
Location: Janów Lubelski / Rzeszów

Post#155 27 Apr 2008 09:22   

Re: 4x DS18b20 +LCD = Termometr


Bo ja pozmieniałem ten pierwszy kod ducha__

Code:

$regfile = "m8def.DAT"                                     
$crystal = 1000000                                         
'Deklaracja portów od wyświetlacza LCD
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.5

Config Lcd = 16 * 2                                       

'*************************************WAŻNE**********************************************

Config 1wire = Portd.5                                     

Dim I1 As Integer , Ss As String * 6
Dim I2 As Integer
Dim I3 As Integer
Dim I4 As Integer

Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim Dsid3(8) As Byte
Dim Dsid4(8) As Byte
Dim B As Byte                                             
Dim W As Byte                                               

Deflcdchar 0 , 8 , 20 , 11 , 4 , 4 , 4 , 3 , 32             

Cursor Off                                                 
Cls                                                         
Lcd "Lada Samara 1.3s" ;                               
Lowerline
Lcd "        2008        "
Wait 5
Cls
W = 1wirecount()
Lcd "Ilosc czujnikow:"                                     
Waitms 500
Lcd W
Wait 3
Cls                                                       
Dsid1(1) = 1wsearchfirst()                                 
Dsid2(1) = 1wsearchnext()                                   
Dsid3(1) = 1wsearchnext()                                   
Dsid4(1) = 1wsearchnext()

'*******************Odczyt numerów ID czujników temperatury*********************

If Dsid1(8) = Crc8(dsid1(1) , 7) Then                       
 Locate 1 , 1
 Lcd "CRC OK Czujnik 1 ID"
 Wait 1
 Locate 1 , 1
 For B = 1 To 8
 Lcd Hex(dsid1(b))
 Next
End If
Wait 2

If Dsid2(8) = Crc8(dsid2(1) , 7) Then
 Locate 2 , 1
 Lcd "CRC OK Czujnik 2 ID"
 Wait 1
 Locate 2 , 1
 For B = 1 To 8
 Lcd Hex(dsid2(b))
 Next
End If
Wait 2

If Dsid3(8) = Crc8(dsid3(1) , 7) Then
 Locate 1 , 1
 Lcd "CRC OK Czujnik 3 ID"
 Wait 1
 Locate 1 , 1
 For B = 1 To 8
 Lcd Hex(dsid3(b))
 Next
End If
Wait 2

If Dsid4(8) = Crc8(dsid4(1) , 7) Then
 Locate 2 , 1
 Lcd "CRC OK Czujnik 4 ID"
 Wait 1
 Locate 2 , 1
 For B = 1 To 8
 Lcd Hex(dsid4(b))
 Next
End If
Wait 2
Cls

'*******************koniec odczytu ID czujników temperatury*********************

Do
   1wreset
   1wwrite &H55
   1wverify Dsid1(1)                                       
   1wwrite &HBE
   I1 = 1wread(2)
'---------------------------------
   1wreset
   1wwrite &H55
   1wverify Dsid2(1)                                       
   1wwrite &HBE
   I2 = 1wread(2)
'---------------------------------
   1wreset
   1wwrite &H55
   1wverify Dsid3(1)                                       
   1wwrite &HBE
   I3 = 1wread(2)
'---------------------------------
   1wreset
   1wwrite &H55
   1wverify Dsid4(1)                                       
   1wwrite &HBE
   I4 = 1wread(2)
'--------konwersja temp dla wszystkich dsow
   1wreset
   1wwrite &HCC
   1wwrite &H44
Wait 1



   I1 = I1 * 10
   I1 = I1 / 16
   'If I1 > 0 Then Cls                                       
   Ss = Str(i1)
   Ss = Format(ss , " 0.0")
   Locate 1 , 1                                             
   Lcd "Wew" ; Ss ; Chr(0) ;

   I2 = I2 * 10
   I2 = I2 / 16
   'If I2 > 0 Then Cls
   Ss = Str(i2)
   Ss = Format(ss , " 0.0")
   Locate 2 , 1
   Lcd "Zew" ; Ss ; Chr(0) ;

   I3 = I3 * 10
   I3 = I3 / 16
   'If I3 > 0 Then Cls
   Ss = Str(i3)
   Ss = Format(ss , " 0.0")
   Locate 1 , 11
   Lcd "Chlo" ; Ss ; Chr(0) ;

   I4 = I4 * 10
   I4 = I4 / 16
   'If I4 > 0 Then Cls
   Ss = Str(i4)
   Ss = Format(ss , " 0.0")
   Locate 2 , 11
   Lcd "Gaz" ; Ss ; Chr(0) ;

Loop


I mam bube jeszcze, stabilizator 78l05 nie daje napięcia 5V, podłączam procek do niego czyli w 78l05 środkową i lewy pin, i pod atmelka8. Twój kod działa bez problemowo. Ale muszę zasilać z ładowarki od nokii aby miec jako tako te 4,5v.
Back to top
   
Duch__
Poziom 22
Poziom 22


Joined: 12 Dec 2004
Posts: 1911
Location: Opole

Post#156 Post from the author of the topic 27 Apr 2008 11:27   

Re: 4x DS18b20 +LCD = Termometr


jacekhe wrote:


I mam bube jeszcze, stabilizator 78l05 nie daje napięcia 5V, podłączam procek do niego czyli w 78l05 środkową i lewy pin, i pod atmelka8.



Pokaż na schemacie jak podłączyłeś 78l05, bo z tego co wyczytałem to pod wejście stabilizatora (pin 1 od lewej) podłączyłeś atmegę!

Ma być tak jak w załączniku.



bez tytułu.jpg
 Description:
-0.01
 Filesize:  8.58 KB

bez tytułu.jpg


Back to top
   
jacekhe
Poziom 16
Poziom 16


Joined: 06 May 2007
Posts: 334
Location: Janów Lubelski / Rzeszów

Post#157 28 Apr 2008 07:05   

Re: 4x DS18b20 +LCD = Termometr


Ja podaję około 16V minimalnie się grzeje ale dałem radiator i jest oki, dzięki.
Back to top
   
kiclaw
Poziom 4
Poziom 4


Joined: 07 May 2008
Posts: 8
Location: Jaworzno

Post#158 07 May 2008 20:38   

Re: 4x DS18b20 +LCD = Termometr


Witam...

Mam takie pytanie, otóż:

Czy każdy wyświetlacz LCD podjedzie pod ten schemat który podał Duch? Chodzi mi oczywiście o wyświetlacz 2x20 lub 2x16, bo byłem się dzisiaj pytać o taki w sklepie elektronicznym i gościu spojrzał na ten schemat i mi dał LCD za 38zł...to jest trochę za drogo bo chciałbym się zamknąć w 20zł za LCD a duchu mówił coś o 9zł :)

Chciałbym się was jeszcze zapytać o te piny na LCD, nie są one opisane i za bardzo nie wiem które są które

Dzieki z góry
Back to top
   
holcer
Poziom 20
Poziom 20


Joined: 23 Sep 2005
Posts: 900
Location: Kraków

Post#159 07 May 2008 21:05   

Re: 4x DS18b20 +LCD = Termometr


Może dał Ci taki z dodatkowym podświetleniem i jakimiś bajerami ;). W dodatku często się niestety naciągacze zdarzają. Ja ostatnio zapłaciłem z 2 przełączniki hebelkowe małe i 5 oporników w sumie 5,30 zł :D. LCD Duch'a to najprostszy z dostępnych. Rozpiska pinów pewnie jest z tyłu na PCB, albo w internecie. To popularne LCD'ki.
Pozdrawiam
Holcer

P.S. Wysyłam Ci na PW linki do allegro... Wystarczyło poszukać ;).
Back to top
   
kiclaw
Poziom 4
Poziom 4


Joined: 07 May 2008
Posts: 8
Location: Jaworzno

Post#160 07 May 2008 21:46   

Re: 4x DS18b20 +LCD = Termometr


Dzieki wielki holcer :)

Czyli z tego wynika że jakikolwiek kupie wyświetlacz 2x20 to będzie pasował?
bo tak w zasadzie nie wiem czy te oznaczenia pinów są znormalizowane i nie chce mieć takiej przygody że kupie wyświetlacz na którym będą zupełnie inne oznaczenia...
skoro każdy lcd pasuje to koło niedzieli wrzuce zdjęcią swojego termometru...

Pozdrawiam
Back to top
   
oj
Poziom 24
Poziom 24


Joined: 21 Apr 2003
Posts: 5571
Location: N52'13'55.4" E021'00'36.3"

Post#161 07 May 2008 23:01   

Re: 4x DS18b20 +LCD = Termometr


Będzie pasował nawet 1x 8; np. po przerobieniu programu - przełączanie ekranów przyciskiem; wtedy czujników ile chcesz.

W tym projekcie zależy ile tych czujników chcesz podpiąć i jakie informacje dodatkowe chcesz wyświetlić.
Jak widać na pierwszym zdjęciu (wyświetlacz 2x 20) na początku postu, nazwy się nie mieszczą - gdy pojawi się temperatura ujemna w ogól nie będzie czytelne; od tego zależy jaki wyświetlacz kupić.

Organizacja pinów (podłączenie) jest taka sama dla wszystkich; chyba że kupisz jakiegoś dziwoląga - głównie allegro; z jakieś kas, urządzeń przemysłowych - wtedy piny mogą być inaczej.
Back to top
   
jacekhe
Poziom 16
Poziom 16


Joined: 06 May 2007
Posts: 334
Location: Janów Lubelski / Rzeszów

Post#162 08 May 2008 10:05   

Re: 4x DS18b20 +LCD = Termometr


Mi się coś niedobrego porobiło z wyświetlaczem, mam taki jak na zdjęciu. i zamiast tego rzędy wyświetlać to świeci tylko od prawej 2 linie do połowy.



wyświetlacz.jpg
 Description:
-0.01
 Filesize:  20.53 KB

wyświetlacz.jpg


Back to top
   
oj
Poziom 24
Poziom 24


Joined: 21 Apr 2003
Posts: 5571
Location: N52'13'55.4" E021'00'36.3"

Post#163 08 May 2008 14:33   

Re: 4x DS18b20 +LCD = Termometr


Taki efekt (częściowe świecenie punktów matrycy) da uszkodzenie mechaniczne (pęknięcia wyświetlacza w miejscu wyprowadzeń pod metalową ramką) lub szkodzenie gumek przewodzących (zmiana siły docisku, zużycie się, zabrudzenia).

Rzadziej uszkodzenia samego sterownika wyświetlacza LCD.
Back to top
   
Macias86
Poziom 21
Poziom 21


Joined: 06 Dec 2003
Posts: 1153
Location: Gdynia

Post#164 08 May 2008 16:42   

Re: 4x DS18b20 +LCD = Termometr


takie wyświetlanie to po prostu nieprawidłowe zaprogramowanie uK...
Back to top
   
Mariuszek15
Poziom 20
Poziom 20


Joined: 18 Sep 2005
Posts: 913
Location: Chrzanów

Post#165 09 May 2008 15:19   

Re: 4x DS18b20 +LCD = Termometr


jacekhe Takie wyświetlanie to znaczy, że mikrokontroler nie pracuje "martwy" jest. Przyczyna może być w złym zaprogramowaniu uC lub złe ustawienie fusów. Pozdrawiam :)
Back to top
   
oj
Poziom 24
Poziom 24


Joined: 21 Apr 2003
Posts: 5571
Location: N52'13'55.4" E021'00'36.3"

Post#166 09 May 2008 15:35   

Re: 4x DS18b20 +LCD = Termometr


jacekhe wrote:
Mi się coś niedobrego porobiło z wyświetlaczem, mam taki jak na zdjęciu. i zamiast tego rzędy wyświetlać to świeci tylko od prawej 2 linie do połowy.


Przeczytajcie to zdanie. Nie jest przyczyną mikrokontroler
Back to top
   
Google

Google Adsense


Post# 09 May 2008 15:35   





Back to top
   
Mariuszek15
Poziom 20
Poziom 20


Joined: 18 Sep 2005
Posts: 913
Location: Chrzanów

Post#167 09 May 2008 15:51   

Re: 4x DS18b20 +LCD = Termometr


oj Też miałem kiedyś taki pasek w górnej linii LCD. U mnie była to przyczyna zapomnienia ustawienia fusów. Układ wymaga ustawienia zewnętrznego lub wewnętrznego zegara.
Back to top
   
mariuz
Poziom 22
Poziom 22


Joined: 15 Aug 2004
Posts: 1652
Location: Konstancin-Jeziorna

Post#168 09 May 2008 16:08   

Re: 4x DS18b20 +LCD = Termometr


Mariuszek czytaj dokładnie. Jacekhe ma wyświetlacz taki jak na zdjęciu a nie ten ze zdjęcia. I u niego "świecą się" segmenty obu linii, ale tylko po prawej stronie.
i to rzeczywiście może wskazywać na uszkodzenie wyświetlacza.

:arrow: Jacekhe
Spróbuj odlutować przewody od głównej płytki i do lcd doprowadź tylko zasilanie, masę i napięcie kontrastu. Jeśli pojawi się pełna linia w górnym wierszu i brak linii w drugim rzędzie (oczywiście po regulacji kontrastu), to lcd raczej sprawny.
Back to top
   
Mariuszek15
Poziom 20
Poziom 20


Joined: 18 Sep 2005
Posts: 913
Location: Chrzanów

Post#169 09 May 2008 16:17   

Re: 4x DS18b20 +LCD = Termometr


Tak, ale warto wspomnieć o takim problemie. Możliwe, że LCD jest uszkodzony, ale nasuwa mi się także złe podpięcie wyświetlacza LCD. Niech autor sprawdzi poprawność montażu.
Back to top
   
oj
Poziom 24
Poziom 24


Joined: 21 Apr 2003
Posts: 5571
Location: N52'13'55.4" E021'00'36.3"

Post#170 09 May 2008 16:39   

Re: 4x DS18b20 +LCD = Termometr


Jak nawet źle podłączy a mikrokontroler nie działa to nie będzie miał takiego efekt, że mu nie świecą wszystkie segmenty w linii
Back to top
   
memphis_2007
Poziom 11
Poziom 11


Joined: 11 Apr 2007
Posts: 77
Location: xxx

Post#171 09 May 2008 17:41   

Re: 4x DS18b20 +LCD = Termometr


Dajcie spokój . Włączcie google . Znajdziecie wzorcowe wykonanie tego oklepanego tematy . Bawią mnie określenia "Obecnie pracuje nad czymś podobnym " :-). Sorry . Jak ktoś musi nad czymś takim pracować to elektronika nie jest jego mocną stroną . Ogólnie oklepane ... Wykonanie koszmarne . Jak można publicznie pokazywać takiego gniota. Przecież jak to zobaczy ktoś z innej branży to powie że elektronicy to takie dziwaki . Co robią coś na łapu capu i próbują zainteresować tym innych . Panowie dbajmy o nasz wizerunek . PR to dzisiaj ważna sprawa :-)
Back to top
   
jacekhe
Poziom 16
Poziom 16


Joined: 06 May 2007
Posts: 334
Location: Janów Lubelski / Rzeszów

Post#172 10 May 2008 06:36   

Re: 4x DS18b20 +LCD = Termometr


Myśle że wyświetlacz ma dobrze podpięte kabelki na płytce, wyświetlacz jest nowy. Sprawdzę tak jak powiedziałeś schnelltot.
Back to top
   
jacekhe
Poziom 16
Poziom 16


Joined: 06 May 2007
Posts: 334
Location: Janów Lubelski / Rzeszów

Post#173 10 May 2008 15:54   

Re: 4x DS18b20 +LCD = Termometr


Nom LCD pokazał 1 linię tak jak powinien, myślę ze jest sprawny. Dziś kolega też sprawdził poprawność podłączenia i znalazł błąd. Błąd niewielki ale wyświetlacz nie ruszył. Potem opiszę co i jak... Pozdrawiam
Back to top
   
mariuz
Poziom 22
Poziom 22


Joined: 15 Aug 2004
Posts: 1652
Location: Konstancin-Jeziorna

Post#174 10 May 2008 16:50   

Re: 4x DS18b20 +LCD = Termometr


To teraz podepnij lcd do kompa (przez lpt) i sprawdź jakimś programem typu smartie czy podobnym.

P.S. Poproś moderatora o wydzielenie Twojego wątku z tego tematu ;)
Back to top
   
kiclaw
Poziom 4
Poziom 4


Joined: 07 May 2008
Posts: 8
Location: Jaworzno

Post#175 11 May 2008 18:16   

Re: 4x DS18b20 +LCD = Termometr


w sumie płytka z układem jest już gotowa... zrobiłem wszystko tak jak na schemacie u Ducha tylko że podpiąłem nie 4 a 2 czujniki DS

i tutaj moje pytanie... czy dobrze przerobiłem program z 4 czujników na 2:

Code:


$regfile = "m8def.DAT"
$crystal = 1000000

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

Config Lcd = 20 * 2


Config 1wire = Portd.5

Dim I1 As Integer , Ss As String * 6
Dim I2 As Integer

Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim B As Byte
Dim W As Byte

Deflcdchar 0 , 8 , 20 , 11 , 4 , 4 , 4 , 3 , 32

Cursor Off
Cls
Lcd "  TERMOMETR  " ;
Lowerline
Lcd "           CYFROWY      "
Waitms 50
Cls
W = 1wirecount()
Lcd "Ilosc czujnikow:"
Waitms 50
Lcd W
Waitms 50
Cls
Dsid1(1) = 1wsearchfirst()
Dsid2(1) = 1wsearchnext()

'*******************Odczyt numerów ID czujników temperatury*********************

If Dsid1(8) = Crc8(dsid1(1) , 7) Then
 Locate 1 , 1
 Lcd "CRC OK Czujnik 1 ID"
 Waitms 50
 Locate 1 , 1
 For B = 1 To 8
 Lcd Hex(dsid1(b))
 Next
End If
Waitms 50

If Dsid2(8) = Crc8(dsid2(1) , 7) Then
 Locate 2 , 1
 Lcd "CRC OK Czujnik 2 ID"
 Waitms 50
 Locate 2 , 1
 For B = 1 To 8
 Lcd Hex(dsid2(b))
 Next
End If
Waitms 50
Cls

'*******************koniec odczytu ID czujników temperatury*********************

Do
   1wreset
   1wwrite &H55
   1wverify Dsid1(1)
   1wwrite &HBE
   I1 = 1wread(2)
'---------------------------------
   1wreset
   1wwrite &H55
   1wverify Dsid2(1)
   1wwrite &HBE
   I2 = 1wread(2)
'---------------------------------
Waitms 5

   I1 = I1 * 10
   I1 = I1 / 16
   'If I1 > 0 Then Cls
   Ss = Str(i1)
   Ss = Format(ss , "    0.0")
   Locate 1 , 1
   Lcd "     Zew" ; Ss ; Chr(0) ;

   I2 = I2 * 10
   I2 = I2 / 16
   'If I2 > 0 Then Cls
   Ss = Str(i2)
   Ss = Format(ss , "   0.0")
   Locate 2 , 1
   Lcd "     Wew " ; Ss ; Chr(0) ;
Loop


jak symuluje w bascomie to wygląda jakby wszystko było ok
Back to top
   
Google

Google Adsense


Post# 11 May 2008 18:16   





Back to top
   
Duch__
Poziom 22
Poziom 22


Joined: 12 Dec 2004
Posts: 1911
Location: Opole

Post#176 Post from the author of the topic 11 May 2008 22:52   

Re: 4x DS18b20 +LCD = Termometr


do póki nie zaprogramujesz atmegi to sie nie przekonasz? Chyba najlepiej jest w praktyce sprawdzić czy działa poprawnie...
Back to top
   
jacekhe
Poziom 16
Poziom 16


Joined: 06 May 2007
Posts: 334
Location: Janów Lubelski / Rzeszów

Post#177 12 May 2008 11:53   

Re: 4x DS18b20 +LCD = Termometr


Stwierdzam że termometru nie udało mi się uruchomić, i chyba już nie uda. Projekt u mnie u mnie ląduje do lamusa pierwsze co nie udało mi się uruchomić, nie wiem co z tym fantem zrobie. Schemat podłączenia lcd mam taki R/W=>podłączam do masy.



termom.jpg
 Description:
-0.01
 Filesize:  23.07 KB

termom.jpg


Back to top
   
Duch__
Poziom 22
Poziom 22


Joined: 12 Dec 2004
Posts: 1911
Location: Opole

Post#178 Post from the author of the topic 12 May 2008 19:25   

Re: 4x DS18b20 +LCD = Termometr


Pin KTR podpiąłeś do masy, lub przez potencjometr? Może nie działało bo Ci sie nic na wyświetlaczu nie pojawiło :]

Napisz program wyświetlający na LCD dowolny tekst lub podłącz się nim do kompa (Smartie -> Odsyłam do konkretnego tematu dotyczącego podłączenia LCD do kompa) by sprawidzić czy działa wyświetlacz.
Back to top
   
peleton123
Poziom 10
Poziom 10


Joined: 22 Mar 2008
Posts: 49
Location: Mińsk Maz.

Post#179 06 Jun 2008 16:27   

Re: 4x DS18b20 +LCD = Termometr


Mała modyfikacja poprzedniej wersji

Troszkę zmieniony układ wyświetlania 4 temperatur i dodany licznik czasu pracy.

4x DS18b20 +LCD = Termometr4x DS18b20 +LCD = Termometr

Filmik z działania termometru http://www.wrzuta.pl/film/whupB662hF/termometr

Schemat jest we wcześniejszych postach w tym temacie
Do pobrania plik z programem w Bascomie
Termo v1.2



Termo.rar
 Description:
 n/a

Download
 Filename:  Termo.rar
 Contents:  Termo.bas
See all...
 Filesize:  1.84 KB
 Punkty:  1 = 0.00 for transfer + 1 for the user (set manually)

Back to top
   
peterrr
Poziom 1
Poziom 1


Joined: 08 Jun 2008
Posts: 1

Post#180 08 Jun 2008 13:10   

Re: 4x DS18b20 +LCD = Termometr


This one is based on DS18S20:

4x DS18b20 +LCD = Termometr


Link


Code:
$regfile = "m8def.DAT"
$crystal = 1000000

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

Config Lcd = 16 * 2
Config 1wire = Portd.5

Dim Dsid1(8) As Byte
Dim Dsid2(8) As Byte
Dim Dsid3(8) As Byte
Dim Dsid4(8) As Byte

Dim I1(9) As Byte
Dim I2(9) As Byte
Dim I3(9) As Byte
Dim I4(9) As Byte
Dim I As Byte , Tmp As Byte
Dim Crc As Byte
Dim T As Integer , T1 As Integer
Dim X As Integer
Dim Ia As String * 4
Dim Ib As String * 4
Dim Ic As String * 4
Dim Id As String * 4
Dim W As Byte

Deflcdchar 1 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32
Deflcdchar 2 , 31 , 27 , 19 , 27 , 27 , 17 , 31 , 32
Deflcdchar 3 , 31 , 17 , 29 , 17 , 23 , 17 , 31 , 32
Deflcdchar 4 , 31 , 17 , 29 , 17 , 29 , 17 , 31 , 32
Deflcdchar 5 , 31 , 21 , 21 , 17 , 29 , 29 , 31 , 32
X = 0
Cursor Off
Cls
Lcd " SKODA  FAVORIT " ;
Lowerline
Lcd "GLXi ComfortLine"
Wait 9
Cls

W = 1wirecount()
Lcd "Pocet zapojenych"
Lowerline
Lcd "snimacov: "
Waitms 500
Lcd W
Wait 3
Cls
Dsid1(1) = 1wsearchfirst()
Dsid2(1) = 1wsearchnext()
Dsid3(1) = 1wsearchnext()
Dsid4(1) = 1wsearchnext()

Gosub Stupne

Do
If X < 120 Then
   1wreset
   1wwrite &H55
   1wverify Dsid1(1)
   1wwrite &HBE
   I1(1) = 1wread(9)

   1wreset
   1wwrite &H55
   1wverify Dsid2(1)
   1wwrite &HBE
   I2(1) = 1wread(9)

   1wreset
   1wwrite &H55
   1wverify Dsid3(1)
   1wwrite &HBE
   I3(1) = 1wread(9)

   1wreset
   1wwrite &H55
   1wverify Dsid4(1)
   1wwrite &HBE
   I4(1) = 1wread(9)

   1wreset
   1wwrite &HCC
   1wwrite &H44
Waitms 300
Waitms 300



If I1(8) = Crc8(i1(1) , 7) Then
Crc = 0
End If
If Crc = 0 Then
Tmp = I1(1) And 1
If Tmp = 1 Then Decr I1(1)
T = Makeint(i1(1) , I1(2))
T = T * 50 : T = T - 25 : T1 = I1(8) - I1(7) : T1 = T1 * 100
T1 = T1 / I1(8) : T = T + T1 : T = T / 10
End If
If Crc = 1 Then
Locate 1 , 1 : Lcd "-- "
Else
If Crc = 0 Then
Locate 1 , 1
Ia = Str(t)
Lcd Left(ia , 2) : Lcd "."
Lcd Mid(ia , 3 , 1)
Else
Locate 1 , 1 : Lcd "** "
End If
End If

If I2(8) = Crc8(i2(1) , 7) Then
Crc = 0
End If
If Crc = 0 Then
Tmp = I2(1) And 1
If Tmp = 1 Then Decr I2(1)
T = Makeint(i2(1) , I2(2))
T = T * 50 : T = T - 25 : T1 = I2(8) - I2(7) : T1 = T1 * 100
T1 = T1 / I2(8) : T = T + T1 : T = T / 10
End If
If Err = 1 Then
Locate 2 , 1 : Lcd "-- "
Else
If Crc = 0 Then
Locate 2 , 1
Ib = Str(t)
Lcd Left(ib , 2) : Lcd "."
Lcd Mid(ib , 3 , 1)
Else
Locate 2 , 1 : Lcd "** "
End If
End If

If I3(8) = Crc8(i3(1) , 7) Then
Crc = 0
End If
If Crc = 0 Then
Tmp = I3(1) And 1
If Tmp = 1 Then Decr I3(1)
T = Makeint(i3(1) , I3(2))
T = T * 50 : T = T - 25 : T1 = I3(8) - I3(7) : T1 = T1 * 100
T1 = T1 / I3(8) : T = T + T1 : T = T / 10
End If
If Err = 1 Then
Locate 1 , 11 : Lcd "-- "
Else
If Crc = 0 Then
Locate 1 , 11
Ic = Str(t)
Lcd Left(ic , 2) : Lcd "."
Lcd Mid(ic , 3 , 1)
Else
Locate 1 , 11 : Lcd "** "
End If
End If

If I4(8) = Crc8(i4(1) , 7) Then
Crc = 0
End If
If Crc = 0 Then
Tmp = I4(1) And 1
If Tmp = 1 Then Decr I4(1)
T = Makeint(i4(1) , I4(2))
T = T * 50 : T = T - 25 : T1 = I4(8) - I4(7) : T1 = T1 * 100
T1 = T1 / I4(8) : T = T + T1 : T = T / 10
End If
If Err = 1 Then
Locate 2 , 11 : Lcd "-- "
Else
If Crc = 0 Then
Locate 2 , 11
Id = Str(t)
Lcd Left(id , 2) : Lcd "."
Lcd Mid(id , 3 , 1)
Else
Locate 1 , 1 : Lcd "** "
End If
End If
X = X + 1

Else
Cls
Gosub Vypis1
Gosub Vypis2
Gosub Vypis3
Gosub Vypis4
X = 0
Cls
Gosub Stupne
End If
Loop
End

Vypis1:
Cls
Lcd Chr(2) ; " Teplota motora" ;
Lowerline
Lcd "     "
Lcd Left(ia , 2) : Lcd "."
Lcd Mid(ia , 3 , 1)
Lcd Chr(1) ; "C"
Wait 6
Return

Vypis2:
Cls
Lcd Chr(3) ; " Chladiaca kvap." ;
Lowerline
Lcd "     "
Lcd Left(ib , 2) : Lcd "."
Lcd Mid(ib , 3 , 1)
Lcd Chr(1) ; "C"
Wait 6
Return

Vypis3:
Cls
Lcd Chr(4) ; " Vonkajsia tepl." ;
Lowerline
Lcd "     "
Lcd Left(ic , 2) : Lcd "."
Lcd Mid(ic , 3 , 1)
Lcd Chr(1) ; "C"
Wait 6
Return

Vypis4:
Cls
Lcd Chr(5) ; " Vnutorna tepl." ;
Lowerline
Lcd "     "
Lcd Left(id , 2) : Lcd "."
Lcd Mid(id , 3 , 1)
Lcd Chr(1) ; "C"
Wait 6
Return

Stupne:
Locate 1 , 5 : Lcd Chr(1) ; "C"
Locate 1 , 15 : Lcd Chr(1) ; "C"
Locate 2 , 5 : Lcd Chr(1) ; "C"
Locate 2 , 15 : Lcd Chr(1) ; "C"

Locate 1 , 8 : Lcd Chr(2)
Locate 2 , 8 : Lcd Chr(3)
Locate 1 , 9 : Lcd Chr(4)
Locate 2 , 9 : Lcd Chr(5)
Return

Back to top
   
Post new topic  Reply to topic      Main Page -> Forum Index -> DIY Structures -> 4x DS18b20 +LCD = Termometr
Statement for Wykop Statement for Facebook Statement for Delicious Statement for Digg Statement for Google Statement for Twitter Statement for Blip
Page 6 of 14 Go to page Previous  1, 2, 3 ... 5, 6, 7 ... 12, 13, 14  Next
Jump to page:
Similar topics
Termometr na 89C2051 + DS18B20 by Miguel573 (34)
Termometr na DS18B20 + SHT11 + GSM (19)
Termometr na: DS18B20. Propozycje i schematy. (1)
Termometr Pokojowy 0-99,9 C deg. na DS18B20 (17)
NE044 TERMOMETR DWUPUNKTOWY DS18B20 (5)
Termometr na ATmega32 2x DS18B20 (33)
Jednopunktowy termometr na DS18B20 (45)
Zegar DCF 77,5kHz na LCD 128*64 znaków z termometr DS18B20 (8)
4x DS18b20 +LCD = Termometr (1)
Termometr 4 punktowy na LPC1343 + 4x ds18b20 + src (28)

Page generation time: 0.254 seconds


FAQ || Administrator || Moderators || Widgets and banners || Contact
elektroda.pl topic RSS feed