Problem med ds18b20 och picbasic
Problem med ds18b20 och picbasic
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 +
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 +
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
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
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.
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
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

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?