Regulamin | Punkty | Dodaj... | Ostatnie | Szukaj | Rejestracja | Zaloguj


4x DS18b20 +LCD = Termometr


Napisz nowy temat  Odpowiedz do tematu      Strona Główna -> Forum elektroda -> DIY Konstrukcje -> 4x DS18b20 +LCD = Termometr
Angielska wersja
Autor Wiadomość
Duch__
Poziom 22
Poziom 22

Dołączył: 12 Gru 2004
Posty: 1614
Miasto: Opole

Post 25 Kwi 2008 16:43   

Re: 4x DS18b20 +LCD = Termometr


peleton123 napisał:

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??
Powrót do góry
   
peleton123
Poziom 10
Poziom 10

Dołączył: 22 Mar 2008
Posty: 51
Miasto: Mińsk Maz.

Post 25 Kwi 2008 19: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
Powrót do góry
   
jacekhe
Poziom 15
Poziom 15

Dołączył: 06 Maj 2007
Posty: 240
Miasto: Janów Lubelski

Post 26 Kwi 2008 11: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ę.
Powrót do góry
   
peleton123
Poziom 10
Poziom 10

Dołączył: 22 Mar 2008
Posty: 51
Miasto: Mińsk Maz.

Post 27 Kwi 2008 09: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
Powrót do góry
   
jacekhe
Poziom 15
Poziom 15

Dołączył: 06 Maj 2007
Posty: 240
Miasto: Janów Lubelski

Post 27 Kwi 2008 10:22   

Re: 4x DS18b20 +LCD = Termometr


Bo ja pozmieniałem ten pierwszy kod ducha__

Kod:

$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.
Powrót do góry
   
Duch__
Poziom 22
Poziom 22

Dołączył: 12 Gru 2004
Posty: 1614
Miasto: Opole

Post 27 Kwi 2008 12:27   

Re: 4x DS18b20 +LCD = Termometr


jacekhe napisał:


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
 Opis:
-0.01
 Rozmiar:  8.58 KB

bez tytułu.jpg


Powrót do góry
   
jacekhe
Poziom 15
Poziom 15

Dołączył: 06 Maj 2007
Posty: 240
Miasto: Janów Lubelski

Post 28 Kwi 2008 08:05   

Re: 4x DS18b20 +LCD = Termometr


Ja podaję około 16V minimalnie się grzeje ale dałem radiator i jest oki, dzięki.
Powrót do góry
   
kiclaw
Poziom 2
Poziom 2

Dołączył: 07 Maj 2008
Posty: 3
Miasto: Jaworzno

Post 07 Maj 2008 21: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
Powrót do góry
   
holcer
Poziom 20
Poziom 20

Dołączył: 23 Wrz 2005
Posty: 868
Miasto: Kraków

Post 07 Maj 2008 22: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ć ;).
Powrót do góry
   
kiclaw
Poziom 2
Poziom 2

Dołączył: 07 Maj 2008
Posty: 3
Miasto: Jaworzno

Post 07 Maj 2008 22: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
Powrót do góry
   
oj
Poziom 24
Poziom 24

Dołączył: 22 Kwi 2003
Posty: 5553
Miasto: N52'13'55.4" E021'00'36.3"

Post 08 Maj 2008 00: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.
Powrót do góry
   
jacekhe
Poziom 15
Poziom 15

Dołączył: 06 Maj 2007
Posty: 240
Miasto: Janów Lubelski

Post 08 Maj 2008 11: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
 Opis:
-0.01
 Rozmiar:  20.53 KB

wyświetlacz.jpg


Powrót do góry
   
oj
Poziom 24
Poziom 24

Dołączył: 22 Kwi 2003
Posty: 5553
Miasto: N52'13'55.4" E021'00'36.3"

Post 08 Maj 2008 15: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.
Powrót do góry
   
Macias86
Poziom 18
Poziom 18

Dołączył: 06 Gru 2003
Posty: 577
Miasto: Gdynia

Post 08 Maj 2008 17:42   

Re: 4x DS18b20 +LCD = Termometr


takie wyświetlanie to po prostu nieprawidłowe zaprogramowanie uK...
Powrót do góry
   
Mariuszek15
Poziom 20
Poziom 20

Dołączył: 18 Wrz 2005
Posty: 883
Miasto: Chrzanów (k.Krakowa)

Post 09 Maj 2008 16: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 :)
Powrót do góry
   
oj
Poziom 24
Poziom 24

Dołączył: 22 Kwi 2003
Posty: 5553
Miasto: N52'13'55.4" E021'00'36.3"

Post 09 Maj 2008 16:35   

Re: 4x DS18b20 +LCD = Termometr


jacekhe napisał:
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
Powrót do góry
   
Mariuszek15
Poziom 20
Poziom 20

Dołączył: 18 Wrz 2005
Posty: 883
Miasto: Chrzanów (k.Krakowa)

Post 09 Maj 2008 16: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.
Powrót do góry
   
mariuz
Poziom 22
Poziom 22

Dołączył: 15 Sie 2004
Posty: 1609
Miasto: Konstancin-Jeziorna

Post 09 Maj 2008 17: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.
Powrót do góry
   
Mariuszek15
Poziom 20
Poziom 20

Dołączył: 18 Wrz 2005
Posty: 883
Miasto: Chrzanów (k.Krakowa)

Post 09 Maj 2008 17: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.
Powrót do góry
   
oj
Poziom 24
Poziom 24

Dołączył: 22 Kwi 2003
Posty: 5553
Miasto: N52'13'55.4" E021'00'36.3"

Post 09 Maj 2008 17: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
Powrót do góry
   
memphis_2007
Poziom 11
Poziom 11

Dołączył: 11 Kwi 2007
Posty: 72
Miasto: xxx

Post 09 Maj 2008 18: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 :-)
Powrót do góry
   
jacekhe
Poziom 15
Poziom 15

Dołączył: 06 Maj 2007
Posty: 240
Miasto: Janów Lubelski

Post 10 Maj 2008 07: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.
Powrót do góry
   
jacekhe
Poziom 15
Poziom 15

Dołączył: 06 Maj 2007
Posty: 240
Miasto: Janów Lubelski

Post 10 Maj 2008 16: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
Powrót do góry
   
mariuz
Poziom 22
Poziom 22

Dołączył: 15 Sie 2004
Posty: 1609
Miasto: Konstancin-Jeziorna

Post 10 Maj 2008 17: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 ;)
Powrót do góry
   
kiclaw
Poziom 2
Poziom 2

Dołączył: 07 Maj 2008
Posty: 3
Miasto: Jaworzno

Post 11 Maj 2008 19: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:

Kod:


$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
Powrót do góry
   
Duch__
Poziom 22
Poziom 22

Dołączył: 12 Gru 2004
Posty: 1614
Miasto: Opole

Post 11 Maj 2008 23: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...
Powrót do góry
   
jacekhe
Poziom 15
Poziom 15

Dołączył: 06 Maj 2007
Posty: 240
Miasto: Janów Lubelski

Post 12 Maj 2008 12: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
 Opis:
-0.01
 Rozmiar:  23.07 KB

termom.jpg


Powrót do góry
   
Google
AdSense
Google Adsense


Post 12 Maj 2008 12:53   





Powrót do góry
   
Duch__
Poziom 22
Poziom 22

Dołączył: 12 Gru 2004
Posty: 1614
Miasto: Opole

Post 12 Maj 2008 20: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.
Powrót do góry
   
peleton123
Poziom 10
Poziom 10

Dołączył: 22 Mar 2008
Posty: 51
Miasto: Mińsk Maz.

Post 06 Cze 2008 17: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
 Opis:
 n/a

Download
 :  Termo.rar
 Zawartość:  Termo.bas
Zobacz całość...
 Rozmiar:  1.84 KB
 Punkty:  1 = 0.00 za transfer + 1 dla użytkownika (ustawiono ręcznie)

Powrót do góry
   
peterrr
Poziom 1
Poziom 1

Dołączył: 08 Cze 2008
Posty: 1

Post 08 Cze 2008 14:10   

Re: 4x DS18b20 +LCD = Termometr


This one is based on DS18S20:

4x DS18b20 +LCD = Termometr


Link


Kod:
$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

Powrót do góry
   
Napisz nowy temat  Odpowiedz do tematu      Strona Główna -> Forum elektroda -> DIY Konstrukcje -> 4x DS18b20 +LCD = Termometr
Wypowiedź dla Wykop Wypowiedź dla Facebook Wypowiedź dla Delicious Wypowiedź dla Digg Wypowiedź dla Google Wypowiedź dla Twitter Wypowiedź dla Blip
Strona 6 z 12 Idź do strony Poprzedni  1, 2, 3 ... 5, 6, 7 ... 10, 11, 12  Następny
Skok:
Podobne tematy
4x DS18b20 +LCD = Termometr (1)
Zegar DCF 77,5kHz na LCD 128*64 znaków z termometr DS18B20 (8)
Termometr na: DS18B20 (1)
Jednopunktowy termometr na DS18B20 (45)
Termometr na ATmega32 2x DS18B20 (33)
NE044 TERMOMETR DWUPUNKTOWY DS18B20 (5)
Termometr Pokojowy 0-99,9 C deg. na DS18B20 (17)
Termometr na DS18B20 + SHT11 + GSM (19)
termometr DS18B20 + DS9097E - czy da sie zewnetrznie zasilac (7)
Mikrokontroler + Termometr + LCD (1)



[ Page generation time: 0.226 seconds ]

Regulamin || Administrator || Moderatorzy || Widgety i bannery || Kontakt
elektroda.pl temat RSS