Órajel biztos, meg lehet egy resetet is érdemes. Egy valamilyen szintű tápszűrést minél közelebb az ic táb lábakhoz lehetőleg, esetleg egy táp visszajelző led ha kell.
Köszi. Ilyen lyukacsos próbapanelem van. De ha így elkezdek építeni és és minden alkatrésznek egy egység hely minimum kell, plusz alul a sok összeforrasztottá, akkor megint lesz egy akkora panelem a gyári a mega mini- nél nagyobb lesz, ami más nem akaródzik beférni annyira.
Az I2C RAM nem ugyanaz, mint a CPU memória buszra rakott RAM.
Az I2C RAM:
-Lassabb.
-Nem része a CPU által megcímezhető tartománynak. Az adatokat neked kell külön utasításokkal kiírnod a belső RAM-ból, illetve visszaolvasni oda. Ha tehát egy lib elfoglalja a RAM java részét, akkor ez azon nem segít. Hacsak nem írod át az egész libet.
De egyébként lehet egyszerűbb lenne egy megat belefaragni, és minden gondod megoldódna, se külső alkatrész se semmi, egy óra alatt lehet hozzá tervezni egy nyákot.
Illetve még egy dolog, ami eszembe jutott és használom is - hall elemes áram váltó.
Egy baja van - alapból ez áramerősségre működik, nem feszre. Azaz csak akkor tudsz mérni, ha áram folyik. Ha úgy akarsz detektálni, hogy van-e az adott helyen fesz, de áram nem folyik, arra nem jó.
Szerintem a legegyszerűbb egy kis trafó és egyenirányítás után kondi.
Kell rá kisütő ellenállás is,hogy ne maradjon áram alatt sokáig a kondi.
Ennek az időállandóját könnyű kiszámolni és akkor pontos adatot tudsz logolni.
Léteznek horror áron 230V-ra alkalmas optó csatolók is.
Csak igazi trafó kell,mert a kapcsoló tápoknak van lágy indításuk és a benne lévő kondik miatt a kikapcsolás utáni leállás is idő,amit nehezebb kontrollálni.
Nekem is nagyon furcsa, hogy szobatermosztáton mi a túrót keres 230 V!? 48 V (csengő) is sok...
Ellenben nekem egészen más dologhoz kellene egy ötlet arra (ki/be ciklus logolásához), hogy miként lehet 230V váltóáramot 5V toleráns egyenáram bemenetre galvanikus leválasztással lehúzni üzembiztosan és biztonságosan.
Illetve azt a 230V-os feszt én lecsökkenteném 24V-ra több okból is - persze relével együtt - , pl már csak biztonságtechnikai / életvédelmi szempontok miatt is, ráadásul kisebb feszen kisebb lesz a szikraképződés is (már ha ez okozza a problémát, és ez indukálódik netán valamilyen bemenő vezetéken, főleg ha ilyen nagy ellenállással van felhúzva a bemenet ez könnyen meg tud történni).
Nem szerencsés, hogy egy szobatermosztáton ekkora fesz van.
A 30k-t cseréld ki jóval kisebbre mondjuk 4-5k környékére (a 30 k nagyon nagy érték, nagyon nem korrekt!), és +5V tápra húzd fel vele, ne a GND-re, így amikor a relé meghúz akkor a +5V-bemenetet rántsa le 0-ra, és ne fordítva! Erre a bemenő fokozat felépítése miatt van így szükség, sokkal korrektebben dolgozik. Sokan fordítva csináűlják, rengeteg beláthatatlan / zagyva baj tud belőle összejönni. Persze a logikát a szoftverben fordítsd meg.
Illetve pergésmentesítsd a bemenetet szoftveresen és hw-esen is ha lehet (ha eddig nem tetted meg).
A problémás relé a szobatermosztátról kap 230V AC feszt, ezzel behúz, az érinkező A0 Arduino lábra zár +5V DC feszt, az az Arduinótól származik, 30k-val le van húzva GND-ra.
A program így érzékeli a szobatermosztát fűtés jelet.
A relé közvetlenül az Arduino lap mellett van, csak működéskor tapasztalható lefagyás, bár az sem mindig.
El fogom helyezni távolabbra, remélem azzal megszűnik ez a zavar is.
Egy gondolat: vannak ám I2C-re rakható külső ramok, pl a Microchip termékkinálatában, pl 23kxxx sorozat, stb. Még nagyon alkatrész sem kell hozzá, kicsi 8 lábu SO8 tokban. Egyszerű a kezelése is, filléres tétel, ez is szóba jöhet.
Lefagyás: a relék behúzótekercseinél van valamilyen védelem (dióda, rc tag, akármi)? Esetleg galvanikus/opto leválasztás? Hogyan vannak meghajtva az Arduino kimenetéről?
Igen, ilyesmi fatüzeléses elvnél szokták ezt megcsinálni, erre utal az utolsó zárójeles mondatom.
De pontosítani kellene a kérdezőnek a leírást / feladatot, mert így csak találgatunk. Mert én úgy értelmeztem elektromos bojlerről volt szó, de lehet tévedek.
Adott egy 80l-es villanyboiler beépített csőkígyóval, ami a radiátor/vegyeskazán rendszerre csatlakozik.
Mind a kazánköri, mind a pufferrből dolgozó lakásköri szivattyú keringeti a csőkígyóban a tápvizet.
A kazán leállása után csak a pufferből kaphat energiát.
A lakásköri szivattyút a lakástermosztát lekapcsolja az Arduino vezérlésen keresztül, ekkor egy bypass ágra nyit a motoros szelep.
Ekkor lehet igény esetén a boilert +ban fűteni.
A boiler elektromos fűtéskor 65C-ra van állítva, ezt elérve a hőfokkapcsoló lekapcsolja a cekaszt.
A szolgáltató időkapcsolással szolgáltat villanyt, az idő vagy elég, és akkor a hőfok elérheti a 65C-ot, vagy nem.
A pufferről történő fűtésnek úgy kellene működnie, hogy 65C-nál lekapcsolja a lakásszivattyút, és az adott ponton mért 25C-ig csökkenhet a hőfok, akkor indul újra a fűtés.
Vagyis van fűtés ciklus 25C-tól 65C-ig, van fogyasztás 65C >>> 25C.
Az adattárolásra a trend miatt gondoltam, ha van old hőfok és fűtés ciklus, new hőfok és fűtés ciklusból programozható a következő művelet, ami vagy fűtés, vagy fogyasztás.
Még nem néztem javaslatodat, néhány alkatrészt várok, Megával lesz a következő szabályozás uno helyett.
Jelenleg egy Nanoval megy, ami a wdt aktiválás kapcsán új bootloadert kapott, azzal mint Uno fut, a lefagyásra részben jó megoldás lett az SSR relék alkalmazása.
Mint kiderült, maradt még egy zavaró relé, ez a lakástermosztáttal kapcsolatos, kapcsoláskor rendszeresen lefagyasztja a rendszert, távolabbra kell helyeznem.