Fórum témák
» Több friss téma |
Sziasztok, segítséget kérek.
DS18B20-as hőmérőt szeretnék illeszteni PIC18F4550-es procihoz, 48Mhz. A reset nem működik, úgy tűnik, a hőmérő nem válaszol. Kiadok egy 484 us 0 jelet, felengedem és várom, hogy visszajelezzen a hőmérő. De az nem mozdul meg. Természetesen felhúztam az adatvonalat egy 4.7 kOhmmal az Vcc-re. A mellékelt képen látható módon kötöttem be. Mellékelek egy jel-mintavételt (Clipboard01.jpg). Ezen az látszik, hogy a channel 0: 1-0-1 átmenete 484 us. Tehát a proci lenyomta és fölengedte, de utána nem történik semmi. (a channel 1 az egy led lába). Két 18B20-t is kipróbáltam. Mit ronthatok el? Adok egy képet a panelről (DSC_0020).
Szia!
Mikor várod a választ a lábat BEMENETNEK állítod ?!
Szia, igen, de ettől függetlenül a csipnek le kéne húznia a vonalat, nem?
Vagy akkor mi történik, ha a procin output marad és magason tartja és a csip meg lehúzná?
Szerinted
![]() ![]()
Ha véletlenül kimenetnek hagytad, akkor a DS akár el is költözhetett az örök vadászmezőkre!
ez a reset kódja, az eredeti input_func helyére beírtam a tutit.
A függvényeid nem tudom mit csinálnak pontosan, de az output(high) UTÁN van a TRISB 3. bit bemenetre állítása
![]()
Értelmezésem szerint a szekvencia eleje a következő:
adatláb = 0, vár 484 us adatláb =1 vár adatláb input adatláb olvas stb Ha előbb trisb.b3 bement állítás előbb van, akkor nem lehet magasra emelni Ezt én is így gondolom és 3 minta progi is így csinálja.
IGAZAD van, kipróbáltam, megszólalt.
Dehát pont ezért néztem meg több progit a netről, és mind a 3 így csinálta.
Ha bekapcsolt kimenetnél '1'-et adsz rá, azt a DALLAS nem tudja '0'-ra húzni ! Ilyenkor nem kell '1'-et kiadnod, arra való a felhúzóellenállás, igazából a kimenetet '0'-ra kell állítanod és csak a TRIS-t kell állítgatnod, hogy le akarod húzni '0'-ra vagy sem !!
Sziasztok! Sikeres kísérletek történtek DS18B20-szal, DE...
Először egy PIC16F887-tel hajtottam meg, Mikroc könyvtárral, sikeresen, adta a jó hőmérsékletet. Átálltam PIC18F4550-re, MPLAB C-re, megszólal, de rossz adatot ad föl. Logikai analizátorral megnéztem, mindkét esetben CCh+44h parancs megy le, majd 750 ms várakozás után CCh+BEh parancsra 887 procinál jön a 84h+01h adat, 4550 esetben 7Bh+01h adat jön. Ebből nekem az következik, hogy beindul a mérés. Mi lehet a baj? ugyanúgy az alapértelmezett 18B20 beállításokat használom.
Sziasztok!
Nincs valakinek jó ötlete, hogy szoftveresen hogyan lehetne lekezelni azt, ha egy buszon lévő DS18b20-as power-on-reset miatt, vagy bármi egyéb miatt nem kapja meg a szükséges utasításokat és 85 dec-el tér vissza? Honnan lehetne azt megtudni, hogy ez nem valós hőmérséklet, hanem a gyári reset érték? Sajnos egy egyszerű if nem elég, mert mi van akkor, ha tényleg annyi a hőmérséklet?!
Kérdésem van DS18B20 szenzorral kapcsolatban.
Készítettem egy kis panelt, amely többek között DS128B20-szal mér hőmérsékletet. Miért van az a sejtésem, hogy ha a csipet közvetlenül illesztem a nyákra, akkor 1-2 fokkal többet mér, mint amikor egy 10 méteres kábelen lóg és a szenzort visszateszem a nyák ugyanarra a pontjára. Hiszen digitális jelek rohangálnak a dróton, a bitek nem sérülnek.
Valami melegíti a NYÁK-on. A sugárzó hő hatására is többet mér, valamint a túl sűrű lekérdezéstől is. A YNÁK-on hagyd magára kb. tíz percig, hogy biztosan ne az esetleges kézmeleg NYÁK tréfáljon meg.
Pontosítok. Ha 10 méteres drótra kötöm a szenzort és visszateszem a nyákra ugyanoda, akkor is azt gondolom, hogy kevesebbet mér 1-2 fokkal. Sajnos ráforrasztottam a drótra a szenzort, nem tudom könnyedén mozgatni.
Nagyfrekvenciás zavar esetleg amit a hozzú vezeték már lenyel (mint egy zavarszűrő kondenzátor)? A szenzor viszonylag bonyolult felépítésű, lehetséges, hogy nem az adatátvitelt, hanem a mérést zavarja valami.
Sziasztok,
8 db ds18b20 szenzort használok egy raspberry-n, usb-s 1-wire csatolóval. Az egész 1-wire hálózat hossza kb 60m (cat5). Szépen működnek is a szenzorok, eddig egyszer volt olyan, hogy a legtávolabbi adott 85C-t. A gond, hogy amikor ki akarom iratni egy kis weblapra a mért értékeket, akkor 7-10mp kell hozzá. Úgy csinálom, hogy minden szenzornak megvan a könyvtára, abban egy temperature nevű file, aminek a tartalmát php-val kiolvasom. Tehát a 8 file olvasása 7-10mp-ig tart. Ha az rpi-n figyelem a szenzorokat, akkor el-eltűnik 1-2, majd újra látszik. Gyanítom ez okozhatja a lassú olvasást is. Van esetleg ötlete valakinek, hogy mivel lehetne stabilizálni illetve gyorsítani a kiolvasást? Előre is köszönöm a segítséget.
Én más környzetet használok (pic és lcd) de ott is közel 1s a frissités. Olvass egy kicsit utánna, a DS 8MHz-en kb 750ms-onként írja ki az adatot, ha ezt kiszámolod 8 érzékelőre akkor mr megvan a hiba.
Értem, köszönöm.
Akkor már csak az nem tiszta, hogy néha úgy tűnik, mintha eltűnne 1-1 szenzor, vagy az imént mind. Azaz eltűnik a könyvtára. Ettől függetlenül a php viszont hiba nélkül olvassa, értékkel tér vissza. Lehet nem is tűnik el valójában, csak a rendszer nem mutatja? Vagy van olyan állapot, amikor nem látszik? Annyira nem vagyok otthon a működésében, de lehet kommunikáció bizonyos fázisaiban így kell lennie?
Igazat megvalva nekem se teljesen tiszta a dolog csak egy másik topikban sugtak meg néhány dolgot. Illetve látni kéne egy hozzáértönek a kiolvasási programrészt legalább ahoz hogy legyen kiindulás.
Tapasztalat hogy a fele lényegi dolgot leheggya az ember ha nem teszi fel a programot.
Nem valószínű, a 2 hőmérő nem teljesen ugyanabban a formátumban küldi ki az adatokat... Hex-ből visszafejteni nem kis munka, Te meg nagyjából 1000 Ft-ból tudsz venni DS-t
![]()
Köszönöm szépen ebből van itthon kb 10 db-om csak ezért szeretem volna hozzá igazi tani a programot.Köszi még egyszer!
Akkor ajánlj fel cserére, hátha van valakinek cserébe
![]() ![]()
Nem akarom őket eladni vagy elcserélgetni mert van egy iw csöves órám abba kettesével kellenek:d Inkább akkor veszek az e-bay röl.
Arra vigyázz mert én is vettem 10darabot és 45 fokig mér majd kiakad.
Sziasztok!
Van két DS18b20 szenzorom, két teljesen külön eszköz mutatja a mért értéket. A szenzorok a levegőben lebegnek, és 10cm kábellel vannak bekötve a nyákra, hogy ne melegítse őket se 7805, se semmi. Törekedtem arra, hogy a szenzorok egymáshoz képest 1cm-en belül legyenek, és ne érjenek tényleg semmihez. A szenzorokat 3mp-ként szólítom meg, tehát az önmelegítéssel szerintem nem kell foglalkozni. A két mért érték között mindig 0.5-0.6°C különbség volt, teljesen együtt mozgott a két érték. Megcseréltem a két szenzort, és most 0.1-0.2°C-om belül marad a különbség. ![]() Ebből ki, milyen következtetést tud levonni? Köszönöm! |
Bejelentkezés
Hirdetés |