DS 1820 hőmérő élesztés

Hogyan programozzak AVR chipet? Programozók beállításai...
Bascom nyelvű programok...
Válasz küldése
Avatar
kistigris
Biztosítékgyilkos
Hozzászólások: 62
Csatlakozott: 2012. január 19. csütörtök, 7:00

Hozzászólás Szerző: kistigris »

Minden tanító jellegű dolgot elfogadok amivel tovább tudok lépni.Nem tudom hogy lehetne megoldani ezért kértem iránymutatást.Persze ha elküldöd szivesen veszem.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Program elején:
a= 1wcount()
if err=1 then
print "nincs is homero"
stop
end if
if a>0 then read ID1 '1.
if a>1 then read ID2 '2.
if a>2 then read ID3 '3.
if a>4 then read ID4 '4.

kiirasnal/feldolgozasnal:
for kiiras= 1 to a
.
.
next kiiras


:?:
Avatar
kistigris
Biztosítékgyilkos
Hozzászólások: 62
Csatlakozott: 2012. január 19. csütörtök, 7:00

Hozzászólás Szerző: kistigris »

Köszönöm ilyesmire gondoltam
Avatar
ampervadasz
Bitmanipulátor
Hozzászólások: 119
Csatlakozott: 2008. január 19. szombat, 7:00
Tartózkodási hely: Mátraterenye

Hozzászólás Szerző: ampervadasz »

A kód(részlet)

Kód: Egész kijelölése

'1-es szenzor ID-je
Id1(1) = &H28
Id1(2) = &HD0
Id1(3) = &HB0
Id1(4) = &HBF
Id1(5) = &H02
Id1(6) = &H00
Id1(7) = &H00
Id1(8) = &HD1

'2-es szenzor ID-je
Id2(1) = &H28
Id2(2) = &H6B
Id2(3) = &HC6
Id2(4) = &H67
Id2(5) = &H00
Id2(6) = &H00
Id2(7) = &H00
Id2(8) = &H8D

'3-es szenzor ID-je
Id3(1) = &H28
Id3(2) = &H08
Id3(3) = &HCE
Id3(4) = &HB7
Id3(5) = &H01
Id3(6) = &H00
Id3(7) = &H00
Id3(8) = &H83

...
...
...

Sub Lekerdezes

1wreset
Waitms 10
1wreset
1wwrite &H55
1wwrite Id1(1) , 8
1wverify Id1(1)
If Err = 1 Then
   No1 = 1
   Temp(1) = -55
Elseif Err = 0 Then
   No1 = 0
End If

1wreset
1wwrite &H55
1wwrite Id2(1) , 8
1wverify Id2(1)
If Err = 1 Then
   No2 = 1
   Temp(2) = -55
Elseif Err = 0 Then
   No2 = 0
End If

1wreset
1wwrite &H55
1wwrite Id3(1) , 8
1wverify Id3(1)
If Err = 1 Then
   No3 = 1
   Temp(3) = -55
Elseif Err = 0 Then
   No3 = 0
End If



1wreset
1wwrite &HCC
1wwrite &H44
'Waitms 750

1wverify Id1(1)
If Err = 1 Then
No1 = 1
Temp(1) = -55
   Elseif Err = 0 Then
1wwrite &HBE
Sc(1) = 1wread(9)
Temp(1) = Decigrades(sc(9))
Temp(1) = Temp(1) / 100
End If

1wverify Id2(1)
If Err = 1 Then
No2 = 1
Temp(2) = -55
   Elseif Err = 0 Then
1wwrite &HBE
Sc(1) = 1wread(9)
Temp(2) = Decigrades(sc(9))
Temp(2) = Temp(2) / 100
End If

1wverify Id3(1)
If Err = 1 Then
No3 = 1
Temp(3) = -55
   Elseif Err = 0 Then
1wwrite &HBE
Sc(1) = 1wread(9)
Temp(3) = Decigrades(sc(9))
Temp(3) = Temp(3) / 100
End If
End Sub Lekerdezes

'------------------ 1-WIRE HŐMÉRSÉKLETI ADATOK KONVERTÁLÁSA! -------------------
Function Decigrades(byval Sc(9) As Byte)                    'SRACH pad adatokból a hőmérséklet kiszámítása              '
Decigrades = 0

If Sc(2).0 = 0 Then                                         'Ha a hőmérséklet pozitív
   Decigrades = Makeint(sc(1) , Sc(2))
   Decigrades = Decigrades / 4                              '*0,0625fok
   Decigrades = Decigrades * 25
End If
   If Sc(2).0 = 1 Then                                      'Ha a hőmérséklet negatív
   Sc(1) = Sc(1) Xor &HFF
   Sc(2) = Sc(2) Xor &HFF
   Decigrades = Makeint(sc(1) , Sc(2))
   Decigrades = Decigrades / 4
   Decigrades = Decigrades * 25                             '*0,0625fok
   Decigrades = Decigrades + 25                             'korrekcio lsd adatlap!
   Decigrades = 0 - Decigrades
End If
End Function
A lényege:
- Minden szenzornál ellenőrizzük, hogy a kinyert ID szám megegyezik-e a leprogramozott ID-vel. Ha nem, akkor az ERR értéke 1-es értékez vesz fel.
- Ezt egy változó átállításával figyeltetetem No1, No2, No3
- Kijelzésnél a következőt lehet tenni. IF, cagy CASE utasítással figyeled a változók állását No1=0, vagy No1=1.

Kód: Egész kijelölése

If No1=0 Then
    Lcd temp(1)
Else
    Lcd "--"
End if
vagy...

Kód: Egész kijelölése

Select case No1
  Case 0:
     Lcd Temp(1)
  Case 1:
     Lcd "--"
End select
A többit rád bízom :D
Avatar
tetye
Chipgyilok
Hozzászólások: 279
Csatlakozott: 2007. augusztus 29. szerda, 6:00
Tartózkodási hely: Perbál
Kapcsolat:

Hozzászólás Szerző: tetye »

Na ja... Robi még én várom a sült galambot !? :P
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Na jó, lehet versenyezni:)
Ígérem készül egy sültgalambos cikk / szösszenet is lassan....


:P :lol:
Avatar
tetye
Chipgyilok
Hozzászólások: 279
Csatlakozott: 2007. augusztus 29. szerda, 6:00
Tartózkodási hely: Perbál
Kapcsolat:

Hozzászólás Szerző: tetye »

Köszi! Bíztam benned :D
De most őszintén, megírtam egy rutint az ic adatlapján szereplő adatok szerint. Aminek szerintem működnie kellene. DE nem működik, majd megosztottam veletek mert én már nem értem hol a hiba. Ez miért sült galamb? Nem azt kértem hogy írjátok át hogy működjön. Csak kérdés volt hogy hol lehet hiba... Sült galamb... amúgy sem szeretem a sült húst. :P
Avatar
kistigris
Biztosítékgyilkos
Hozzászólások: 62
Csatlakozott: 2012. január 19. csütörtök, 7:00

Hozzászólás Szerző: kistigris »

Én sem működőt kértem csak egy kis ötletet mert kezdő vagyok,de kaptam többet is.Köszönöm a segítőkészséget(aki segített)
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Avatar
ampervadasz
Bitmanipulátor
Hozzászólások: 119
Csatlakozott: 2008. január 19. szombat, 7:00
Tartózkodási hely: Mátraterenye

Hozzászólás Szerző: ampervadasz »

Megnyugodtam...

Ezek szerint nem csak én vagyok agyilag zakkant. :lol:
Avatar
tetye
Chipgyilok
Hozzászólások: 279
Csatlakozott: 2007. augusztus 29. szerda, 6:00
Tartózkodási hely: Perbál
Kapcsolat:

Hozzászólás Szerző: tetye »

Egy Like! gombot még légyszi szögelj fel. :P :D
Avatar
kistigris
Biztosítékgyilkos
Hozzászólások: 62
Csatlakozott: 2012. január 19. csütörtök, 7:00

Hozzászólás Szerző: kistigris »

ampervadasz írta:Megnyugodtam...

Ezek szerint nem csak én vagyok agyilag zakkant. :lol:
Abból úgy látom nincs hiány :D
Avatar
pezsma
DrótVégénSzéndarab
Hozzászólások: 22
Csatlakozott: 2011. november 14. hétfő, 7:00
Tartózkodási hely: Alsónémedi

Hozzászólás Szerző: pezsma »

Nekem egy olyan kérdésem lenne hogy szereztem egy olyan termosztát kapcsolást amiben egy attiny2313 és egy DS18B20 van, beleírtam mert nekem nem volt olyan kijelzőm, viszont még át kéne alakítanom mert nekem DS1820-am van, viszont nem értem hogy a programban mit kéne átírni.

http://jumperone.com/2012/02/attiny2313 ... /#more-311[/url][/code]
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10115
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Hozzászólás Szerző: Robert »

Less vissza kb. 4 oldalt.
A DS1820 és a DS18B20 két külön módon adja vissza az eredményt...
Avatar
evildodo
Pákabűvész
Hozzászólások: 213
Csatlakozott: 2009. február 4. szerda, 7:00
Tartózkodási hely: Győr

Re: DS 1820 hőmérő élesztés

Hozzászólás Szerző: evildodo »

Sziasztok!
Lehet egyszerre két 1wire busz egy AVR-en? (Portd.2, ill portd.4) Portd.2-re fel van fűzve 3 db ds18b20, ha valamelyik kiesik (meghal), akkor átáll a program a portd.4-es buszra..(Szintén 3db ds18b20) Egyszerre nem működne a kettő. Próbálkoztam Bascommal, de nekem nem sikerül. Mi a véleményetek? HW kész :)
Geht nicht, Gibt's nicht!
Válasz küldése