| Author |
Message
|
Michał~88 Poziom 14

Joined: 01 Aug 2005 Posts: 165 Location: Rydułtowy
|
#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

Joined: 22 Mar 2008 Posts: 49 Location: Mińsk Maz.
|
#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

Joined: 01 Aug 2005 Posts: 165 Location: Rydułtowy
|
#183
13 Jun 2008 08:28 Re: 4x DS18b20 +LCD = Termometr |
|
|
|
A jak zmienić fuse bit w programie tym
Pozdrawiam.
|
|
| Back to top |
|
 |
peleton123 Poziom 10

Joined: 22 Mar 2008 Posts: 49 Location: Mińsk Maz.
|
#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

Joined: 01 Aug 2005 Posts: 165 Location: Rydułtowy
|
#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

Joined: 22 Mar 2008 Posts: 49 Location: Mińsk Maz.
|
#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

Joined: 01 Aug 2005 Posts: 165 Location: Rydułtowy
|
#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

Joined: 26 Aug 2006 Posts: 177 Location: Dubna/Bestwina
|
#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:
pozdrawiam, Konrad
|
|
| Back to top |
|
 |
peleton123 Poziom 10

Joined: 22 Mar 2008 Posts: 49 Location: Mińsk Maz.
|
#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

|
#
25 Jun 2008 16:03 |
|
|
|
|
|
| Back to top |
|
 |
konrad92 Poziom 14

Joined: 26 Aug 2006 Posts: 177 Location: Dubna/Bestwina
|
#190
26 Jun 2008 10:23 Re: 4x DS18b20 +LCD = Termometr |
|
|
|
dziękuję. :)
|
|
| Back to top |
|
 |
done Poziom 18

Joined: 20 Sep 2004 Posts: 567 Location: Lublin
|
#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.

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

Joined: 22 Mar 2008 Posts: 49 Location: Mińsk Maz.
|
#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

Joined: 20 Sep 2004 Posts: 567 Location: Lublin
|
#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

Joined: 26 Aug 2006 Posts: 177 Location: Dubna/Bestwina
|
#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:
Coś wcześniej wspominaliście o ustawianiu fusebitów. Nie umiem tego robić, a programuje w PonyProg2000
|
|
| Back to top |
|
 |
done Poziom 18

Joined: 20 Sep 2004 Posts: 567 Location: Lublin
|
#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

Joined: 26 Aug 2006 Posts: 177 Location: Dubna/Bestwina
|
#196
30 Jun 2008 16:05 Re: 4x DS18b20 +LCD = Termometr |
|
|
|
Jest podłączony i dalej to samo.
I jeszcze jedno:
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

Joined: 12 Dec 2004 Posts: 1911 Location: Opole
|
#197
30 Jun 2008 16:58 Re: 4x DS18b20 +LCD = Termometr |
|
|
|
Dokładnie tak jak napisałeś.
|
|
| Back to top |
|
 |
konrad92 Poziom 14

Joined: 26 Aug 2006 Posts: 177 Location: Dubna/Bestwina
|
#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

|
#
30 Jun 2008 19:47 |
|
|
|
|
|
| Back to top |
|
 |
Wally50 Poziom 10

Joined: 30 Jan 2006 Posts: 54 Location: Zakopane
|
#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

Joined: 01 Aug 2005 Posts: 165 Location: Rydułtowy
|
#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

Joined: 30 Jan 2006 Posts: 54 Location: Zakopane
|
#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

Joined: 22 May 2007 Posts: 6 Location: W-w
|
#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

Joined: 12 Dec 2004 Posts: 1911 Location: Opole
|
#203
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.
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.
| Description: |
|
 Download |
| Filename: |
Termo.rar |
| Contents: |
Termometr.brd
, Termometr.sch
, Termo
See all... |
| Filesize: |
58.44 KB |
| Punkty: |
0 |
|
|
| Back to top |
|
 |
mad182 Poziom 2

Joined: 30 Mar 2008 Posts: 2
|
#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Ω).
|
|
| Back to top |
|
 |
Thaed Poziom 14

Joined: 12 Jul 2003 Posts: 199 Location: Kraków
|
#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

Joined: 30 Mar 2008 Posts: 2
|
#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

Joined: 01 Dec 2003 Posts: 2520 Location: B-tów
|
#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?
|
|
| Back to top |
|
 |
macgyver4 Poziom 15

Joined: 05 Dec 2003 Posts: 255 Location: Polska ....chyba;)
|
#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?
 |
proszę bardzo w załączniku skompilowany kod ...:D
| Description: |
|
 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

|
#
13 Sep 2008 22:39 |
|
|
|
|
|
| Back to top |
|
 |
konrad92 Poziom 14

Joined: 26 Aug 2006 Posts: 177 Location: Dubna/Bestwina
|
#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

Joined: 12 Jul 2003 Posts: 199 Location: Kraków
|
#210
20 Sep 2008 16:50 Re: 4x DS18b20 +LCD = Termometr |
|
|
|
Konrad92 -->kwarc 8MHz, kondensatory 27pF
|
|
| Back to top |
|
 |