Fórum témák
» Több friss téma |
Szeva!
Szeretném én is megépíteni. Tudnál ebben segíteni? Fel tudnád rakni a kapcsolási rajzot, illetve a Pic-ben lévő progit? Lehet benne olyan módosítást csinálni, hogy a mérési tartomány 0-100 °C között legyen? Köszi a segítséget.
Az eredeti leírást, kapcsolási rajzot, programot itt megtalálod.
"Range of -55 to 125°C is possible if ONLY the sensor is in that area not the whole device!"
Szeretnék épiteni egy olyan hőmérőt amin a kapcsolási érték változtatható gomb nyomásra tizedenként.
Sziasztok!
Összedobtam egy hőmérőt DS 1621-el. Működik is, megjelenik a mért érték a kijelzőn. Csak annyi a bibi, hogy kb. 1,5-2 fokot téved pluszban. (pl. 27.5 fok esetén mutat 29.5-öt). Fél fok eltérésen még nem lepődtem volna meg de azért ez már elég releváns különbség. A program csak annyi, hogy az MSB és LSB értékeket kiolvasom majd pedig digitekre bontás után kiíratom a LED kijelzőre. Tapasztaltatok hasonlóan nagy pontatlanságot DS 1621 esetében? Mit lehet ez ellen tenni? Esetleg megállapítok egy korrekciós tényezőt és avval még tovább számolom a helyes értéket? Ez esetben meg lehet, hogy nem lineáris jellegű a hiba és így megint csak csalni fog. Továbbá az IC adatlapjában a 4. oldalon írva van valami a pontosság növeléséről. "Higher resolutions may be obtained by reading the temperature and truncating the 0.5C bit." Tehát nagyobb felbontás érthető el az LSB bit csonkolásával és így tovább. Ez a bekezdés számomra nem teljesen világos (mármint maga a tartalom) aki tudja miről van szó kérem segítsen egy kicsit. Köszi szépen!
Elfelejtettem, hogy az IC természetesen minden hőforrástól távol, próbapanelen üzemel.
Szia!
A 27,5 °C referencia hőmérsékletet honnan tudod, hogy pont annyi? Egyébként ha folyamatos konverzióra van állítva az IC, akkor a teljesítményfelvétele is magasabb, mint az ún. one-shot módban, emiatt a lapka hőmérséklete is megemelkedik ami pontatlansághoz vezet a mérésben. Ha nem használod a termosztát funkciót, akkor érdemesebb one-shot módban használni az eszközt.
Hello!
Onnan tudom, hogy két másik hőmérőt is melléraktam amit én hitelesnek tartok, (egy Oregon Scientific barométer és egy Computherm teromsztát). A lapkahőmérséklettel kapcsolatban igazad lehet, én is pontosan erre a következtetésre jutottam. Ezért ki is próbáltam, hogy a kiolvasást timer-rel időzítem, kb 10 sec.-re úgy, hogy túlcsordulás interrupt-ban növelek egy segédváltozót és ha az elér egy adott, 10sec.-nek megfelelő értéket akkor jöhet a kiolvasás. Csak ez zsákutca egyelőre mert akkor a LED kijelző vibrálni kezdett. Ugyanez volt ha magát a kiolvasást raktam a megszakításba. Ezek szerint a megszakításrutin végrehajtása majd az onnan való visszatérés némileg időigényesebb folyamat. Viszont egy LCD kijelzővel ez már nem lehet probléma, ott ugye nem kell a procinak folyton frissíteni, megoldja az LCD modul.
Szia!
Szerintem előfordulhat hogy a szenzor nem pontos, én DS1821-es szenzorokat használtam, 3 darabom volt, egyik sem volt pontos. Két tizedpontosan ugyanannyit mérő lázmérőhöz képest volt több mint 1.5 fok eltérés is. Én azt csináltam hogy hozzáadtam a mért értékhez a tapasztalt eltérést(előjelesen). De nálam a hiba nemlinearitása nem volt szempont, ezt nem is vizsgáltam, mert csak egy nagyon kis intervallumban kellett pontosnak lennie. Viszont időben nem változott a hiba mértéke egy hónap alatt sem szerencsére, nálam az nagyobb probléma lett volna.
Félreérted amit írok! Nem az a lényeg, hogy milyen gyakorisággal olvasod ki a konvertált hőmérsékletet, hanem az, hogy ne folyamatosan konvertáljon. A kettő nem egyenértékű! A konfigurációs regiszterben a 1SHOT bitet "1"-be kell állítani, majd ki kell adni a Start Convert T parancsot. Legalább 750 ms várakozás után a konvertált adat kiolvasható. A konverzió vége után az eszköz alacsony fogyasztású módba kerül. Bővebben lásd az adatlap leírását!
Értelek, one shot mód volt beállítva az első perctől kezdve a konfigurációs regiszterben, csak folyamatosan kapta a kiolvasás parancsot tehát kvázi olyan volt mintha folytonosra állítottam volna.
De minek olvasod ki folyamatosan, ha egyszer 750 ms-nál rövidebb idő alatt nem születik új konverziós eredmény?
Nekem legalább fél fokos pontosságra lenne szükségem mert szobatermosztátban szeretném használni az eszközt. Kipróbálom majd a 10sec.-es kiolvasási intervallummal is, ha akkor is téveszt akkor az LM35 ADC-re kötve milyen választás lenne?
Azért mert a főprogramot nem lehet megszakítani a LED kijelző frissítése miatt és mint mondtam timer interrupt-ban is próbáltam kiolvasni de akkor is jelentkezett a probléma.
Az adatlap 4. oldalán, a Higher resolutions... részben leírt módon a hőmérsékletet fél fokosnál nagyobb felbontásban azaz kisebb lépésközönként tudod mérni, ha kiolvasod a szenzorból a count_per_c és a count_remain értékeket is, és a megadott képlettel számolod a hőmérsékletet. De ezzel a mérés pontosságát nem tudod befolyásolni szerintem.
Sziasztok!
Most építettem egy hőmérséklet loggert. Egy TCN75 méri a hőmérsékletet és azt lekérdezi egy PIC I2C buszon, majd beírja a belső EEPROM-jába, amit én ICD2-vel kiolvasok és EXCEL-ben ábrázolok. KÉP video Amint látható a képen alacsony hőmérsékleten nagyon ugrál. Ki is ábrándultam a TCN75-ből... Kétféle szenzort akarok a közeljövőben beszerezni: egy pontosat (tizedfok elég, és ne legyen túl drága, mindegy, hogy analóg vagy digitális) egy kevésbé pontos (egy fok pontos), de hosszabb drótra lehessen kötni. Mit javasoltok? Köszi
Digitalist en nem szoktam alkalmaznim mert altalaban en mindig nagyobb tavolsagrol merek. Probaltam a TCN75-ot de az I2C busz nem alkalmazhato nagyobb tavolsagra (max 50 cm). Analogbol a TC1047A es a MC9700A jol hasznalhato, es el lehet akar 100 meterrre is vinni a jelet arnyekolt kabelen. En altalaban 2.56 V referenciat hasznalok (TL431), igy a felbontas 1/4 fok az 1024 felbontasu AD-n. Fontos dolog az erzekelonel egy 100 nf SMD kondi a tapon, es egy 470 ohm soros ellenallas sorosan a jelben. Kulonben gerjedni szokott. A PIC oldalon a bemeneten szinten egy soros ellenallas (1k) es az AD bemeneten a GND-hez egy 100 nF kondi. Ezzel az elrendezessel zajos kornyezetben is stabil merest tudok csinalni. Annyit meg lehet esetleg csinalni, hogy 4, 8 vagy 16 merest atlagolunk.
Hali!
Van valakinek véleménye az MCP9800-ról? Mármint hogy mennyire megbízható.
Biztos megbizhato, egyeduli problema a tavolsag. I2C vonalt nem lehet messzire vinni. max 0,5 m. Lasd az elozo hsz-t.
No ezt nem gondoltam volna. Köszi a választ!
Augusztus óta hozájutottam egy MCP9800-hoz.
Viszont ez az I2C kommunikáció még új nekem. A csatolt képen az ACK bitet akkor kell küldeni a PIC-től a Slave-nek, ha kiolvastuk a fogadott adatot?
Nezza szet a konyvespolcon. Talalsz magyar nyelvu I2C leirast. Amugy mint mar irtam is I2C csak rovid tavon mukodokepes. SPI-s TC77 pl. jobb valasztas lenne, vagy analog MCP9700A (TC1047A). A SPI vonalat lehet lassitani SW lekerdezessel.
Igen, olvastam hogy nem olyan jó az I2C, de egyelőre proteusban tesztelgetem, de nagoyn elakadtam.
Olvasgatom a linken lévő jegyzetet, köszi! Szerk.: magát a kommunikációt értem, de a részletekben elvesztem.
Nem ertem hogy mit nem ertesz. A PIC HW I2C hasznalatanal ugye SW-ben a homerseklet kiolvasas kb igy nez ki.
Ezzel a szekvenciaval kapod meg a datah, es datal valtozokban a mert homersekletet. Nem tudom milyen nyelven programozol, de a kiolvasas minden felekeppen igy kell hogy tortenjen.A tobbi kezeles hasonlo.
Mindent értek, viszont én assembly-ben csinálom. Most úgy tűnik sínen vagyok, a 2. start helyett restartot írtam, valószínűleg az volt az egyik hiba.
A vegen a datal olvasasakor NACK kell kiadni. Ezzel jelzed az atvitel befejezeset.
Ez világos. De most valamiért nem akar megérkezni az adat az eszköztől. Legalábbis fogadáskor az SSPSTAT BF bite nem áll be "1"-be (18F2550).
Szerk.: valószínűleg valami figyelmetlenségen alapuló hiba lesz itt a probléma..
Nem akarom elkiabálni, de úgytűnik sikerült. Természetesen magam jöttem rá, még a gyári kód se volt jó (!)
Elvileg kettes komplemensbe írja a hőmérsékletet, de gondolom azt csak akkor, ha a hőmérséklet negatív. Be kéne rakni a hűtőbe próbapenalestül együtt...
10 perc alatt nem lesz semmi baja. Teszteltem már néhányszor...
|
Bejelentkezés
Hirdetés |