Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


DS18S20 Tempgivare

Postades av 2011-12-06 17:16:33 - Sven Åke Persson, i forum elektronik, Tråden har 27 Kommentarer och lästs av 3502 personer

Har aldrig jobbat mot denna men intressant.

Så det biter Vi tag i.
Om du har någon kod i VB6 som du börjat på så visa gärna den.

Svaret ligger ju i det här. Läser in via Com 1 - 2 - eller vilken du nu väljer.
<b>TEMPERATURE (°C)
DIGITAL OUTPUT
(BINARY)
DIGITAL OUTPUT
(HEX)
+85.0*
0000 0000 1010 1010
00AAh
+25.0
0000 0000 0011 0010
0032h
+0.5
0000 0000 0000 0001
0001h
0
0000 0000 0000 0000
0000h
-0.5
1111 1111 1111 1111
FFFFh
-25.0
1111 1111 1100 1110
FFCEh
-55.0
1111 1111 1001 0010
FF92h</b>

Det här gillar jag att bita i.
Gör reklam för mitt gamla projekt
Programarkivet:ElectroMate


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-06 17:42:18 - Tege Svensson

Japp du har sett problemet vid 0 Gr C

Att avkoda + grader är lätt,
bara polla av värdet via 1-wire protokollet, ta värdet och dela med 2 ((x*10)/2)= Temp i C.

Problemet uppstår vid - grader,
Vet inte om man kan göra så här OM x>170 then ((255 - x) / 2) = Temp - C


Befintlig programkod = bara plusgrader .. (Inte direkt VB6, men nått liknande )

OWOUT 12,1,[$cc,$44] 'Calculate temperature all DS18S20
wTmp = 0
OWOUT 12,1,[$55,16,bTmp,bTmp1,181,1,8,0,bRet,$BE] ' bTmp,bTmp1 = Aktuell givares adress
OWIN 12,0,[wTmp.LOWBYTE,wTmp.HIGHBYTE] ' Erhåller svar i word-format
wTmp = (wTmp*10) / 2 ' Beräknar temperatur med 1 decimalvisaning 102 = 10,2 GrC
RETURN


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-06 18:04:40 - Sven Åke Persson

Spontant utan ha kollat noga så blir det en OR eller XOR lösning.

Låser lite på att det är 9 bitar så 255 kanske inte är rätt.

Svamlar/spånar utan direkt kontroll.

Sätter på mig tänkarmössan och analyserar.


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-06 18:10:29 - Sven Åke Persson

Tycker du skall lägga upp frågan på

http://www.elektronikforumet.com/forum/

Dom har löst detta problem många gånger


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-06 18:40:31 - Tege Svensson

NÄE så här blir det

OWOUT 12,1,[$cc,$44] 'Calculate temperature all DS18S20
wTmp = 0
OWOUT 12,1,[$55,16,bTmp,bTmp1,181,1,8,0,bRet,$BE] ' bTmp,bTmp1 = Aktuell givares adress
OWIN 12,0,[wTmp.LOWBYTE,wTmp.HIGHBYTE] ' Erhåller svar i word-format

IF wTmp.HIGHBYTE = 0 Then subPlus

SubMinus:
wTmp = ((256 - wTmp.LOWBYTE)*10) / 2 ' Beräknar MINUStemperatur med 1 decimal 102 = -10,2 GrC
RETURN

SubPlus:
wTmp = (wTmp.LOWBYTE*10) / 2 ' Beräknar temperatur med 1 decimal 102 = 10,2 GrC
RETURN


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-06 22:33:29 - Per Persson

<b>Att avkoda + grader är lätt,
bara polla av värdet via 1-wire protokollet, ta värdet och dela med 2 ((x*10)/2)= Temp i C.

Problemet uppstår vid - grader,
Vet inte om man kan göra så här OM x>170 then ((255 - x) / 2) = Temp - C </b>

Det är lika lätt att avkoda minusgrader som plusgrader - om du har tillgång till teckensatta 16-bitars tal.


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-07 10:40:37 - Tege Svensson

Nepp Per
Inget avancerat programmeringsspråk.
Ett 30-tal kommando
Bara formaten Word,Byte,Nib,Bit


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-08 05:58:47 - Sven Åke Persson

Kör du mot RS232 Com-port ?

Har du löst - kodningen ,tycker det verkar så.


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-08 13:04:40 - Tege Svensson

Näe SÅP

Programmering av PIC-krets


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-08 16:38:37 - Sven Åke Persson

Oki jag är ju PC Vb6 freek så jag skall göra en simulation där jag läser COM2

för input via DS18S20. Har aldrig jobbat mot Pic.

Hur som helst så skall jag fixa om det kommer - 22 C

Är det linjärt ?


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-08 17:23:01 - Tege Svensson

Oj då SÅP
Skall du ge dej på att bygga en dll för 1-wire protokollet också
eller köper du en färdig dll för det ?


Är det linjärt frågar du ??
Kan det bli mer linjärt än detta ?????
DIGITAL OUTPUT
(HEX)
+85.0*
0000 0000 1010 1010
00AAh
+25.0
0000 0000 0011 0010
0032h
+0.5
0000 0000 0000 0001
0001h
0
0000 0000 0000 0000
0000h
-0.5
1111 1111 1111 1111
FFFFh
-25.0
1111 1111 1100 1110
FFCEh
-55.0
1111 1111 1001 0010

Jag hoppas du skämtar


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-09 06:07:48 - Sven Åke Persson

Nä jag skämtar inte. Så noga har jag inte kollat.

Tycker frågan är berättigad.
Lämnar DS18S20 temperaturer linjärt hela området +85 -55.

Jag har bara malt problemet i skallen innan jag somnar.
Var inne på att det är bara multiplicera med -1 om If-satsen säger minus-suben

Nu skall jag skriva lite VB6 kod och se vad som händer.
Jag skiter i dina Pic:ar skall ha en snygg presentation på min PC.


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-09 09:04:33 - Tege Svensson

DS18S20 Har enligt ovan en precision på 0,5 Grader Celsious.
Mätvärdet precenteras i ett 16-bitars register som ett 9 bitars ord
Den nionde biten signalerar negativt mätvärde.

Genom att avläsa registren Count remain och register Count per kan man via en formel
beräkna högre noggranhet på mätvärdet upp till 0.1 Grad

DS18S20 är en komplett mätenhet microprocessorbaserad som
levererar mätvärden i området -55 Gr C till + 85 Gr C.

Enkelt erhålls mätvärden med en mätnoggranhet på 0.5 Grad och
då i digitalform via 9 bitars register.

Via beräkning och formel kan upplösning 0,1 grad erhållas.

Eftersom kommunikation av mätvärde till applikation sker digitalt
och upplösningen garanteras av tillverkare, förstår jag inte frågan och problemet med
"om DS18S20 är linjär, SÅP"

Förr, när man använde PTC eller NTC motstånd, Då snackade man om linjär eller logaritmisk
Ett annat vanligt mätorgan är PT-100 givaren som är logaritmisk

Dagens mätgivare som ger en digital utsignal är enklare att använda och blir mer exakt.
Så uppfattar jag din fråga om DS18S20 är LINJÄR som uppenbart konstig, men
eftersom vi skall vara ödmjuka så lägger jag till -jag kan ju ha fel-

Sedan svarade du aldrig på hur löser du 1-wire protokollet i VB6, det skulle jag vilja veta


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-09 16:00:58 - Sven Åke Persson

Mina funderingar kring linjärt var/är
85+ = 00AA = 170
25+ = 0032 = 50 Ok det är linjärt.

Oki glöm det.
Ang Vb6 kod så blir det inte så konstigt.
Använder MS Comm Control mot Com2 och läser in en buffer från ett snöre.
Enl denna princip
<code>
Buffer$ = Buffer$ & MSComm1.Input
Loop Until InStr(Buffer$, "OK" & vbCRLF)
' Read the "OK" response data in the serial port.
' Close the serial port.
MSComm1.PortOpen = False
</code>


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-09 16:26:34 - Tege Svensson

Hmm, du SÅP
Du har nog ingen aning om 1-wire kommunication ? eller ??
Det är kommunication i bitnivå, och inom fastställda svarstider, men lycka till


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-09 16:54:56 - Sven Åke Persson

Nähä
Så det kommer inte finnas något i min Com1 buffer när jag triggat den ! ?

Vad det blir vet jag inte men nog skall jag kunna avkoda. Är väl inget märkvärdigt med 1 :a 0:a

Jag har inte fördjupat mig i problemet. Men ! jag vet att jag lätt löser det i VB6 om jag vill.

Edit:
HaHa Aha kom på att jag kan köra på en tråd till Parallellporten.
Min gamla TempSensor lösning.

SMT160-30 lämnar frq ~ 4000 Hz och neråt .
Den kan jag sända trådlöst runt hela världen.

Jag kan sitta nere på Rivieran och kolla temperaturen i min sommarstuga eller frysen..

Tycker det är djä... töntigt att läsa temperaturen via en max 20m ledning.
Faee kör trådlöst via en speciell frekvens. Sitt i Skåne kolla hyddan i Björnberget


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-09 18:01:01 - Sven Åke Persson

<b>Du har nog ingen aning om 1-wire kommunication ? eller ?? </b>
Näääääääääää och jooo men ! bryr mig icke.

Kolla denna och min lösning här hos Pelle .
Sök på SMT160-30 TO220 har funkat perfekt hos mig nu i 8 år
Den går på ett 9 V batteri som räcker 3 år

http://www.smartec.nl/pdf/DSSMT16030.PDF


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-10 10:04:21 - Tege Svensson


ps: Det finns färdiga 1-wire DLL till VB6,
varför uppfinna hjulet själv ?

1-Wire is a device communications bus system designed by Dallas Semiconductor Corp. that provides low-speed data, signaling, and power over a single signal.

Varje sensor har egen adress, vilket gör att jag har 10 givare på samma 1-wirebuss.

Din SMT-sensor tror jag inte hanterar enligt Dallas 1-wire protokoll. Det går ej att utläsa ifrån din länk.

Dallas 1-wire klarar "Up to 300 meter long buses consisting of simple twisted pair telephone cable"

Eftersom man bara behöver 2 trådar +5V och communicationstråd, samt att man kan hänga på flera givare, så tycker jag den är KANON-bra.

LÄNK till hämtning av DLL http://www.maxim-ic.com/products/ibutton/software/tmex/download_drivers.cfm


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-10 15:43:26 - Sven Åke Persson

Full respekt för den lösningen.

Min lösning som fick full kraft var när en bonde drog 1 km telefon-ledning
och kunde läsa av när han skulle skörda på sin åker 2 km ifrån.

Min lösning grundar sig på frekvens . (4000 hz)
Dvs Vi räknar hur många höga respektiva låga det finns i en perod.


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-10 16:52:11 - Tege Svensson

Vill du se hela applikationen, besök sidan med onlinevärden

http://tgsoftware.mine.nu/index.htm


Som du ser.
Så skickar jag Flera temperaturer trådlöst, och till hela världen.

Sen kan man undra hur du tänker ??
Bonden drog 1 km kabel till en åker som var 2 km bort. ?? !! ??


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-16 16:24:25 - Sven Åke Persson

Ctrl-C Ctrl-V
Tycker det är oförskämt av dig att inte använda
.............................


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-16 18:38:44 - Tege Svensson

Okay
Du är insnöad i din SMT - givare.
Och det är ju trevligt med snö. i denna gråa vinter.

Vi önskar väl en vit jul ?
Eftersom din SMT givare inte jobbar binärt/digitalt utan istället med frekvens så
kommer här ett par frågor - är den linjär - ?
Är den kompenserad för kapacitanspåverkan av kabellängd ?
Vilken är resonansfrekvensen och vid vilken temperatur. ?


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-17 12:07:39 - Sven Åke Persson

Frågorna är inte riktigt relevanta.
Tekniken är sk. pulsbreddsmodulation. Man räknar antal höga under en given tidsperiod.
Okänsligt för långa ledningar om man kompenserar med en konstant.

Jag gör det med isvatten för (0) noll C. Den jag använder hemma får jag kompensera med 0.2
Sen stämmer det linjärt.
http://www.smartec.nl/pdf/DSSMT16030.PDF

<code>
Begin
Case Pin of
10: Mask := 64 ;
11: Mask := 128 ;
12: Mask := 32 ;
13: Mask := 16 ;
15: Mask := 8 ;
End ;
halfSek := GetTickCount + 500 ;
cntHigh := 0 ;
For totNumOfSamp := 1 TO 100000000 do begin
inSignal := DlPortReadPortUchar(AddrVal) ;
smartSign := inSignal And Mask ;
If smartSign = Mask Then inc(cntHigh) ;
If GetTickCount > halfSek Then Break ;
End ;
If Pin = 11 Then
cntHigh := totNumOfSamp - cntHigh ;
GetTemp := (cntHigh/totNumOfSamp - K1)/K2;
End;
</code>


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-17 15:03:40 - Tege Svensson

Citat:
Okänsligt för långa ledningar om man kompenserar med en konstant.

??
En konstant som kompenserar oberoende av längd ??
Låter ju helt skumt. Var börjar kompensationsgränsen 20 Meter ??
Vid 21 meter kompenastion med samma som vid 300 meter.

Citat:
Tekniken är sk. pulsbreddsmodulation. Man räknar antal höga under en given tidsperiod.
Inget speciellt , vanlig frekvensräknare duger. MEN
vilka felkällor
Tidenheten tidräknare inte är tillräckligt exakt ger felberäkningar av frekvens.
Kapacitanspåverkan från kabel, då kompensation inte tar hänsyn till kabellängd.

Men okay, noggranhet inom 1-3 grader klarar den nog beroende på hur man applicerar
mätsensorn i microprocessor-app eller pc-miljö.

Vilket fall som helst så kan man inte ha flera sensorer på samma buss, iallafall.

Jag föredrar I2C eller 1-Wire, där mätsensorn utför hela mätningen och endast rapporterar mätvärdet
i form av ett digitalt värde via, I2C eller 1-wire. Detta via CRC för säkerhetsställa mätvärden


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-18 11:56:59 - Sven Åke Persson

<b>Men okay, noggranhet inom 1-3 grader klarar den nog beroende på hur man applicerar
mätsensorn i microprocessor-app eller pc-miljö.

Vilket fall som helst så kan man inte ha flera sensorer på samma buss</b>

1-3 grader blir det aldrig tal om. 0,.. högst
Jag kan ha 12 sensorer kopplade om jag vill på parallellporten.

Kolla fil där jag har ett exempel på 4 sensorer på GamePorten
Programarkivet:4 st SMT160-30 tempgivare på GamePorten

Programarkivet:Temperatur med SMT 160-30


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-18 15:41:07 - Tege Svensson

*LOL*
Gameporten,, finns det sådan på dagens datorer ?
Dessutom kan man inte hämta hem angiven länk i programarkivet
http://www.driverlinx.com/DownLoad/DlPortIO.htm
Den websidan är nerlagd..

Definiering av buss alt port.

4 givare på samma buss ??
Såå bonden i ditt tidigare exempel med 1 km 2-trådsbuss kan ansluta 4 SMT
på den 2-trådsbussen ? om han ansluter till en Gameport..
Blir väl lite svårt, eller hanterar du blandade frekvenser på samma busslina ? Näe


Jag sätter punkt här för DS18S20,.


Svara

Sv: DS18S20 Tempgivare

Postades av 2011-12-19 07:00:53 - Sven Åke Persson

Och jag för SMT160-30 Can´t win them all.

Projektet är helt perfekt för gamla övergivna PC och LapTop.


Svara

Sv:DS18S20 Tempgivare

Postades av 2011-12-26 14:07:13 - Tege Svensson

Tänk vad ett kommatecken gör skillnad enligt ovan.

Projektet är helt perfekt för gamla, övergivna PC och LapTop.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
5 609
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies