Sida 1 av 1
Problem med ds18b20 och picbasic
Postat: 21 november 2004, 00:18:01
av älan
Jag använder en pic16f870 och picbasic pro men när jag kopplar på en ca 12 meters kabel mellan ds18b20 oc pic:en så vill det inte funka men om jag sätter den direkt på kretskortet utan kabel funkar det jag använder
Wait_Up:
OWIN Comm_Pin, 4, [Busy] ' Read busy-bit
IF Busy = 0 THEN Wait_Up ' Still busy..?, Wait_Up..!
OWOUT Comm_Pin, 1, [$CC, $BE]' OWIN Comm_Pin, 2, [R_Temp.Lowbyte, R_Temp.Highbyte]' Read two bytes / end comms
vad gör jag för fel ska man sätta en kondensator vid givaren
jag har kopplat + till + ,- till - och på signal ledningen har jag ett 4,7 k motstond till +
Postat: 21 november 2004, 15:19:03
av älan
Nu har jag fått det att funka jag var tvungen att skriva DEFINE OSC 8 fast jag använder en 4 MHz kristall hur ska jag få det att funka med den riktiga farten
Postat: 22 november 2004, 22:10:23
av ristomemo
Jag har samma problem.
Med denna kod fungerar det bra både med kort som lång kabel till givaren.
http://www.rentron.com/PICX4.htm
Dock tycker jag den koden är rörig så använde mig av den som finns med i hjälpavsnittet i Picbasic Plus (inklippt nedan). Den fungerar med kort kabel, men inte med lång. Jag förstår inte riktigt, är det någon som kan förklara.
DEVICE 16F877
DECLARE XTAL 4
SYMBOL DQ = PORTA.1 ' Place the DS1820 on bit-1 of PORTA
DIM Temp AS WORD ' Holds the temperature value
DIM C AS BYTE ' Holds the counts remaining value
DIM CPerD AS BYTE ' Holds the Counts per degree C value
CLS ' Clear the LCD before we start
Again:
OWRITE DQ, 1, [$CC, $44] ' Send Calculate Temperature command
REPEAT
DELAYMS 25 ' Wait until conversion is complete
OREAD DQ, 4,
' Keep reading low pulses until
UNTIL C <> 0 ' the DS1820 is finished.
OWRITE DQ, 1, [$CC, $BE] ' Send Read ScratchPad command
OREAD DQ, 2,[Temp.LOWBYTE,Temp.HIGHBYTE, C, C, C, C, C, CPerD]' Calculate the temperature in degrees Centigrade
Temp = (((Temp >> 1) * 100) - 25) + (((CPerD - C) * 100) / CPerD)
PRINT AT 1,1, DEC Temp / 100, ".", DEC2 Temp," ", AT 1,8,"C"
GOTO Again
Postat: 22 november 2004, 22:48:32
av ensten
Postat: 22 november 2004, 23:12:08
av ristomemo
Tackar, men tyvärr gör det ingen skillnad.
Postat: 23 november 2004, 10:55:54
av ensten
Vilken typ av kabel använder du? Dallas rekommenderar twisted pair cat5. Det kan dessutom ha betydelse vilket par som används. Har för mig att det är blå som skall användas, men är inte riktigt säkert. Detta har med antal lindningar på respektive par att göra.
Postat: 23 november 2004, 11:17:36
av danei
Jag har svårt att tro at det är skillnad på paren i en cat-5 kabel.
Postat: 23 november 2004, 12:50:05
av ristomemo
Jag använder mig av en flat modularkabel utan skärmning. Så det är ju inte bästa kabeln. Det fungerar ju med den första programkoden även när kabeln är lång. Så man borde ju kunna modifiera den andra programmkoden så även den fungerar med lång kabel. Har provat att ändra diverse, men får det inte att fungera.
Postat: 23 november 2004, 14:39:41
av ensten
Så här säger PointSix (kolla punkt 6)
http://www.pointsix.ipnet.pl/PointSixCD ... app010.pdf
Dom säljer ju en hel del 1-wire produkter och har stor erfarenhet av den här typen av installationer.
ristomemo >
Även om detta inte löser ditt problem kan det vara intressant info ...
MVH Patrick Bohman MCP i TCP/IP

Postat: 23 november 2004, 21:41:23
av älan
jag provade att löda dit en 8 MHz kristall och använde DEFINE OSC 8 då funkade det perfekt
Postat: 28 november 2004, 01:10:56
av älan
nu provade jag med en annan kabel och då funkar det inte det var en 5 ledad inte tvinnad kabel och den kabel som det fungerar med är en gammal 8 ledars skärmad kabel som inte häller är tvinnad då är min fråga om en sån här kabel
http://www.kjelloco.se/content/template ... 7671&path= räcker eller ska jag köpa en cat 5 skärmad kabel?
Postat: 28 november 2004, 11:51:41
av Adis
Tycker att du ska köra på tvinnad kabel liksom cat5
Postat: 28 november 2004, 12:35:01
av ensten
Rekomenderas ju av tillverkaren av sensorn