English  Deutsch
Biosolar Forum  =>  Mérésadatgyűjtés  =>  Arduinolapozz: « előző   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21   következő »
Mielőtt kérdezel olvasd el a témához tartozó KIEMELT CIKKEKET!
szocsmarciVálasz erre
2014-10-19
21:31:20
Előzmény: forrest #47548#47552
A puffer összhőmérsékletét egy többszínű LED-del gondoltam kijelezni. Ha meleg, akkor nem kell fát rakni a tűzre!
A lényeg az, hogy a megrendelő okosabb mint én, ezért olyan szabályzót akar, ami egyszerű. Lenne rajta két tekerő gomb (potmeter) egy a görbe eltolásra és egy a motoros szelep várakozási/működési idejére, a LED, és egy LCD 16x2 (de azt inkább csak magamnak, hogy ne kelljen a laptopot állandóan rádugni). A menüvel még nem foglalkoztam, pedig jó lenne az is. Igazából még az Arduino típusa sem végleges, pedig jövő héten már jön a lehűlés.

A pt100 jó, de sok lenne a kábel, másrészről nem tudom megforrasztani a multiplexeket (3db, egyenként 12-15 lábbal)). A Dallas kényelmes, habár ahogy mondtam, nehezen hiszem, hogy 2$-ért lehet kapni egy jó hőmérőt, one-wire chipet, és egy 12bites ADC-t egyben. Remélem bírja 10-15 évig - mindenesetre úgy csinálom meg a fűtési vezetéket, hogy meg lehessen kerülni a motoros szelepet és hagyományosan is üzemelhessen csak a kazánköri szivattyúval.

A pt100 mérésemről itt olvashatsz: http://biosolar.hu/forum/show/47366#47366 .
Volt egy pár levél váltásom az electricrcaircraftguy -jal, aki a szoftveres ADC libraryt készítette. Örült, amikor írtam neki a hozzászólásban. Azt írta, hogy másoknak nem nagyon jött össze ez az oversampling-es dolog - nyilván más eszközzel. Nekem szépen kiadta a grafikon a lépcsős görbét.

A hibajelzés talán LCD-vel történne, szerintem elég ha mondjuk 10 másodpercenként felvillan egyszer a kijelző. A buzzer idegesítő, ethernet shieldbe egyenlőre nem gondolkodtam, az egy külön nagy falat.

A t0 a külső hőmérséklet érzékelő. Jó lenne egy szobahőmérő is (ami nem pontosan szobatermosztátot jelent), de most az sem lesz.

Nem gondoltam az elején, hogy ilyen nagy fába vágom a fejszémet.
szocsmarciVálasz erre
2014-10-19
21:04:28
Előzmény: grano #47537#47551
Úgy gondoltam, hogy a sorrend lesz egyben a fontossági sorrend is (visszafelé természetesen). Az első feltételt felülírhatja a második, és így tovább.
Amit kiemeltél az tényleg hibás, de van még benne, péládul ez:

- Ha t0 < 32C, akkor álljon le a 2-es szivattyú
Ha kinn melegszik, akkor álljon le a radiátoros szivattyú

- Ha (t5 VAGY!!! t2 ) > 34C, akkor 2-es szivattyú induljon
Ha van a rendszerben melegvíz (pufferben, VAGY a kazánban), akkor induljon a radiátoros szivattyú

A sorrend kritikus, el is romolhat a vezérlés ilyen logikai bakik miatt, ezért még alszok rá 3 hetet, mire megjön az anyag Kínából :) .

A 2-3 fokos különbség szerintem elég. Most már körülbelül tisztázódott, hogy mégiscsak Dallas DS18B20 hőmérők lesznek, a pt100-hoz nincs annyi analóg bemenet, és multiplexelni nem tudom, ha nincs hozzávaló NYÁK - túl sok a forrasztás!
Szóval a Dallas +/- 0,5C pontosságú, ez benne van a szórásban. De ettől függetlenül igazad lehet, mert kis rendszerről van szó, gyorsan változhat a hőmérséklet.
2014-10-19
20:42:45
Előzmény: szocsmarci #47524#47548
szocsmarci,

Látom számolsz egy össz "puffer hőmérséklete"-t, ez mihez kell? Csak a könnyebb viszonyítás miatt?
Kipróbáltad már a hőmérsékletmérést a pt100-akkal? Érdekelne, ezek mennyire ugrálnak két mérés között (persze ez függ a pontosságtól is, de ha jól emlékszem Te is csak 1° (vagy 0.1°?) pontosságra törekszel).

Hibajelzések: ez egy buzzer lesz, vagy ethershielden keresztül?

A t0 (radiátor elméleti) az szobatermosztát?
2014-10-19
13:36:42
Előzmény: szocsmarci #47524#47537
szocsmarci:
szerintem
"- Ha t2 < 48C, akkor álljon le az 1-es szivattyú
Kazánköri szivattyú leállítása, ha hideg a víz a kazánban"
és a
"- Ha t2 > (t4 + 3C) akkor 1-es szivattyú induljon
Kazánköri szivattyú indítása, ha a kazán melegszik (van hőtermelés)"
ütheti egymást.
Hogyan privilegizálsz köztük?

Elegendő a 2-3 fokos különbség?


szocsmarciVálasz erre
2014-10-18
16:45:40
#47524
Lassan készül a szabályzó.
Kapcsolási vázlat: www.docs.google.com/drawings/d/1Q4pJtmpOhvNLedIJqtqatl1rGu3_UKx_CicEKy1Ugq8/pub?w=954&h=726

Ez lenne a vezérlő elmélete hozzá (motoros csap nélkül)

Hőmérsékletek

I. Szivattyú indítások

- Ha t2 > 50C, akkor induljon az 1-es szivattyú
Kazánköri szivattyú indítása, ha meleg a víz a kazánban

- Ha t2 < 48C, akkor álljon le az 1-es szivattyú
Kazánköri szivattyú leállítása, ha hideg a víz a kazánban

- Ha t2 > (95C) akkor 1-es szivattyú induljon
Kazánköri szivattyú biztonsági indítása, ha a kazán túlhevült. TODO - hiszterézis ebben az esetben nincs!

- Ha t2 < (t4 + 2C) akkor 1-es szivattyú álljon le
Kazánköri szivattyú leállítása, ha a kazán már kialudt, és esetleg a puffer alján keresztül áramlik a víz a kazán irányába

- Ha t2 > (t4 + 3C) akkor 1-es szivattyú induljon
Kazánköri szivattyú indítása, ha a kazán melegszik (van hőtermelés)


- Ha t0 > 34C, akkor induljon a 2-es szivattyú
Ha kinn hideg van, akkor induljon a radiátoros szivattyú

- Ha t0 < 32C, akkor álljon le a 2-es szivattyú
Ha kinn melegszik, akkor álljon le a radiátoros szivattyú


- Ha (t5 ÉS!!! t2 ) < 32C, akkor 2-es szivattyú álljon le
Ha nincs a rendszerben melegvíz (pufferben, ÉS a kazánban), akkor álljon le a radiátoros szivattyú

- Ha (t5 VAGY!!! t2 ) > 34C, akkor 2-es szivattyú induljon
Ha van a rendszerben melegvíz (pufferben, VAGY a kazánban), akkor induljon a radiátoros szivattyú


II. Jelzések

Ha t9 < 1C akkor hibajelzés: fagyveszély a nyitott tágulási tartályban!

Ha t9 > 95C akkor hibajelzés: kazán forrás!

Ha t0 < (t3 - 5C), akkor fűtés elmaradás! TODO nem fix érték, hanem %-ban kifejezett eltérés a hiba!



III. Hőmérséklet értékek

t5 * 40% + t6 * 35% + t7 * 25% = puffer hőmérséklete (arányok a puffer hőmérők eloszlása alapján)





2014-10-07
08:35:34
Előzmény: szocsmarci #47455#47459
Igen, az vezérlés érdemi része a legegyszerűbb benne, alátenni a dolgokat meg a többi 99% :)

Füstgáz termosztát+kazánköri nálam szándékosan nincs benne, amikor ezt csináltam kevés tapasztalatom volt/nem bíztam arduinoban, DS-ekben (se HW, se SW szinten) ezért biztonság kedvéért azok nálam teljesen külön vannak. Viszont azóta betettem a millis()-re a 49 napos korrekciót (egy korábbi HSZ-ben), de sajnos még nem jutott el a 49 napig, hogy élesben is lássam OK-e. Ráadásul UPS akksit cseréltem, ezért pár napja előlröl kezdődött a 49 nap :(

Füstgáz termosztának tuti nem lenne jó a DS, viszont az nálam van már (csak 300° de elég eddig), ergo a meglévő kapcsolhatna egy digit bemeneten is.

watchdog sebesség: Igen én is erre jutottam (igaz gyakorlati kipróbálás nélkül) mikor pár hete az arduino altatásáról olvasgattam, pedig nagyon jó lenne fogyasztás miatt (3.5W), és a millis() overflow ellen is. Most ha netán lassú lenne a sok hőmérőzés a oneWiren-n akkor egyszerűen feljebb veszem az 1s-et (de nincs vele gáz 7 hőmérővel sem, lényeg, hogy ne parazitában menjenek 2 vezetékkel, hanem rendes adatbuszosan 3-al).

Valószínűleg jobb/hosszú távon stabilabb lenne PT-kkel analógban a dolog, kiváncsi vagyok majd a tapasztalataidra. Nekem az analóg áramkörök a 90-es évek közepén voltak szakközépben, a fogalmak nagyjából megvannak még, de számolgatni/tervezni már nem tudnék, ezért fogtam a DS-eket próbaképpen, aztán úgy maradtam velük. Ha 1-2 éven belül macerásak lesznek, romladoznak akkor lehet átalakítom ha 3-4 évet elmennek még akkor meg elég az a 10db ami itthon van tartalékban.


Talán jan-feb körül ráérek foglalkozni egy v2-vel: veszek egy Megát, meg nagyobb LCD-t, lehet beleteszem a füstgáz és kazánköri vezérlést + megpróbálom megírni a külső hőmérséklettfüggő előremenő vezérlést (ehhez van egy honeywell motoros keverőm elfekvőben, majd lecserélem a termosat, de az lehet fűtési idényen kívül lesz csak :)
Mostani meg jó lesz backup hardvernek.


szocsmarciVálasz erre
2014-10-06
16:26:39
Előzmény: forrest #47305#47455
Közben nézegetem a kódodat, ahogy az időm engedi.
Az LCD kijelző és a gombok kezelése sok energiát felemészthetett, maga a vezérlő logika 4 if-then feltételből áll (az is igazábol csak kettő, mert else-vel van összefogva).

Ami hiányzik belőle az a füstgáz termosztát, illetve egy olyan feltétel, ami tiltja a kazánköri szivattyú működését, ha a puffer melegebb, mint a kazán.
http://biosolar.hu/forum/show/24851#24851 - 1-es pont.

A TODO-k a végén fontosak, és jó meglátások.
Én aggódos vagyok, ezért a 3-ast és a 4/2-est venném a második helyre összefogva. Watchdoggal figyelni a hőmérséklet beolvasásokat, és ha nem kap választ az Arduino, akkor jelezzen (vagy reseteljen, vagy mindent berendezést indítson vagy amit ilyenkor tenni kell). Lehet hogy praktikusak a Dallas hőmérők, de mégiscsak egy olcsó kis IC-k kis helyre bezsúfolva bennük minnden.

Azon is elmélkedem, hogy a saját vezérlőmben nem az általad használt millis() - DebounceTime időzítéseket használjam, hanem a Watchdogot. Ez elegánsabb megoldás lenne, de bonyolultabb és bizonyos korlátozásokkal is járna (nem tudnám olyan nagy felbontással megadni az időzítést, vagy ha túl kicsire veszemm a legkisebb időintervallumot, akkor azt kockáztatom, hogy nem végez az előzővel).

A bátyám fűtéséhez az anyagot megvettem, megjött az ESBE motoros szelep is, ezért a kocka el van vetve - meg kell építeni a szabályzót.
szocsmarciVálasz erre
2014-10-06
13:55:54
#47454
Ehhez a rajzhoz mit szóltok?
2 analóg inputtal lehet mérni akár 8 pt100-at, vezeték kompenzációval.
2 mérés kell minden pt100 hőmérőhöz, és úgy kapjuk meg Pt100 értékét, hogy
kivojuk az ADC1-et az ADC2-ből.
Szerintem Takyka is valami hasonlót javasolt azon a rajzon, ami nem látszott jól (Asc Art).
Még annyi, hogy így beleméri a CD4051 multiplexerek ellenállását is, ami a gépkönyv szerint nem elhanyagolható (60 vagy 80 Ohm).



szocsmarciVálasz erre
2014-10-06
13:50:09
Előzmény: grano #47432#47453
".. és van egy ethernetes ardionom uszkve 2000 pézből."
Én azért ebben nem vagyok biztos, mert egy arduino nem csak Atmel chipből meg egy kvarcból áll. Ha összszámolod a vezetékeket, csatlakozást, feszültség generátort, alaplapot, akkor lehet hogy vehetsz egy Uno-t is. Én ha a minimumra törekednék vennék egy pro Minit 750 Ft-ért.

Amúgy gondolkodtam a netes szabályzón, így megspórolnám a kijelzőt, meg a kezelőszerveket. De így is sok apró problémába ütközök, nem akarom túlbonyolítani.
2014-10-04
08:35:11
Előzmény: szocsmarci #47430#47432
szocsmarci:
www.arduino.cc/en/Main/ArduinoBoardUno
TWI: A4 or SDA pin and A5 or SCL pin. Support TWI communication using the Wire library.
Minden TWI (as I2C) oda kerül.

Én most spec picit másban gondolkodtam, de ez csak olyan játék a szavakkal:
1 db ATMEGA328 a TAVIR-on 1300 forint, hozzá egy db 28NCJ60 ethernet shield ebayról 700 péz, kell egy 16MHz kvarc és van egy ethernetes ardionom uszkve 2000 pézből.
Három-négy darab ilyen táppal együtt egy tizes. Régi routert kapsz ezerért, ha csak switch üzmben használod simán müxik. RJ485-öt gyártani még otthon sem mutatvány, és ha nem webservert akarsz üzemeltetni, tán a memória is elegendő lesz minden cucchoz.


A OneWire dallasokhoz nyáron jött meg a csomagnyi RJ11 dugó meg aljzat (dugóból duplán kaptam (2X100) mert késett másfél hónapot és az eladó rámkérdezett és szó nélkül újra küldte)

szocsmarciVálasz erre
2014-10-04
07:10:35
Előzmény: forrest #47424#47430
Én egy ilyet néztem, hogy ne kelljen sokat forrasztani, és kevesebb vezeték legyen.


Ez egy I2C meghajtó!
Az SDA és SCL kimenetet az Unon sajnos pont az analog tűre teszi.
2014-10-03
07:25:44
Előzmény: szocsmarci #47423#47424
szocsmarci,

A I2C nem csak 4 pin (GND,Vcc,TX,RX)? Ide szerintem nem kell analóg.

A hagyományos LCD megoldáshoz (liquidcrystal lib, pl: www.arduino.cc/en/Tutorial/LiquidCrystal) sem kell analóg,
kivéve, ha vannak a shielden gombok is amiket olvasnál (ez egy db analóg, igaz az én shieldem többet is elfoglal még, de azt átvezeti simán egy másik tüskesorra)

szocsmarciVálasz erre
2014-10-03
07:00:01
Előzmény: takyka #47393#47423
Köszi a rajzot, de tényleg jobb lenne egy olyan, ami jobban látszik.
Valószínű maradok a kétvezetékes megoldásnál, és ofszetelek - de azért érdekel a négyvezetékes is. Már néztem a neten, hogy a négyvezetékesnél két mérést alkalmaz egy PT-hez, az egyik mérés a pt100+vezeték ellenállás, a másik csak a vezeték ellenállás(pár), és a kettőt kivonom egymásból, ahogy Te is írtad.

Egy másik gond is előjött, mégpedig az, hogy kevés az analog bement.
A Pt100 mérésekhez kell (de minimum 4) bemenetet, 2 potmétert is akartam rákötni, meg egy LCD kijelzőt I2C-vel. Az UNO-n csak 6 van összesen.
A pt100-at nem akarom jobban bonyolítani egy multiplexerrel, a potméterek megoldhatóak egy inputtal, de az I2c gondolom megint nem.
2014-09-30
08:56:53
Előzmény: szocsmarci #47391#47393
Róbert, hogyan kell ascii artot berakni? elfelejtettem...

Nem kell ahhoz wheatstone híd, hogy megszabadulj a vezeték ellenállástól.

Csinálj négyvezetékes mérést. Megpróbálom lerajzolni:

<pre>
* 1,25V
|
-
| |
| | 100Ohm
-
| Tápvezeték
|------------------------------------------------
|
--- |
| A0 |
A |---------------------------------------------------+
R | /\ |
D | | -
U | | | |/ PT100
I | mérővezeték (csavart érpár) /| |
N | | -
O | A1/vagy GND \/ |
|---------------------------------------------------+
| |
| |
--- |
tápvezeték |
-------------------------------------------------
|
| GND
---
</pre>

Így kiküszöbölöd a feszültségesést a tápvezetéken.
Sajna az arduinón nincs szétszedve az analóg gnd a digitálistól, ezért, hogy elkerüljük a földhurkot, lehet, hogy differenciál mérést kell csinálni (lásd A0-A1). Próbáld ki ígyis és úgyis, hogy a visszatérő mérővezetéket leföldeled a procnál.
Az, hogy pt100 helyett pt98-102 nem olyan nagy gond, csinálj egy-egy mérést jeges és forrásban lévő vízben, majd lázmérővel ~37 fokos vízben és a mért értékek alapján lehet könnyedén kompenzálni. Meglátod, hogy a mérés csak offsetes, vagy a jelleggörbe meredeksége is más.

T.
szocsmarciVálasz erre
2014-09-29
22:25:20
Előzmény: takyka #47384#47391
Csináltam egy kis áramkört LM317-tel, ami 1,25V-ot állít elő.
A Wheatstone hídat hagyom egyenlőre, az Arduino külső referenciafeszültségét használom (erre kötöm az 1,25V-ot). Ha nem pont annyi a feszültség, akkor is pontos lesz a mérés, a lényeg hogy ne ugráljon mérés közben.

www.techques.com/question/4-33487/Low-power-design---switch-out-voltage-divider-using-transistor
Itt egy érdekes megállapítást tesz egy hozzászóló, biztos Ő is nagy guru (Olin Lathrop). Azt mondja, hogy felesleges külön hídat építeni, mert a kontroller referencia mérésével és egy sima feszültség osztóval lényegében egy Wheatstone hidat alkotunk, mivel a referencia feszültségnél is van egy arányos feszültségosztó. Egy másik ellenállás párral csak rontunk a mérésen.
Nekem persze jól jönne, ha ki tudnám ejteni a vezeték ellenállását, de majd szoftveresen megoldom. Az az érzésem, hogy az olcsó Ebay-es pt100-nak önmagában is van egy hibája (valójában ~pt98-pt102), ami nagyobb eltérést okoz mint a vezeték.

Nem teljesen értem, miért kell hőfok kompenzált cucc az áramgenerátor + Wheatstone hídhoz. Egy doboz belsejében valószínűleg nem nagyon változik a hőmérséklet. Persze biztos befolyásolja a mérést, de tényleg nagyon kis mértékben.
Abban igazad van, hogy meg kell húzni a határt, milyen pontos mérést akarok. Igazából csak a külső hőmérsékletet akarom pontosra (+/- 0,5), a többi lehet akár +/- 2°C is. Biztos vagyok benne, hogy a távfűtők által használt szabályzók sem hajszál pontosak, pedig ott akár több száz lakás is lehet rákötve egy szabályzóra, amiben 2db pt100 biztosítja a hőmérséklet mérését.
2014-09-26
10:00:25
Előzmény: szocsmarci #47381#47384
Szia,

Alapvetően működőképes az elképzelés kivéve azt, hogy LM317-et ebben a kapcsolásban nem tudod feszültségreferenciának használni.

Én nem bonyolítanám ennyire a dolgot. Ha nem több 100m az érzékelési távolság és nem század fok pontossággal akarsz mérni, akkor én javasolnám, hogy fogj egy 1V körüli fesz. referenciát (ha van otthon, akár az lm317 is jó ref lábát a gnd-re kötve (1,27V)), arról tápláld meg a mérőosztót és az arduino referencia bemenetét. Az érzékelőt sodrott vezetéken keresztül csatlakoztatva nem hiszem, hogy nagy szórást fognak mutatni a mért értékek. Egy próbát megér. Az előnye, hogy a referencia fesz. instabilitása nem befolyásolja a mért értéket.

Ha külön áramgenerátoros megtáplálást és fesz. referenciát használsz, mindkettőnek hőfokkompenzáltnak kell lennie!
A wheatstone hidat én elfelejteném, nem sok értelme van ebben az alkalmazásban.

Ha áramgenerátoros megtáplálásban gondolkozol, akkor ezt nézd meg:
www.ti.com/lit/ds/symlink/lm134.pdf
A 8. oldalon látható kapcsolásban.
Referencia feszültségnek pedig használhatod az ad1582-1585 család valamely tagját.
www.analog.com/static/imported-files/data_sheets/AD1582_1583_1584_1585.pdf
Természetesen ezeken kívül bármely, hőfokkompenzált cucc is megteszi.

T.
szocsmarciVálasz erre
2014-09-25
23:10:30
Előzmény: takyka #47375#47381
Köszi a tanácsot. A PT1000-es azért van kilőve, mert nem található az Ebayen elfogadható áron. A Pt100-ast már nem sokkal adják drágábban, mint az NTC 1k 1%-ot. A távfűtőnél rengeteg Pt100 (régebben Pt500) van használatban, alig van velük gond. Leggyakrabban kilyukad a hüvelye, esetleg elkoszolódik a mérőgomba feje. Egy használt belsőt kaptam ajándékba, de azt mondták az gyári hibás, nem Pt100-as, hanem Pt70-es.

Közben rájöttem, hogy az ezt megelőző hozzászólásodban jól érezted, hogy végig rajta volt a feszültség, ezért mérhettem 10-15°C-kal magasabb értéket. Problémásnak látom a vezetékek ellenállását is, ezért kicsit elgondolkodtam.
Mellékelem az elvet pdf-ben, ami szerint szeretnék haladni.

Jó az alapgondolat?
Előállítom a szabályzott áramerősséget, és azt használom fel a Wheatstone hídba kötött Pt100 méréséhez. A mérést Arduinoval végzem, külön a két pontot (B-Gnd + D-Gnd), majd egymásból kivonom kettőt. Ebből már tudni fogom az ismeretlen ellenállást, amit már nem befolyásol a vezetékek ellenállása.

Kérdés: Az LM317-tel előállított szabályzott áramerősség egyben szabályzott 1,25V feszültség is lesz? Ez kell a végső számításhoz, és ez számomra nem teljesen egyértemű.
A Wheatstone bridge ismert ellenállásait milyenre nagyságúra válasszam (ohm)?



2014-09-24
20:32:36
Előzmény: szocsmarci #47372#47375
Személy szerint én nem szeretem az ntc-s mérést a nemlineáris viselkedése, de méginkább a különböző k értékű verziók és nagy gyártási szórása miatt. (Természetesen, meg lehet jóra csinálni!) A pt100 v.1000 sokkal korrektebb cucc. Ugyanúgy a különböző hőelemek. A mivel sokszoros túlmintavételezést csinálsz, ezért a jelre rakódó zaj kiátlagolódik, nem akkora probléma, mint egyszeres mintavételnél.
Ha a saját fűtést akarod elkerülni, de a pontosságra is szükség van, akkor két út kínálkozik. Az egyik a PT1000 használata állandó tápról (ami ugyanaz mint a referencia fesz). A referencia fesz stabilitása nem kritikus.
Ha kapcsolgatni akarsz, akkor áramgenerátoros megtáplálást kell alkalmaznod. Ebben az esetben a jó minőségű referencia létkérdés!
T.
szocsmarciVálasz erre
2014-09-24
18:43:58
Előzmény: takyka #47369#47372
A megtáplálás az Arduinon keresztül történt, ráadásul az is a számítógép USB-jébe volt dugva. Már rendeltem egy AC/DC átalakítót, dual voltosat 12/5V. Az 5V-ot gondoltam a relék kapcsolgatásába besegítőnek, a 12V-ot az arduinó tápjának. Utána gondoltam meg, hogy felesleges volt a 12V, elment volna simán 5V-tal is.
A lényeg, hogy lesz külön táp, remélem stabil kimenet lesz. Mit szóltok hozzá a külső alapján? www.ebay.com/itm/261347209187?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649
A megbízhatóságára 16.000 órát ír - ez nem kevés kicsit ?

A mérés sima feszültségosztós alapú, semmi extra, a PT100 kétvezetékes.
Az 1-2V nem túl kicsi? Félek bezavarhat valami a hosszú vezetéken keresztül. Az Arduinonak van egy 3,3V-os kimenete, őszintén megmondom, erre gondoltam első körben mint referencia feszültség.
A pt100-on még gondolkodok, olcsóbb és kisebb hőterhelésű az NTC 10kOhm. A Siemens is használ ilyet a szabályzóihoz, de valószínű más minőségben, mint az Ebay-es cuccok.

2014-09-24
08:39:30
Előzmény: szocsmarci #47366#47369
Szia,

Az arduinóval kapcsolgatod az osztó feszültségét a mérés idejére, vagy állandóan rá van kapcsolva az 5V?
Ha pontosan akarsz analóg jelet mérni az arduinóval (vagy bármilyen AD-vel), akkor érdemes külső referencia feszültséget használnod, és ugyanarról a feszültségről járatni az érzékelőt is. Érdemes 1-2V körülire választani a feszültséget, ezzel csökken a PT100 hőterhelése is (az abszolút értéke ebben a tartományban lényegtelen).
A másik dolog, nem tudom, hogy a kód amit használsz, az fesz. osztóhoz van írva, vagy áramgenerátoros PT100 megtápláláshoz.

T.
szocsmarciVálasz erre
2014-09-23
21:37:46
#47366
Próbálgatom a hőmérséklet mérést. A Pt100 szimpatikus, tudom, hogy sok helyen használják több éve (évtizede!)
Hátránya, hogy az Arduino 10 bites ADC-je nem ad elég pontos felbontást.

Megoldás: electricrcaircraftguy.blogspot.hu/2014/05/using-arduino-unos-built-in-16-bit-adc.html#.VCHEfBbWfLx

Úgy tűnik hogy a 14 bites szimulált ADC megfelelő lesz nekem, elég sima görbét ad (vastag bordós görbe)

Egy baja van: a szobahőmérséklet 25°C körüli, a mért 38,5°C - próbáltam kalibrálni a multiméteremmel ahogy tudtam. Az elején kicsit rámelegítettem öngyújtóval, azért van a felugrás.
100 ohmos sorba kötött ellenállást használtam feszültségosztóval, minden másodpercben egy kiolvasási sor volt (10-15 bitig), ami összes 4095 normál kiolvasásnak felet meg. A feszültség 5V, R=200 Ohm -> P = 0,125W az idő 14%-ban.




Ui.: Vettem két LM35-öt az Ebayen. Úgy tűnik kukába megy mindkettő, ugrál össze-vissza, és elég magas értékeket ad. Pedig nem bonyolult a bekötése - multiméterrel bemérve nem ugrál annyira, de szintén rossz értékeket ad.
szocsmarciVálasz erre
2014-09-22
18:17:49
Előzmény: grano #47006#47356
Találtam egy jó leírást az energiatakarékos működésről.
www.gammon.com.au/forum/?id=11497

Alapscript:
void setup () {}
void loop () {}
Fogyasztása 50mA

Sokféle megoldást taglal a takarékos működésre. Ami neked jó lehet az a Watchdog timer.
Waking from sleep with a timer - ez az alcím.
Lehetőség van altatni a processzort, és maximum 8 másodpercenként beizzítani, elvégezni a szükséges méréseket, majd újra alvó üzembe kell helyezni a procit.
A fogyasztására így 6,2 microampert ír, ami 0,0325W (5V-tal számolva).
Kb 8000-szer kevesebb, mintha normál módban üzemelne.
Ehhez hozzájön a mérőszközök teljesítménye, meg a pontos 5V előállítása valamilyen tápról. És azt sem szabad elfelejteni, hogy az elemek önmagukban is lemerülhetnek pár hónap alatt.

2014-09-13
22:12:30
Előzmény: szocsmarci #47289#47305
szocsmarci,

millis() overflow (ill. reset): teljesen jogos észrevétel, egy napja azon töröm a fejem, miért nem jött elő. Persze sokat csesztettem áramkört is, néha kódot is, meg egy darabig szünetmentes nélkül volt a dolog. Lehet, hogy egyszer sem ment 49 napig? Ez az egyetlen ötletem :) Viszont akkor nem volt igazam stabilitásügyben: ettől nem döglött volna meg, de tutira nem kapcsolt volna semmit...

így oldanám meg:

if (lastTEMPREADDebounceTime - millis() > TEMPREADdebounceDelay){ //ha a millis átfordult reseteljük a többi számlálót is, különben soha többé nem teljesül az adott feltétel. erre legjobb a tempread figyelése, mert az mindig változik.
lastTEMPREADDebounceTime = 0;
lastLCDDebounceTime = 0;
lastDOWNDebounceTime = 0;
lastUPDebounceTime = 0;
lastLEFTDebounceTime = 0;
lastRIGHTDebounceTime = 0;
lastSELECTDebounceTime = 0;
lastLCDDebounceTime = 0;
}

Ezt rögtöm a loop elejére (vagy külön funkcióba, és akkor a 86-95 sorok helyett is csak meghívni). Nem teszteltem még, de holnap feltöltöm. Meg most ahogy ezeket a debounceokat kigyűjtöttem egyre jobban zavar, hogy ennyit tartok nyilván (gomboknál főleg). Majd elgondolkodom a megkerülésén.

byte->int: igen, problémát ez nem okoz, de ha mondjuk menüben negatív értéket vagy 255-nél nagyobb különbséget állítanék nem tudom, hogy alsó vagy felső byteját mentené le (vagy runtime error :)). igazából mindegy is, mindenképp rosszat olvasna legközelebbi restartkor. Itt a menübe kéne valami ellenőrzött input, hogy pufihőfoknak mondjuk 30-110 fokot állíthasson csak be, a változó meg sima byte.

hosszúság: igen, az érdemi logika kb 10 sor a többi meg sallang. De kellenek, pl hőfokkülönbségekkel elején sokat játszottam. Macera lett volna állandóan kódban átírni. Mondjuk ha szépen funkciókba lenne téve ahogy illik akkor olvashatóbb, meg rövidebb.

Ezek közül nem szimpi valamelyik: www.playground.arduino.cc/Main/DevelopmentTools ? Ahogy nézem legtöbbje visualstudios.
Nekem egyedül a folding hiányzik (igaz nálam színezi a kódot (Linuxos IDE v1.0.5), nem tudom tied miért nem)

Köszi az észrevételeket!
szocsmarciVálasz erre
2014-09-12
23:33:46
Előzmény: forrest #47277#47289
Csak néhány észrevétel a programhoz:

238. sor: lastTEMPREADDebounceTime = millis();
Erre hivatkozik több kritikus időzítésnél is - nem csak az LCD elsötétedésnél
A millis értéke 50 naponként nullázódik, ez problémát jelenthet.
~86-95 sor: értékeket kapnak különböző változók, amiket felülír a program a setup() résben. Írod is: "-> ezt csak egy default, felülírja az eepromból olvasott"
Ugyanezen változók integerként vannak deklarálva, de byteként kiolvasva az Eepromból

Amúgy jó lehet, ha működött élesben is. Kicsit hosszúra sikeredett, de azért követhető.
Grafikus IDE jó lenne - csak megadni a paramétereket egy kirakó szerű oldalon és adná a szöveget.
2014-09-10
20:43:24
Előzmény: szocsmarci #47274#47277
Párásodás, átvezetés: simán el tudom képzelni, hogy problémát okoz. Nekem nem a TO tokos van, hanem gyárilag már kis fémcsőben, zsugorcsöves. Igaz kínai :)) ki tudja mennyire bírja, de lehet évek múlva derül csak ki (láttam olyan képet, ahol egy pohár vízben volt egy ilyen, ki van öntve valami ragasztóval talán?). Ahol meg én toldottam/kötögettem őket szintén zsugoroztam (UTP kábel amúgy, igaz csak 5-6 m távolság).

Programot megkommenteztem kicsit jobban :)) feltettem ide:
79.172.211.91/~perceshu/futes/futes_forrest.zip
Ha kérdésed van nyugodtan, van benne egykét furcsaság amiket nagyobb tapasztalattal lehet elegánsabban meg tudtam volna oldani. Gombok kezelésénél volt néha fura a működése korábbi verziókban.

A menü nálam menubackend.h (www.playground.arduino.cc/Code/Menu). Igaz nem néztem alaposan utána, talán amiatt választottam, mert ez kicsi, egyszerűnek tűnt

Relék tápja: JD+Vcc összezárva, Vcc+GND is a boardról megy (nem használom az opto-t, egyik szivattyú se kever be (egyik egy Yonos Pico, másik meg valami alap TIP)). Lehet optoval biztosabb lenne, de amíg nincs belőle gondom addig egyelőre nem kötöm át.


Itt nem játszik, de egyszer belefutottam egy melómnál ahol PC kommunikált arduino+ethershield-el LAN-on: otthon minden teszt hetekig ok, majd élesben a helyszínen 1 hét után ledöglik. Otthon hiba nem jön elő, élesben megint ledöglik (arduino látszólag ment, de a programomnak nem válaszolt). Pár hét szívás után kiderült, hogy a cégnél az egyik szerverük (a domain controller) a hálózaton broadcastolt olyan csomagokat, amiket megkapott az arduino is, az ethershieldje valamiért gyűjtötte őket, de nem tudott mit kezdeni velük és kellő mennyiség után beledöglött...

Angol szöveg nem gáz.

Biosolar Forum  =>  Mérésadatgyűjtés  =>  Arduinolapozz: « előző   1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21   következő »
Copyright © 2005-2017 Bernáth Róbert
Minden jog fenntartva