Fórum témák
» Több friss téma |
Természetesen nincs szükség ilyen gyakori leolvasásra, csak a program volt így sokkal egyszerűbb
Felület csak maga a szenzor, mert csak a levegő hőmérsékletét kell mérni. Kompenzálni nem nagyon akarok, mert az nagy valószínűséggel szenzoronként eltérő lenne. Én meg pont azért választottam ezt a típust, mert nem kell kalibrálni stb. Majd átnézem az adatlapját, hátha van erre való utalás.
Adatlapban nem rémlik, de talán valami application note-ban lehet róla szó.
Felbontást is lejjebb vetted? Ha 100ms időnként olvasod, annak csak úgy van értelme, ha 9 bites felbontáson használod, az pedig 0,5 fok pontosságot jelent.
Van itthon egy olyan hőmérőm, ami kb. három másodpercenként írja ki a szezor hőmérsékletét (közben más szenzorokat is olvas), ebben benne van a kiolvasási idő is, jónak tűnik. A jelenség valós, én is tapapsztaltam.
Nem tudom, kiskorú PIC "programozó" vagyok, Flowcode-dal...
Ha nem állítottad be, akkor 12bites alapértelmezett. Ekkor a csatolt adatlaprészlet szerint a konverzió ideje 750ms kiegészítve a kommunikáció idejével, ami ehhez képest nem sok, de ott van, azaz kb. 751ms alatt kapsz új adatot. Ha sűrűbben olvasod ki, valószínűleg zöldségeket olvasol...
Igen, ezt tudom. Igazábol fura CRC hibával kínlódom (Flowcode topikban már leírtam) 0°C alatti méréskor, a kommunikáció sebességét nem tudom, hogyan lehet átállítani abban.
szerk.: Félreolvastam, sebességre értettem azt, amit írtam. Valóban 12 bites adatot kapok vissza. A hozzászólás módosítva: Dec 19, 2013
Nem lesz zöldség, hanem az előző konverzió eredményét fogja kiolvasni újra és újra, amíg el nem készül az újabb konverzió.
Azt sajnos én sem tudom, hogy flowban hogyan lehet lassítani. Az oscit be kell állítani helyesen a projectben, de ha az gyors lenne, amit akkor számol a fordító, akkor bele kéne nyúlni a gyári rutinokba, ha nincs állítási lehetőség esetleg felajánlva.
Akkor hogyan kapnak hibás adatot? Nem lehet, hogy menet közben töltődik fel a regiszter és ezért változik az adat sűrű kiolvasás közben? Ha nem, akkor nekik hogyan lehetséges a tapasztalt jelenség?
Timerben számogatsz és aszerint az idő szerint olvasod?
Régebben feltettem egy megszakításos megoldást, ahol a PIC nincs leterhelve a konverzió idejére. A flow gyári blokkja 750ms időre megakasztja a folyamatokat, ami enyhén szólva is gáz. A CRC kezelés is hibás volt, azt is javítottam...
Igen tudom de sajna nem találom, pedig mostanság jól jönne. Esetleg tudnádlinkelni?
Most próbálgattam olyat, hogy elindítom a konverziót, majd 3ms után kiolvasom a szenzorból az adatokat (épp itt van az asztalon egy projekt 16F887+DS18B20-al). Úgy tűnik, hogy pontos értéket mutat a konverzió közben is, nem összevissza értékek jönnek vissza. CRC is stimmel. Vagy az előző konverzió eredménye jön, vagy bitenként tölti fel a regisztereket, de én az előbbire tippelnék.
Ha jól értem, nem összevissza értékek jönnek nekik, hanem pl. bekapcsoláskor először 25 fokot mutat, majd ahogy telik az idő, az érték felmegy egészen 26 fokra, és azt gyanítják, hogy ha gyakran olvasgatják a szenzort, akkor az olvasgatás és a konverzió energiafogyasztása fűti fel kb. 1 fokkal. A hozzászólás módosítva: Dec 19, 2013
Úgy látom, kicsit összekeveredtek a dolgok.
Ha mindenféle szünet nélkül a Flowcode-ban folyamatosan, tehát a lehető leggyorsabban, olvasgatom ki a hőmérsékleti adatokat, akkor szemmel láthatóan mindig egy kicsit nő a mért hőmérséklet és beáll kb. +1 °C-os "tévedésre". Amennyiben két kiolvasás között van kb. két másodperc szünet, plusz amit a kiolvasó rutin vár (750 ms), akkor nem tapasztalni olyat, hogy többet mér a kelleténél. Nekem ebből az következett, hogy a folyamatos olvasás miatt maga a DS melegszik egy kicsit. Mindezt szobahőmérsékleten tapasztalni. A CRC hiba egy teljesen más téma (csak megemlítettem), éppen azon vagyok, hogy kisüssem, miért lesz CRC hibás az adat egy bizonyos PIC használata esetén, miközben egy másikkal jó. A téma innen végigkövethető. Eddig nem volt időm foglalkozni vele, holnap ráfekszem...
Értem, köszi az infót, érdekes.
Nehéz elhinni, hogy a kommunikáció közben hő fejlődne az 1mA alap fogyasztáson felül. Igaz ha kicsi a vonal felhúzó ellenállása(a stabilabb kommunikációt elérendő), akkor elképzelhető, főleg, ha nem FET, hanem tranyó van az 1wire kimeneten...
Már én se tudom hol volt, meg kellene keresnem nekem is...
Nem kevertem, csak próbáltam olyan megoldást találni, ami nem a belső melegedésre mutat. A CRC hiba lehet a gyors kommunikációtól, illetve ha a vezeték több zavart szed össze az adott sebességen. Ezen segíthetne, ha lassítanád. Hogy ez hogyan függ össze egy adott PIC-el az jó kérdés, lehet, hogy más a PIC-ek hidegítése az adott áramkörben...
Akkor megkeresem csak azt hittem hogy te tudod mikor is tetted fel. Ha meglelem akkor szolok.
Ezt keresitek? Bővebben: Link
Miben? Mint írtam, PIC programozásban kisiskolás vagyok, keresni, mint masszívfórumozó (nem csak itt), viszont jól tudok.
Üdv. valakinek lenne tippe hogyan tudnám használni az Alarm registert a 18b20-amban? Külföldi oldalakon találtam egy ilyen forrást de ennél több nem volt benne. Még hiányzik belőle a nyomógombos érték beállító programrész és pont ez kellene nekem hogy termosztátként tudjam használni.
DS18B20-at nem lehet termosztátként használni, azt muszáj a kontrollerrel kezelni. DS18B21 kellene neked.
Itt egy konkrét kapcsolás: Bővebben: Link
Értem, akkor marad az if függvényben való érték változtatása. Köszi a tippet mindenesetre.
Csak megemlíteném -mert látom mást is érdekel a thermostat téma - hogy pár hete megépítettem ezt a kapcsolást, és számomra tökéletes megoldást nyújtott a drága gyári készülékhez képest.
Mivel a lakásban a régi termosztátot már a harmadik helyre kellett volna bevezetékeznem, fabrikáltam hozzá egy rádiós adó-vevő egységet is, úgyhogy most oda viszem ahová a legjobbnak látom. Eben is egy DS18B20 az érzékelő, és tized C fok pontossággal mér. A program hiányossága , hogy annak ellenére hogy tudja ezt a felbontást, csak egész fokonként lehet programozni. Ezt viszont a radiátortól való távolsággal lehet balanszírozni. No meg a program "free", és mivel sajnos a programozáshoz kuka vagyok, beérem ennyivel.
Hasonlót építek én is, csak én led helyett lcd-t használok. Nem drágább, de sokkal szabadabban használható.
A próba panelen van egy ds18b20 (temp1) és es lm35. Csak össze akartam hasonlítani az analóg és a digitális lehetőségeket. A digitális győzött Van még rajta egy rtc modul is, így hosszabb áramszünet esetén sem kell bajlódni az idővesztéssel. (A kijelzőn azért mutat többet a ds, mert hozzáértem a vezetékek elhúzása közben ) Az rf rész még nincs rajta, az majd most jön csak!
Sziasztok!
Az lenne a kérdésem, hogy a DS1821+ hőmérséklet szenzort hogyan lehet újra programozni? Beállítottam benne a vicsys - egy chipes termosztát cikkjében szereplő programmal a Th és Tl értékeket majd termosztát módba kapcsoltam. Most szeretném valahogy módosítani a Th és Tl értéket. A program amivel először beállítottam az nem ismeri fel a chipet Üdv.: Petya
Üdv!
Segítséget szeretnék kérni a DS1820 érzékelő beüzemeléséhez. Megépítettem a Bővebben: Link kapcsolást de LCD kijelző helyett 3db 7 szegmensest szeretnék használni. A kijelző része már megy csak azt nem tudom hogyan kell kommunikálni a DS érzékelővel. Nem nagyon tudok még programozni a Flowcode-al próbálkoztam. Csak annyit szeretnék hogy egy db érzékelőről ki tudjam íratni a hőmérsékletet pl (25,7) Előre is köszönök mindenféle segítséget. Üdv.:Attila A hozzászólás módosítva: Jan 6, 2015
|
Bejelentkezés
Hirdetés |