Stránka 1 z 2

Teploměry DALLAS DS18B20

Napsal: 11 led 2010, 11:32
od datel12
K měření teploty používám teplotní čidla DALLAS DS18B20 připojené k uP v režimu parazitním napájením. Jako vodič používám 2x0,15mm měď. Měření se provádí v režimu 12 bitů. Pull up odpor je doporučený z datasheetu 4k7. Pokud použiji vodič délky 5m pro 5 čidel je vše v pořádku. Při delším vodiči a více čidlech dochází k výpadkům měření.

Má někdo s takovým připojením praktickou zkušenost? Jak dlouhý vodič a kolik čidel lze takto provozovat?

Napsal: 11 led 2010, 12:33
od ST78
Doporučuji následující postup:
1) Sehnat si měřič kapacit
2) Změřit si kapacitu vedení při větší vzdálenosti
3) Všimnout si, že odpor u čidel je 4K7
4) Použít vzorec pro výpočet časové konstanty T=R*C
5) Podívat se do datasheetu, jak rychlé jsou bity a časy při přenosu u DS18B20
6) Uvědomit si, že základní fyzikální (v tomto případě elektrotechnické) zákony nemůžu porušovat ani já :-)
7) Zvolit jiný postup přenosu dat nebo měření teploty :?

Napsal: 11 led 2010, 13:02
od datel12
Nic ve zlém ale jde mi spíše o praktické poznatky než o akademickou debatu nad časovými konstantami a fyzikálními zákony. Pokud se najde někdo, kdo tyto čidla používá a napíše mi, jak je napájí a na jakou vzálenost a s kolika čidly, budu rád.

Napsal: 11 led 2010, 13:09
od EKKAR
Nemel pantem a trochu začni přemýšlet - ST78 Ti tady přesně radí, na co se máš zaměřit. To vedení má nějakou vlastní indukčnost, nějaký ohmický odpor a k tomu ještě vzájemnou kapacitu, takže vzniká určitý druh rezonančního obvodu - který od určité velikosti těch parazitních parametrů zkresluje a od jistých (vyšších) hodnot dokonce úplně znemožňuje přenos těch pulsních sekvencí, kterými Dallasy s počítačem komunikují. Když nebudeš myslet a sám se snažit a jen budeš buzíkovat ať tady někdo pověsí konkrétní hodnoty, nikdo se s Tebou bavit nebude.

Napsal: 11 led 2010, 13:21
od ST78
Také nic ve zlém, ale musím přiznat, že jsem chvíli přemýšlel, jestli mám na to vůbec reagovat. No, když už jsem začal...
Bohužel, problém je v tom, že jsi vůbec nepochopil, o co tady jde. To není akademická debata. Pouze jsem ti vysvětlil, odpověď , kterou jsi sám napsal. Těch 5 metrů, na které ti to funguje, je tak odhadem maximum při daném kabelu. Pokud se nad tím zamyslíš, pochopíš, že nikdo na světě při stejné kabeláži nedokáže nic lepšího. Ve vzorečku, který jsem ti napsal můžeš jenom:
a) Zmenšit R - podívej se do datasheetu, co ti DS18B20 povolí,
b) Zmenšit C - použitím jiných kabelů s menší vlastní kapacitou.
Tím tu vzdálenost částečně natáhneš. V každém případě platí, že DS18B20 není určený pro přenos signálu na dlouhé vzdálenosti!

P.S. A rada na závěr, před tím než něco napíšeš, zkus se zamyslet nad tím, na co reaguješ. :(

Napsal: 11 led 2010, 13:34
od datel12
Nechtěl jsem se nikoho dotknout a pokud se tak stalo, tak se omlouvám. Ale ještě před tím, než začnu měřit kapacity a odpory vedení (moje možnosti měření jsou poněkud omezené) a počítat (elektrotechnické vzdělání též bohužel nemám) jsem chtěl vědět, jestli mi někdo třeba neřekne, že 5 metrů jde ale 40 už je moc. Takto jsem koncipoval i svoji původní otázku.

Napsal: 11 led 2010, 14:01
od ST78
Jestliže toho o elektronice moc nevíš, pak bych doporučil tahat DS18B20 max. v rozsahu místnosti (tj. jednotky metrů). Při slušné kabeláži to půjde, pokud v okolí nebude zdroj silného rušení.
Na desítky metrů bych si s ohledem na spolehlivost netroufal signál z DS18B20 tahat. Nejsi-li moc zkušený a musíš měřit teplotu na velké vzdálenosti, pak si najdi jiný způsob měření.
Vždy by se mělo vycházet ze zadání s dostatečnou rezervou parametrů :)

P.S. A neodpustím si drobné dloubnutí: Alespoň základní znalosti elektrotechniky jsou při programování mcu téměř nezbytné. Jinak je to trápení sama sebe i okolí. Tak se toho neboj a statečně do toho... :D

Teploměry DALLAS DS18B20

Napsal: 11 led 2010, 14:49
od strg
Ahoj, máš dve možnosti 1. medzi čítaním jednotlivých teplomerov musí chvíľu počkať 1-2 sec. 2. použiješ zapojenie z obrázka.

Napsal: 11 led 2010, 15:00
od datel12
Teď to mám zapojené bez toho spínacího tranzistoru a měřím tak, že dám čidlům povel k měření, pak čekám 1 sekundu a pak čtu hodnoty. Zřejmě se ale při větší vzdálenosti a větším počtu čidel nestačí jednotlivá čidla během měření přes rezistor napájet.
Takže mám dvě možnosti:
1. napájet čidla během měření přes spínací tranzistor
2. zapojit to celé 3 drátově

Napsal: 11 led 2010, 15:04
od strg
Daj 3 dráty a je po probléme.

Napsal: 11 led 2010, 15:17
od Atlan
aj ked to zapojis 3 dratovo doporucijem pouzit RC filter pripadne viac tu
http://www.maxim-ic.com/app-notes/index.mvp/id/148

A este niekde inde bolo popisane len uz neviem najst.

Napsal: 12 led 2010, 09:27
od datel12
Tak jsem to podle rad proměřil a při délce vedení 40m vychází odpor 4,3 ohmu a kapacita 2,13 nF takže zpoždění vychází, pokud dobře počítám 9,1 ns.

Pak jsem připojil 5 čidel na konec toho 40 metrového drátu a měření probíhá bez problémů.

Napsal: 12 led 2010, 11:09
od mety
Mal som podobny problem na 3m dlhom kably.
Znížil som hodnotu toho odporu a už to ide :)
Zrejme kôli ubytku napätia to nepracovalo správne.

Napsal: 12 led 2010, 11:23
od Atlan
ja som na to principe riesill komunikaciu medzi Mcu a nakonie c to vriesila montaz filtra na vedenie rc clanok na obohc koncoch a pullup na oboch stranach tusim 2k2,,,je pravda ze to moje komunikuje polmalsie.

Napsal: 12 led 2010, 11:34
od Andrea
datel12 píše:Tak jsem to podle rad proměřil a při délce vedení 40m vychází odpor 4,3 ohmu a kapacita 2,13 nF takže zpoždění vychází, pokud dobře počítám 9,1 ns.
To je hezký výpočet, ale za odpor je potřeba dosadit hodnotu toho pull-up odporu + odpor vedení, nikoliv jen odpor vedení. Rázem budeš o řád jinde.