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
Michał~88
Poziom 14
Poziom 14


Joined: 01 Aug 2005
Posts: 165
Location: Rydułtowy

Post#181 12 Jun 2008 20:10   

Re: 4x DS18b20 +LCD = Termometr


Witam.
Męczę się już od 3 godzin z tym termometrem.
I nie działa kopiuję gotowe programy na atmege zmieniam tylko obsługę LCD. Nie znajduje mi żadnego dallasa a są podłączone dwa. Nie wiem co z tym już zrobić.
Atmega nowa kupiona ze sklepu kwarc dany 10MHz.
Pomocy.
Back to top
   
peleton123
Poziom 10
Poziom 10


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

Post#182 12 Jun 2008 22:02   

Re: 4x DS18b20 +LCD = Termometr


Kwarc 1MHz. Może fuse bity źle ustawione
Back to top
   
Michał~88
Poziom 14
Poziom 14


Joined: 01 Aug 2005
Posts: 165
Location: Rydułtowy

Post#183 13 Jun 2008 08:28   

Re: 4x DS18b20 +LCD = Termometr


A jak zmienić fuse bit w programie tym
4x DS18b20 +LCD = Termometr
Pozdrawiam.
Back to top
   
peleton123
Poziom 10
Poziom 10


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

Post#184 13 Jun 2008 08:52   

Re: 4x DS18b20 +LCD = Termometr


Najpierw kliknij Read tam gzie jest Fuse i Lock Bit żeby zobaczyć jakie masz ustawione obecnie na ATMEDZE.

Zacytuje uzytkownika tego forum z innego tematu.
ariel440 wrote:
Witam.
Dla wszystkich którzy być może kiedyś będą mieli podobne zmagania z avrdude napiszę jak powinno to wyglądać :

dla ustawienia atmega8 do pracy na wewn. 1MHz :
avrdude -p m8 -c usbasp -U flash:w:PROGRAM.HEX:i -U hfuse:w:0xD9:m -U lfuse:w:0xe1:m

dla ustawienia atmega8 do pracy na wewn. 2MHz :
avrdude -p m8 -c usbasp -U flash:w:PROGRAM.HEX:i -U hfuse:w:0xD9:m -U lfuse:w:0xe2:m

dla ustawienia atmega8 do pracy na wewn. 4MHz :
avrdude -p m8 -c usbasp -U flash:w:PROGRAM.HEX:i -U hfuse:w:0xD9:m -U lfuse:w:0xe3:m

dla ustawienia atmega8 do pracy na wewn. 8MHz :
avrdude -p m8 -c usbasp -U flash:w:PROGRAM.HEX:i -U hfuse:w:0xD9:m -U lfuse:w:0xe4:m

dla ustawienia atmega8 do pracy na zewn. 8MHz :
avrdude -p m8 -c usbasp -U flash:w:PROGRAM.HEX:i -U hfuse:w:0xD9:m -U lfuse:w:0xee:m

Pozdrawiam.


Także dla tego układu by DUCH jest to wew 1MHz.
Ja się tym posłużyłem hfuse 0xD9 lfuse 0xe1 i mi działa
Back to top
   
Michał~88
Poziom 14
Poziom 14


Joined: 01 Aug 2005
Posts: 165
Location: Rydułtowy

Post#185 13 Jun 2008 09:46   

Re: 4x DS18b20 +LCD = Termometr


Spróbowałem pozmieniać ustawienie kwarcu ale nic to nie zmienia. Dalej nie pokazuje temperatury.
Back to top
   
peleton123
Poziom 10
Poziom 10


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

Post#186 13 Jun 2008 10:41   

Re: 4x DS18b20 +LCD = Termometr


A co się wyświetla na LCD??
Back to top
   
Michał~88
Poziom 14
Poziom 14


Joined: 01 Aug 2005
Posts: 165
Location: Rydułtowy

Post#187 13 Jun 2008 11:49   

Re: 4x DS18b20 +LCD = Termometr


Witam.
Hm nie wiem jak to zdefiniować. Ale działa. Całe 7 godzin w sumie męczyłem się nad uruchomieniem. Dzięki Pana poradom usunąłem kwarc zewnętrzny. Wgrałem ponownie do fuse bitów iż chcę by działał kwarc zewnętrzny na 1MHz. I dalej nie działało. Przyszedłem po chwili i coś mnie natknęło by wymienić opornik z 4,7 k który stosuję bez przeszkód od kilku lat w ATTiny2313 i nie było żadnych problemów z komunikacją. Wymieniłem na 3,3 k i ku mojemu zdziwieniu działa. Wgrałem inny program np ten który był w tym temacie i bez problemów wykrył mi dwa czujniki temperatury.
Jestem w szoku takim problemem. No ale działa za co jestem Panu wdzięczny i oczywiście pomógł. :D
Pozdrawiam.
Back to top
   
konrad92
Poziom 14
Poziom 14


Joined: 26 Aug 2006
Posts: 177
Location: Dubna/Bestwina

Post#188 25 Jun 2008 15:32   

Re: 4x DS18b20 +LCD = Termometr


Witam,
czy jest możliwość zmiany programu i nie modyfikowania układu na 2 czujki, na wyświetlaczu:
4x DS18b20 +LCD = Termometr

pozdrawiam, Konrad
Back to top
   
peleton123
Poziom 10
Poziom 10


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

Post#189 25 Jun 2008 16:03   

Re: 4x DS18b20 +LCD = Termometr


No pewnie że jest zmieniasz tylko program ( na początku dajesz wyświetlacz 8x2, wywalasz zczytywanie z 2 czujek i wyświetlanie dajesz T1 na pierwsza linikje T2 na adruga
Back to top
   
Google

Google Adsense


Post# 25 Jun 2008 16:03   





Back to top
   
konrad92
Poziom 14
Poziom 14


Joined: 26 Aug 2006
Posts: 177
Location: Dubna/Bestwina

Post#190 26 Jun 2008 10:23   

Re: 4x DS18b20 +LCD = Termometr


dziękuję. :)
Back to top
   
done
Poziom 18
Poziom 18


Joined: 20 Sep 2004
Posts: 567
Location: Lublin

Post#191 26 Jun 2008 12:23   

Re: 4x DS18b20 +LCD = Termometr


peleton123 wrote:
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


Witam

Czy wie ktoś może jak dodać przycisk który rozpoczynał by odliczanie od początku? (licznik w 4 linii termometru by Peleton123)

Pozdrawiam
Back to top
   
peleton123
Poziom 10
Poziom 10


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

Post#192 26 Jun 2008 15:24   

Re: 4x DS18b20 +LCD = Termometr


Znaczy się reset tego licznika czasu??
Podepnij pod któryś pin do masy np pind i przed licznikiem daj If pind=0 to zeruj sekundy minuty i godziny
Back to top
   
done
Poziom 18
Poziom 18


Joined: 20 Sep 2004
Posts: 567
Location: Lublin

Post#193 26 Jun 2008 15:33   

Re: 4x DS18b20 +LCD = Termometr


peleton123 wrote:
Znaczy się reset tego licznika czasu??
Podepnij pod któryś pin do masy np pind i przed licznikiem daj If pind=0 to zeruj sekundy minuty i godziny


Dokładnie tak. Dzięki.

1) Czy skomplikowane było by ukrywanie przyciskiem tego licznika lub zmiana na jakiś napis.
2) Czy jest komenda na zapauzowanie tego licznika przyciskiem.

Pozdrawiam
Back to top
   
konrad92
Poziom 14
Poziom 14


Joined: 26 Aug 2006
Posts: 177
Location: Dubna/Bestwina

Post#194 30 Jun 2008 15:16   

Re: 4x DS18b20 +LCD = Termometr


Witam,
zbudowałem termometr wg. schematu Pana ducha, ale na wyświetlaczu 2x24, wszystko dobrze polutowane.
Wyświetlacz świeci DOKŁADNIE tak jak na zdjęciu:
4x DS18b20 +LCD = Termometr

Coś wcześniej wspominaliście o ustawianiu fusebitów. Nie umiem tego robić, a programuje w PonyProg2000
Back to top
   
done
Poziom 18
Poziom 18


Joined: 20 Sep 2004
Posts: 567
Location: Lublin

Post#195 30 Jun 2008 15:51   

Re: 4x DS18b20 +LCD = Termometr


Witam

Sprawdź czy masz pin R/W (5) wyświetlacza do masy.

Pozdrawiam
Back to top
   
konrad92
Poziom 14
Poziom 14


Joined: 26 Aug 2006
Posts: 177
Location: Dubna/Bestwina

Post#196 30 Jun 2008 16:05   

Re: 4x DS18b20 +LCD = Termometr


Jest podłączony i dalej to samo.
I jeszcze jedno:
4x DS18b20 +LCD = Termometr

I teraz:
VSS to jest masa (GND)
VDD to jest plus (VCC)
Vo to jest kontrast (KTR)
a R/W do masy

Czy tak??
Back to top
   
Duch__
Poziom 22
Poziom 22


Joined: 12 Dec 2004
Posts: 1911
Location: Opole

Post#197 Post from the author of the topic 30 Jun 2008 16:58   

Re: 4x DS18b20 +LCD = Termometr


Dokładnie tak jak napisałeś.
Back to top
   
konrad92
Poziom 14
Poziom 14


Joined: 26 Aug 2006
Posts: 177
Location: Dubna/Bestwina

Post#198 30 Jun 2008 19:47   

Re: 4x DS18b20 +LCD = Termometr


A czy w procesorze trzeba coś ustawić jeszcze? np. fusebity albo kwarc?? . Jest to prawdopodobnie wina procesora bo wyświetlacz działa tak samo z procem jak i bez niego.
Back to top
   
Google

Google Adsense


Post# 30 Jun 2008 19:47   





Back to top
   
Wally50
Poziom 10
Poziom 10


Joined: 30 Jan 2006
Posts: 54
Location: Zakopane

Post#199 03 Jul 2008 16:29   

Re: 4x DS18b20 +LCD = Termometr


Michał~88 wrote:
Hm nie wiem jak to zdefiniować. (...) Przyszedłem po chwili i coś mnie natknęło by wymienić opornik z 4,7 k który stosuję bez przeszkód od kilku lat w ATTiny2313 i nie było żadnych problemów z komunikacją. Wymieniłem na 3,3 k i ku mojemu zdziwieniu działa. (...)


Jeszcze przez chwilę pociągnę ten temat:

Niedawno walczyłem z podobnym problemem (procek PIC16, 8-czujników).
Układ zadziałał dla 3-czujników. Po podłączeniu następnego, wszystko "padało". Byłem w tej "luksusowej" sytuacji, że sam pisałem program. Mogłem zmieniać stałe czasowe dla 1-wire'a, ale niewiele to pomagało. Dopiero oscyloskop pomógł.
Ponieważ instalacja wystąpiła w najgorszej konfiguracji (układ gwiazdy, kable 50-100m), przy procku działy się "dziwne rzeczy".
Dopiero rezystory: podciągający 2.2 k (PIC'ek pozwala na to) i wytłumiający 150 Ohm w każdej gałęzi zmieniły wszystko.
Zakłócenia spadły o ok. 50% i wszystko ruszyło.
Jeżeli ktoś rozwiązał podobny problem inaczej, proszę o wymianę opinii.
Back to top
   
Michał~88
Poziom 14
Poziom 14


Joined: 01 Aug 2005
Posts: 165
Location: Rydułtowy

Post#200 23 Jul 2008 23:25   

Re: 4x DS18b20 +LCD = Termometr


Witam.
Mam taki problem. Program działa świetnie. Lecz jest mały problem. Czujniki są wlutowane na kablu pojedynczo jeden za drugim i gdy załączyłem pierwszy raz program wszystko było OK. Czujniki dobrze wskazywały. Teraz gdy wszystko jest zamontowane niekiedy zmienia mi się kolejność czujników. Głupotom by było co chwilę zmienianie ich kolejności. I tu pytanie do was mogę prosić o kawałek kodu zamiast tej weryfikacji o wpisanie numerów ID czujników na stało do procka.
Oto ID 1: 28403B7E01000089
ID 2: 28CAA70101000008
ID 3: 28DAF 1800100000C
Jak to wykonać programowo. Pozdrawiam.
Back to top
   
Wally50
Poziom 10
Poziom 10


Joined: 30 Jan 2006
Posts: 54
Location: Zakopane

Post#201 26 Jul 2008 17:29   

Re: 4x DS18b20 +LCD = Termometr


Ja pisuję w ASM'ie PIC'ków. Mogę Ci tylko podpowiedzieć "założenia algorytmu":
- Przy 8 czujnikach pominąłem każdorazowy odczyt adresów ROM
- odczytuję je tylko przy instalacji systemu (zapis każdego ID do EEPROM)
- przy komunikacji, jak czujnik się nie zgłasza, obsługuję procedurę BŁĄD (ignoruję odczyt)

P.S. Na porcie mam "pullup'a" 2.2k (a nie,jak mówią w instrukcji, 4.7k)
i w każdej "gałęzi" 150 Ohm dla wygaszenia zakłóceń.
Back to top
   
Żyła
Poziom 3
Poziom 3


Joined: 22 May 2007
Posts: 6
Location: W-w

Post#202 27 Jul 2008 21:52   

Re: 4x DS18b20 +LCD = Termometr


lechoo wrote:
Mam pytanie związane z tym termometrem - czy BASCOM wymusza stan wysoki na linii danych DQ magistrali 1WIRE na czas konwersji temperatury, w celu realizacji zasilania typu "parasite"?
Jeśli nie - to pomiar może być obarczony dużym błędem ze względu na zasilanie czujników jedynie przez rezystory 4k7.

Mamy jakieś teorie na ten temat ?
Back to top
   
Duch__
Poziom 22
Poziom 22


Joined: 12 Dec 2004
Posts: 1911
Location: Opole

Post#203 Post from the author of the topic 06 Aug 2008 09:41   

Re: 4x DS18b20 +LCD = Termometr


Tam jest użyte słowo "może" co znaczy że błąd może wystąpić ale nie musi. Ja u siebie nie dostrzegam błędów, porównywane z kilkoma termometrami rtęciowymi.

Dodaje fotki i wsad nowej wersji termometru oraz schemat i wzór PCB. Dodałem obsługę 2 przycisków (wyświetlanie temp. maksymalnej i minimalnej, oraz resetowanie tych wartości). Płytka PCB powstała w Eaglu. Panel przedni w Corelu.

4x DS18b20 +LCD = Termometr

4x DS18b20 +LCD = Termometr

4x DS18b20 +LCD = Termometr

Wartość MAX i MIN dla każdej z temperatur przechowywana jest w zmiennej SRAM-owej. Soft może zawierać jeszcze błędy które postaram się w najbliższym czasie wyeliminować!!! Jak będzie mi się chciało to może zrobię wykres temperatury przy pomocy bargrafa.


Wyeliminowano błąd pokazywania prawidłowej temperatury po kasowaniu pamięci SRAM-owej. Wsad poniżej jest poprawiony

Code:
$regfile = "m8def.DAT"                                      'deklaracja procesora, w tym wypadku Atmega8
$crystal = 8000000                                          'deklaracja cześtotlwiości pracy (wew oscylator 1MHz w zupełności wystarcza)
'Deklaracja portów od wyświetlacza LCD
Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.5 , Db7 = Portc.4 , E = Portc.1 , Rs = Portc.0

Config Lcd = 20 * 2                                         'ustawiamy typ wyświetlacza (soft jest dostosowany do pracy z wyświetlaczem 2x20, przy pracy z innym wyświetlaczem trzeba będzie skorygować wyświetlanie znaków)

'*************************************WAŻNE**********************************************
'Pamiętać o podłączeniu rezystora podciągającego o wartości 4.7kohm między linią DQ a VCC
Config 1wire = Portd.5                                      'deklaracja portu na którym będą podpięte DS18b20



Config Pind.7 = Input
Config Pinb.0 = Input

Config Debounce = 10


Set Portd.7
Set Portb.0

Declare Sub Pokaz_temp
Declare Sub Skasowano

Dim I1 As Integer , Ss As String * 6
Dim I2 As Integer
Dim I3 As Integer
Dim I4 As Integer
Dim I11 As Integer                                          ' przechowuje poprzednią wartoś temp
Dim I22 As Integer                                          ' przechowuje poprzednią wartoś temp
Dim I33 As Integer                                          ' przechowuje poprzednią wartoś temp
Dim I44 As Integer                                          ' przechowuje poprzednią wartoś temp

Dim Zewmin As Integer
Dim Zewmax As Integer
Dim Wewmin As Integer
Dim Wewmax As Integer
Dim Piemin As Integer
Dim Piemax As Integer
Dim Lodmin As Integer
Dim Lodmax 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                                               'deklaracja zmiennej do odczytu kodów ID
Dim W As Byte                                               'deklaracja zmiennej do odczytu ilośc czujników
Dim A As Byte                                               'Przesuwanie ekranu startowego


Deflcdchar 0 , 8 , 20 , 8 , 32 , 32 , 32 , 32 , 32          'znak stopnia Celsjusza
Deflcdchar 1 , 8 , 20 , 8 , 32 , 4 , 14 , 21 , 4            ' strzałka w góre
Deflcdchar 2 , 8 , 20 , 8 , 32 , 4 , 21 , 14 , 4            ' strzałka w dół


Zewmin = 125 * 16
Wewmin = 125 * 16
Piemin = 125 * 16
Lodmin = 125 * 16
Zewmax = -55 * 16
Wewmax = -55 * 16
Piemax = -55 * 16
Lodmax = -55 * 16

Cursor Off
Cls
Locate 1 , 21
Lcd ">> Duch <<"
Locate 2 , 24
Lcd "2008"

For A = 1 To 15
Shiftlcd Left
Waitms 30                                                   'Wysuniecie tekstu
Next A

Wait 2

For A = 1 To 15
Shiftlcd Left
Waitms 30                                                   'Schowanie tekstu
Next A

Waitms 300

                                                'Wyłącza kursor
Cls
Locate 1 , 21                                               'Funkcja CLS czyści ekran
Lcd "Termometr"
Locate 2 , 21                                               'ekran startowy (pojawia się tylko podczas włączania urządzenia)
Lcd "6.08.2008"

For A = 1 To 15
Shiftlcd Left
Waitms 30                                                   'Wysuniecie tekstu
Next A

Wait 2

For A = 1 To 15
Shiftlcd Left
Waitms 30                                                   'Wysuniecie tekstu
Next A

Waitms 500

Cls
W = 1wirecount()
Lcd "Ilosc czujnikow:"                                      'Informuje ile czujników jest podpiętych do układu (pojawia się tylko podczas włączania urządzenia)
Waitms 200
Lcd W
Wait 2
Cls                                                         'Znajdź pierwszy czujnik podpięty do portu
Dsid1(1) = 1wsearchfirst()                                  'Znajdź kolejny czujnik podpięty do portu
Dsid2(1) = 1wsearchnext()                                   'Znajdź kolejny czujnik podpięty do portu
Dsid3(1) = 1wsearchnext()                                   'Znajdź kolejny czujnik podpięty do portu
Dsid4(1) = 1wsearchnext()

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

If Dsid1(8) = Crc8(dsid1(1) , 7) Then                       'ta opcja pojawia się tylko przy włączaniu urządzenia
 Locate 1 , 6
 Lcd "Czujnik 1"
 Locate 2 , 3
 For B = 1 To 8
 Lcd Hex(dsid1(b))
 Next
End If
Wait 2

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

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

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

'*******************koniec odczytu ID czujników temperatury*********************
Poczatek:
Do

Call Pokaz_temp
Debounce Pinb.0 , 0 , Maxmin
Debounce Pind.7 , 0 , Kasuj

Loop

Pokaz_temp:

'--------konwersja temp dla wszystkich dsow
   1wreset
   1wwrite &HCC
   1wwrite &H44
Wait 1

   1wreset
   1wwrite &H55
   1wverify Dsid1(1)                                        'wysyłamy adres pierwszego czujnika
   1wwrite &HBE
   I1 = 1wread(2)
'---------------------------------
   1wreset
   1wwrite &H55
   1wverify Dsid2(1)                                        'wysylam adres drugiego czujnika
   1wwrite &HBE
   I2 = 1wread(2)
'---------------------------------
   1wreset
   1wwrite &H55
   1wverify Dsid3(1)                                        'wysylam adres trzeciego czujnika
   1wwrite &HBE
   I3 = 1wread(2)
'---------------------------------
   1wreset
   1wwrite &H55
   1wverify Dsid4(1)                                        'wysylam adres czwartego czujnika
   1wwrite &HBE
   I4 = 1wread(2)


'****Jeśli pracujesz z wyświetlaczem innym niż 2x20 to tutaj trzeba wprowadzić zmiany w LOCATE********

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


   I2 = I2 * 10
   I2 = I2 / 16
   If I2 >= I22 Then
   I22 = I2
   If I2 > 0 Then
   Ss = Str(i2)
   Ss = Format(ss , " 0.0")
   Locate 2 , 1
   Lcd "Lod " ; Ss ; Chr(1) ;
   Else
   Ss = Str(i2)
   Ss = Format(ss , "0.0")
   Locate 2 , 1
   Lcd "Lod " ; Ss ; Chr(1) ;
   End If
   Else
   I22 = I2
   If I1 > 0 Then
   Ss = Str(i2)
   Ss = Format(ss , " 0.0")
   Locate 2 , 1
   Lcd "Lod " ; Ss ; Chr(2) ;
   Else
   Ss = Str(i2)
   Ss = Format(ss , "0.0")
   Locate 2 , 1
   Lcd "Lod " ; Ss ; Chr(2) ;
   End If
   End If


   I3 = I3 * 10
   I3 = I3 / 16
   If I3 >= I33 Then
   I33 = I3
   If I3 > 0 Then
   Ss = Str(i3)
   Ss = Format(ss , " 0.0")
   Locate 1 , 11
   Lcd "Wew " ; Ss ; Chr(1) ;
   Else
   Ss = Str(i3)
   Ss = Format(ss , "0.0")
   Locate 1 , 11
   Lcd "Wew " ; Ss ; Chr(1) ;
   End If
   Else
   I33 = I3
   If I1 > 0 Then
   Ss = Str(i3)
   Ss = Format(ss , " 0.0")
   Locate 1 , 11
   Lcd "Wew " ; Ss ; Chr(2) ;
   Else
   Ss = Str(i3)
   Ss = Format(ss , "0.0")
   Locate 1 , 11
   Lcd "Wew " ; Ss ; Chr(2) ;
   End If
   End If


   I4 = I4 * 10
   I4 = I4 / 16
   If I4 >= I44 Then
   I44 = I4
   If I1 > 0 Then
   Ss = Str(i4)
   Ss = Format(ss , " 0.0")
   Locate 2 , 11
   Lcd "Pie " ; Ss ; Chr(1) ;
   Else
   Ss = Str(i4)
   Ss = Format(ss , "0.0")
   Locate 2 , 11
   Lcd "Pie " ; Ss ; Chr(1) ;
   End If
   Else
   I44 = I4
   If I4 > 0 Then
   Ss = Str(i4)
   Ss = Format(ss , " 0.0")
   Locate 2 , 11
   Lcd "Pie " ; Ss ; Chr(2) ;
   Else
   Ss = Str(i4)
   Ss = Format(ss , "0.0")
   Locate 2 , 11
   Lcd "Pie " ; Ss ; Chr(2) ;
   End If
   End If

  If I1 < Zewmin Then Zewmin = I1
  If I1 > Zewmax Then Zewmax = I1
  If I3 < Wewmin Then Wewmin = I3
  If I3 > Wewmax Then Wewmax = I3
  If I4 < Piemin Then Piemin = I4
  If I4 > Piemax Then Piemax = I4
  If I2 < Lodmin Then Lodmin = I2
  If I2 > Lodmax Then Lodmax = I2

Return
'-------------------------------------------------
Maxmin:
Cls
Goto Maxminzew

Maxminzew:

Do
Locate 1 , 2
Lcd "Min"

Locate 1 , 6
Lcd "Zewnetrzna"

Locate 1 , 17
Lcd "Max"


Ss = Str(zewmin)
Gosub Formatss
Locate 2 , 2
Lcd Ss ; Chr(0)

Ss = Str(zewmax)
Gosub Formatss
Locate 2 , 16
Lcd Ss; Chr(0)



Debounce Pinb.0 , 0 , Maxminwew

Loop
'-------------------------------------------------
Maxminwew:
Cls
Do
Locate 1 , 2
Lcd "Min"

Locate 1 , 6
Lcd "Wewnetrzna"

Locate 1 , 17
Lcd "Max"


Ss = Str(wewmin)
Gosub Formatss
Locate 2 , 2
Lcd Ss; Chr(0)

Ss = Str(wewmax)
Gosub Formatss
Locate 2 , 16
Lcd Ss; Chr(0)



Debounce Pinb.0 , 0 , Maxminpie

Loop
'-------------------------------------------------
Maxminpie:
Cls

Do
Locate 1 , 2
Lcd "Min"

Locate 1 , 9
Lcd "Piec"

Locate 1 , 17
Lcd "Max"


Ss = Str(piemin)
Gosub Formatss
Locate 2 , 2
Lcd Ss; Chr(0)

Ss = Str(piemax)
Gosub Formatss
Locate 2 , 16
Lcd Ss ; Chr(0)



Debounce Pinb.0 , 0 , Maxminlod

Loop
'-------------------------------------------------
Maxminlod:
Cls

Do
Locate 1 , 2
Lcd "Min"

Locate 1 , 7
Lcd "Lodowka"

Locate 1 , 17
Lcd "Max"


Ss = Str(lodmin)
Gosub Formatss
Locate 2 , 2
Lcd Ss ; Chr(0)

Ss = Str(lodmax)
Gosub Formatss
Locate 2 , 16
Lcd Ss ; Chr(0)



Debounce Pinb.0 , 0 , Przeczytane

Loop
'-------------------------------------------------


Formatss:
Ss = Format(ss , "0.0")
Return

Przeczytane:
Cls
Goto Poczatek

Kasuj:
Cls
Do

Locate 1 , 3
Lcd "SKASOWAC PAMIEC?"

Locate 2 , 6
Lcd "TAK"

Locate 2 , 13
Lcd "NIE"

Debounce Pinb.0 , 0 , Kasuje
Debounce Pind.7 , 0 , Wracamdopoczatku
Loop

Wracamdopoczatku:
Cls

Goto Poczatek

Kasuje:
 Zewmin = I1
 Zewmax = I1
 Wewmin = I3
 Wewmax = I3
 Piemin = I4
 Piemax = I4
 Lodmin = I2
 Lodmax = I2

Gosub Skasowano
Gosub Skasowano
Gosub Skasowano
Gosub Skasowano
Gosub Skasowano
Gosub Skasowano
Cls

Goto Poczatek

Sub Skasowano:

Cls
Locate 1 , 1
Lcd "!!PAMIEC SKASOWANO!!"
Waitms 250
Cls
Waitms 250

End Sub



W załączniku schemat i PCB.



Termo.rar
 Description:
 n/a

Download
 Filename:  Termo.rar
 Contents:  Termometr.brd , Termometr.sch , Termo
See all...
 Filesize:  58.44 KB
 Punkty:  0

Back to top
   
mad182
Poziom 2
Poziom 2


Joined: 30 Mar 2008
Posts: 2

Post#204 29 Aug 2008 11:19   

Re: 4x DS18b20 +LCD = Termometr


Witam,
wykonałem ten termometr na wyświetlaczu 4x20 tak jak peleton123. Po podłączeniu wszystkiego okazało się że kontrast nie jest taki jaki bym chciał. Przerobiłem trochę schemat opierając się o inne schematy (np. podłaczania LCD do LPT) ale że jestem jeszcze początkujący w tej tematyce więc wolę zapytać czy to może tak być i czy te moje przeróbki nie spowodują jakiś uszkodzeń w układzie (np po dłuższym działaniu itp)? Po złożeniu układu na płytce prototypowej wszystko działa i za pomocą potencjometrów można regulować jasność podświetlenia (potencjometr 10k) i kontrast (potencjometr 100Ω).

4x DS18b20 +LCD = Termometr
Back to top
   
Thaed
Poziom 14
Poziom 14


Joined: 12 Jul 2003
Posts: 199
Location: Kraków

Post#205 29 Aug 2008 13:52   

Re: 4x DS18b20 +LCD = Termometr


Z tego co widzę jedynym uzupełnieniem jakie zrobiłeś, jest wstawienie potencjometru do regulacji podświetlenia - nawiasem mówiąc, w poście masz błąd - do kontrastu jest 10k a do podświetlenia 100R.
Jeżeli regulując potencjometrem 100R ustawisz wartość prądu diod służących do podświetlenia na większą niż wynikająca z danych Twojego wyświetlacza, to w krótkim czasie zniknie Ci podświetlenie - spalą się diody.
Back to top
   
mad182
Poziom 2
Poziom 2


Joined: 30 Mar 2008
Posts: 2

Post#206 30 Aug 2008 14:28   

Re: 4x DS18b20 +LCD = Termometr


tak Thaed masz rację potencjometr 10k odpowiada za kontrast a 100R za jasność... w takim razie zostawie tylko regulację kontrastu a z podświetleniem dam sobie spokój... :) dzięki za pomoc
Back to top
   
DJpopak;)
Poziom 23
Poziom 23


Joined: 01 Dec 2003
Posts: 2520
Location: B-tów

Post#207 13 Sep 2008 22:19   

Re: 4x DS18b20 +LCD = Termometr


Witam

Chciałem sobie zrobić termometr ale nie mogę skomplikować go obojętnie jaki program zawsze wywala na samym końcu błąd :|
Co ja źle robię? :|
Pomożecie mi?
4x DS18b20 +LCD = Termometr
Back to top
   
macgyver4
Poziom 15
Poziom 15


Joined: 05 Dec 2003
Posts: 255
Location: Polska ....chyba;)

Post#208 13 Sep 2008 22:39   

Re: 4x DS18b20 +LCD = Termometr


DJpopak;) wrote:
Witam

Chciałem sobie zrobić termometr ale nie mogę skomplikować go obojętnie jaki program zawsze wywala na samym końcu błąd :|
Co ja źle robię? :|
Pomożecie mi?
4x DS18b20 +LCD = Termometr


proszę bardzo w załączniku skompilowany kod ...:D



4xds.rar
 Description:
 n/a

Download
 Filename:  4xds.rar
 Contents:  duch.bas , DUCH.BIN , DUCH.DBG , DUCH.HEX , DUCH.OBJ , DUCH.RPT , 4xds
See all...
 Filesize:  25.66 KB
 Punkty:  0

Back to top
   
Google

Google Adsense


Post# 13 Sep 2008 22:39   





Back to top
   
konrad92
Poziom 14
Poziom 14


Joined: 26 Aug 2006
Posts: 177
Location: Dubna/Bestwina

Post#209 20 Sep 2008 15:36   

Re: 4x DS18b20 +LCD = Termometr


witam,
jaki kwarc i kondensatory zostały użyte w nowym termometrze?? Czy 33pF wystarczą?? I jak wygląda sprawa z fusebitami?? czy trzeba na atmedze ustawić zewnętrzny kwarc :D
Back to top
   
Thaed
Poziom 14
Poziom 14


Joined: 12 Jul 2003
Posts: 199
Location: Kraków

Post#210 20 Sep 2008 16:50   

Re: 4x DS18b20 +LCD = Termometr


Konrad92 -->kwarc 8MHz, kondensatory 27pF
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 7 of 14 Go to page Previous  1, 2, 3 ... 6, 7, 8 ... 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.209 seconds


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