Fórum témák

» Több friss téma
Fórum » DS18B20 hőmérő-szenzor
 
Témaindító: Korben, idő: Nov 16, 2005
Témakörök:
Lapozás: OK   8 / 39
(#) mate_x válasza Hdnsbr hozzászólására (») Nov 13, 2012 /
 
Szia!

Szerintem a táppal lesz a probléma. Nézd meg, hogy az elektonikába bele van-e építve a feszültség stabilizátor.( Általában egy háromlábú TO220-a tokozású alkatrész). Ha igen, akkor lehet kevés neki a tápod feszültsége, próbáld meg nagyobb feszültséggel. Ha pedig nincs stabilizátor az elektronikában, akkor pedig mindenképp kell csinálnod egyet, hogy rendesen működjön.

Üdv, mate_x
(#) Hdnsbr válasza mate_x hozzászólására (») Nov 13, 2012 /
 
Nincs benne stab. Nem is terveztem bele tenni, mert a kapcsoló üzemű táp - úgy gondoltam - elég stabil neki. Azért se nagyon tornásztam a kérdéssel, mert a katalógus szerint 3,3-5V között kell neki táp, így nem igényli a stabil tápot. Digitális kommunikáció lévén a hálózati zajok sem kellene hogy befolyásolják az adatátvitelt. Ill. ha zavarják, az nemműködésben nyilvánulna meg, nem pedig hamis mérésben. Rosszul gondolom? Mindenesetre megpróbálom stabilizálni, hátha....
(#) Hdnsbr válasza lgyk hozzászólására (») Nov 13, 2012 /
 
"Az IC típusának meghatározásánál fontos lehet, hogy mekkora a tápfeszültség és mely lábakra van bekötve. Van-e kvarc mellette, mekkora frekvenciájú? Hány lába van és milyen tokozású?"

5V. A lábakat este meg tudom nézni. Kvarc nincs. Véleményem szerint Atmel lesz az.
(#) Hdnsbr hozzászólása Nov 14, 2012 /
 
A probléma megoldva! A megoldás rémesen egyszerű volt. Odáig eljutni már nem. Kezdtem a stabil táppal. Eredménytelenül. Ezután kivettem a panelből a szenzort és átforrasztottam egy kábelre. Csodák csodája, jó lett. Kíváncsiságból visszatettem a kábellel együtt az eredeti helyére, ahol újra 5 fokkal többet mutatott mint korábban. Ekkor összefogtam a kalibrált hőmérők érzékelőjével és megismételtem a két mérést. Az ajtó mellett így is 5 fokkal többet mért. Ellenben belül, már egyformán mértek. Feltételezem, hogy kintről a hő infravörös sugárzás formájában érkezik a hűtőbe. A kalibrált műszerek érintkezői fémből készültek, ezek visszaverik a sugarakat, míg a szenzorunk fekete műanyag tokozása magába szívja ezt a hőt. Távol az üvegtől 0,1 fok a különbség a két műszer között.

Megnéztem, a vezérlés valami Atmel cucc. Láb szám, bekötés alapján. Tovább nem érdekel, mert működik.

Még egyszer köszönöm mindenkinek az építő jellegű ötleteket, hozzászólásokat!
(#) s3toraph hozzászólása Nov 29, 2012 /
 
Sziasztok!

Segítene nekem valaki abban, hogy egy DS18B20-at ebben a sorrendben kell-e kiolvasni? (Egy darab ilyen hőmérőt egy MSP430G2553-ra akarok kötni, azt tudom már hogy hogyan kell, a programmal szenvedek. Az MSP-ről fogja kapni a tápot a Vdd-n.)

"Példa a hőmérséklet kiolvasására:
1 . Reset jel küldése
2 . SKIP ROM [CCh]
3 . CONVERT T [44h] hőmérséklet konvertálás megindítása
4. vársz kb 750-800 milliszekundumot és aztán
5. reset jel
6. SKIP ROM [CCh] command, ha csak 1 szenzorod van
7. READ SCRATCHPAD [BEh] command
és már küldi is a 9 byte adatot a ds1820, amiből az első byte-ban a hőmérséklet érték van a másodikban pedig az előjel értéke."

Valamint, IAR-ban ezt hogyan írom be parancsokkal? Én nem találok semmit az 1-wire-ra vonatkozóan C nyelven, pedig gugliztam már jó sokat. Mert ugye azt nem írhatom be simán hogy pl. 55h.
Visszaolvastam már itt, de nem értem ki honnan veszi pl. az ow_reset parancsot, mert ezek csak kódrészletek, nem derül ki. Ezeket meg kell írni nekem, vagy le kell tölteni egy header fájl valahonnan, vagy hogy?

Valamint, hogyan tudom kiolvasni az egyedi azonosítóját a hőmérőnek(read rom, 33h), és arra aztán hogyan tudok hivatkozni, hogy őt szólítsam meg ill. csak ő foglalkozzon a paranccsal(match rom, 55h)? (lenne több hőmérő is, 4 db, egy buszon, csak előbb működjön 1 db-al)

A scratchpad-be automatikusan bekerülnek az adatok, és nekem csak kiolvasni kell (read scrathcpad, BEh)?
A hozzászólás módosítva: Nov 29, 2012
(#) vilmosd válasza s3toraph hozzászólására (») Nov 29, 2012 /
 
Annyi segitseget tudok adni, hogy PIC CCS C header filet tudok adni. Ezt valami modon gondolom at lehet alakitani a Te altalad hasznalt C-re.
(#) kyrk válasza s3toraph hozzászólására (») Nov 29, 2012 /
 
Hello,

En ezt hasznalom PIC-re. A 18F-esen NOP okal lehet idoziteni, en anno amikor kellet szimulatorral mertem a kesleltetest es az alapjan allitottam ben. A dsPIC-en pedig HW timert hasznaltam. Amit portolni kell az nagyjabol a PORT olvasas es az idozites.

Egyszer majd megirom soros portra is. De sajnalom erre elpazarolni a soros portot. Azt konnyebb lehet portolni.

u.i.: Az S-es valtozatot nem tartottam karban, az talan mar nem is fordul.
A hozzászólás módosítva: Nov 29, 2012

ds.zip
    
(#) lgyk válasza s3toraph hozzászólására (») Nov 29, 2012 /
 
Szia,

Sajnos MSP430-ra nincsen natív támogatás a 1-wire kommunikációra, de ennek alapján el tudsz indulni.

Az ow_reset a magas szintű programnyelveken pl. mikroPascal-ban egy előre megírt függvény, amely automatikusan kezeli az egyvezetékes kommunikáció kezeléséhez szükséges időzítéseket.
(#) s3toraph válasza vilmosd hozzászólására (») Dec 1, 2012 /
 
Szia!

Köszi!
Nem igazán értem, főleg az onwire.h-t. Annyit minden esetre látok, hogy a ds18b20.h-ben vannak ilyenek:
onewire_reset();
onewire_write(0xCC);
onewire_write(0x44);
Ezeket a onewire-ket az a PIC CCS definiálja, vagyis mint beépített függvényt tudod használni?

Találtam egy showtemp.c-t, abban van egy ilyen rész is:
Ow_Reset(&PORTC, 2); // Onewire reset signal
Ow_Write(&PORTC, 2, 0xCC); // Issue command SKIP_ROM
Ow_Write(&PORTC, 2, 0x44); // Issue command CONVERT_T
Delay_us(750);
Na nekem valami hasonló kellene, mert ez elvileg megmondja hogy Ow_write(melyik port, melyik bitjén/vezetékén megy a kommunikáció, mi az adat(parancs) amit küldök), és kifelé küldi mivel write. Csak azt nem tudom, ezt a függvényt hogyan írjam meg, mert így tök jól működne, ránézésre. Azt sem tudom milyen fejlesztői környezetben írták, de C nyelv.
A hozzászólás módosítva: Dec 1, 2012

showtemp.c
    
(#) s3toraph válasza kyrk hozzászólására (») Dec 1, 2012 /
 
Szia!

Köszönöm, ebből már jobban ki tudok indulni! Átbogarászom hát ha megvilágosodom.
(#) s3toraph válasza lgyk hozzászólására (») Dec 1, 2012 /
 
Szia!

Értem, pedig nekem meg kellene oldanom valahogy. Most nem akarnék minden egyes hőmérőhöz külön kábeleket kihúzgálni, ha nem muszáj.
A hozzászólás módosítva: Dec 1, 2012
(#) s3toraph válasza s3toraph hozzászólására (») Dec 1, 2012 /
 
Mondjuk már ott gondban vagyok, hogy egyetlen hőmérővel hogyan kommunikálok. Azt tudom mit hova dugok, de hogyan állítom be egy adatvonalra (pl. P1.1) ami a hőmérő adatlábára csatlakozik, hogy ez kétirányú vonal legyen? Mert ugye nem csak figyelek, ill. nem csak küldök rajta, hanem oda-vissza kommunikáció folyna. Aztán meg, ha ez meg van, hogyan írok rá bármit vagy olvasok vissza? Vannak icserny cikkeiben ugye mintaprogramok MSP430G2553-hez is, de ezekből sem jöttem rá hogyan kellene. Itt nem magas vagy alacsony jelszinteket figyelek, nem gombot nyomkodok, hanem ki kellene küldeni egy parancsot, pl. CC, vagy a hőmérő válaszát visszaolvasni. Na de hogyan?
(#) brato hozzászólása Dec 2, 2012 /
 
Üdv!

A felbontást elég egyszer beállítani?
Pl.: egy céláramkörrel beállítok több szenzort, és ezeket más áramkörökbe használom fel.
Megjegyzi a beállítást a szenzor?
(#) kyrk válasza brato hozzászólására (») Dec 2, 2012 /
 
Helló,

Szerintem nem. Tápelvétel után el fogja felejteni a beállításokat szerintem. Adatlapban biztos benne van mely regiszterek mire állnak reset után.
(#) s3toraph válasza s3toraph hozzászólására (») Dec 3, 2012 /
 
Senki? Lehet nektek ez triviális, de én még nem vágom, szóval segítségre van szükségem ahhoz, hogy tudjak kommunikálni a hőmérővel. Legalább annyit mondjatok meg, mit hogy írjak be IAR-ba, hogy kimenjen az MSP430-ról a parancs a rákötött hőmérőre, illetve az onnan érkező adatokat hogyan olvassam ki? Légy szíves segítsetek!
A hozzászólás módosítva: Dec 3, 2012
(#) potyo hozzászólása Dec 3, 2012 /
 
Biztosan volt már róla szó, de fogalmam sincs, hogy keressek rá. Ti hogyan szoktátok ezeket a ds18b20 szenzorokat a mérendő helyre "felszerelni"? Gondolok itt az elektromos megoldásra és a mechanikaira is. Elektromosra mi azt csináljuk, hogy ráforrasztjuk a kábelt a lábakra, szálanként zsugorcsővel szigeteljük, valamint egy vastagabb zsugorcsővel az egészet is egyben. Mechanikailag meg jobb híján vagy rászorítjuk a csőre (plusz körbe valami hőszigetelő, hogy valóban a cső hőmérsékletét mérje), vagy ha olyan, hogy megfúrható, illetve lyuk kialakítható, akkor a lyukba dugjuk bele. A másik, hogy ha több szenzor van egy buszon, akkor a csatlakozásokra van valami bevált megoldás? Vagy vezeték egyik szenzortól a másikig és ennyi?
(#) vilmosd válasza potyo hozzászólására (») Dec 3, 2012 /
 
Nalam 8-10 mm alameneum csoben vannak az erzekelok szilikonnal kiontve. A valaszideje termeszetesen megno, de viszont stabil es idotallo a kikepzes. Regen volt ilyen cso az egofoglalatokhoz, ami kivul menetes volt, tehat a rogzites is konnyen megvalosithato. A csatlakozokabel 2 er + arnyek kabel, lehetoleg valami combosabb, pl mikrofonkabel. A kabelezest meg lehet oldani RJ-45 + UTP (olcso) es meropontonkent egy kis panelka 2 RJ-45 csatival, es valami csatlakozo az erzekelonek. Igy konnyen bovitheto a meropontok szama.
(#) nemgyuri válasza potyo hozzászólására (») Dec 3, 2012 /
 
Helló. Külső-belső hőmérőmet a következő módszerrel készítettem el.
10 m-es (4 eres) UTP kábelt 1,5 m-nél elvágtam és odaforrasztottam 1-1 DS1820-at, zsugorcsöves védelemmel. NYÁK-on egymás mellett van a két aljzat, ott van párhuzamosítva. ( kábelsorrend: test-jel-test-táp ) Ezzel a módszerrel hiba nélkül megy néhány éve. ( a 8,5 m-es ág is!!! )
(#) potyo válasza nemgyuri hozzászólására (») Dec 3, 2012 /
 
A sok méter nem gond, van itt nekem szenzor, ami 35 méteren lóg, csak a felszereléssel nem vagyok megelégedve, hogy a drót végére ráforrasztva és kikötve a teraszkorlátra. Vagy a másik, a hőpumpánál a szigetelés alá bedugva a csövek mellé. Azt hittem, van erre valami jobb megoldás, csak én nem tudok róla, de ezekszerint nemigazán. Illetve találtam ebayen valami cuccokat, de négy szenzor áráért inkább marad a zsugorcsöves megoldás.
(#) kyrk válasza potyo hozzászólására (») Dec 3, 2012 /
 
Egyszer próbáltam rézcsőbe berakni és homokkal teleszórni. A dolog működött de az időállandóját jelentősen rontotta a megoldás.
(#) potyo válasza kyrk hozzászólására (») Dec 3, 2012 /
 
Hát igen. És a hőpumpánál viszont nagyon fontos a reakcióidő, mert ha véletlenül valamiért leáll a hőforrás víz keringése, akkor csak néhány másodperc van, amíg nem fagy szét a hőcserélő. A prototípus utáni hőpumpákban már lett kis zseb illetve lyuk csinálva a szenzorok számára, amikbe épp belemennek a szenzorok, és ki vannak töltve hővezető pasztával. Úgyhogy akkor azthiszem ennyi az, amit tehetünk.
(#) Animus1724 válasza s3toraph hozzászólására (») Dec 6, 2012 /
 
Talán ez segíthet bár nem DS18B20 hanem DS1820, ami jelentősen különbözik, de szerintem a módszerei hasonlóak.
Nem tudom honnan van nem tudom ki írta de hálás vagyok a szerzőnek! Más, nincs a te eljárásodban eggyel több reszet, a kelleténél?
A hozzászólás módosítva: Dec 7, 2012
(#) s3toraph hozzászólása Dec 6, 2012 /
 
Animus1724: Köszi, de ez sajnos nem segít eleget. Ezt már én is megtaláltam, hasznos, de ami nekem kellene - C parancsok - nincsenek benne. Már azon gondolkodom, hogy inkább valahogy másképp csinálnám meg, mondjuk uart, csak az meg marha nehéz lenne.
A hozzászólás módosítva: Dec 6, 2012
(#) kyrk válasza s3toraph hozzászólására (») Dec 6, 2012 /
 
Szerintem a C parancsokat neked kell megírni. Kevés olyan fordító van ahol a 1wire alapból támogatva van. Nem tartozik a C fordító hatáskörébe a 1wire. Az, hogy egyes helyeken belepakolják az plussz szolgáltatás. Emiatt viszont az a kód amit írsz nem lesz portolható.
(#) Kovabe hozzászólása Dec 6, 2012 /
 
Sziasztok, az imént keresgéltem a neten és találtam olyan kapcsolást ahol 2 vezetékkel van bekötve a ds18b20 szenzor pl itt Bővebben: Link, ez lehetséges?
(#) vicsys válasza Kovabe hozzászólására (») Dec 6, 2012 /
 
Lehetséges. Van ennek egy parazita tápfeszes változata. Nézd meg az adatlap vége felé...
(#) s3toraph válasza kyrk hozzászólására (») Dec 11, 2012 /
 
Értem. CCS-ben benne van tudtommal, akkor lehet áttérek rá. Thy!
(#) watt válasza s3toraph hozzászólására (») Dec 21, 2012 /
 
Csak-e miatt botorság, inkább nézd meg hogyan oldják meg ott...
(#) Kovabe hozzászólása Dec 23, 2012 /
 
Itt vagyok. Szoval azért gondoltam hogy külön lábra teszem mert egy multi vezérlésben gondolkozom amit utolag már csak egy kis kezelövel programozok viszont egy user felhsználo nem fog cimet olvasgatni illetve beirni eés ezért gondoltam arra hogy minden lábat külön ds-re kötök vagyis megadom a lehetöséget és azt köt a felhasználo a lábra mai kell neki (kontakt vagy ds). Szoval ez ami szerintem egyszerübb felhasználás szempontjábol.
Másik kérdés: ezek a beolvasások amik a flow alatt is vannak ezekre van valami magyar forditás hogy melyik mire való, angol nyelv hiányában szenvedek erössen de idáig a jó magyarázat segitett. Probáltam már beolvasni ds-t de vagy 0-át vagy 1-et irt ki semmi más reakcio nem volt.
(#) watt válasza Kovabe hozzászólására (») Dec 23, 2012 /
 
Itt volt egy magyar leírás, azt láttad már? Ha nem, keresd meg, egész jó!
A Flow-ban beszédes funkciók vannak, könnyen megérthetők, ha ismered a DS-t. Valamint a oo_tx_byte-al egyenként is ki lehet vinni a parancsokat.
Következő: »»   8 / 39
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem