- XGS24 - Megjelenési dátumot kapott a World of Warcraft The War Within
- GTA V
- XGS24 - Befutott az Assassin's Creed Shadows legújabb előzetese
- XGS24 - Befutott a Dragon Age: Veilguard új előzetese
- Xbox Series X|S
- Forza sorozat (Horizon/Motorsport)
- XGS24 - Befutott a METAL GEAR SOLID Δ: SNAKE EATER legújabb előzetese
- XGS24 - Jön a FragPunk, az új 5v5 hero shooter
- EAFC 24
- XGS24 - Ilyen lesz a South of Midnight
-
GAMEPOD.hu
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Dißnäëß
veterán
válasz razorbenke92 #16800 üzenetére
Nem percenként írnék bele, hanem csak kikapcsoláskor és/vagy áramszünetkor. Ez szobai erősítő, ergo egyetlen bekapcsolással elmegy 1-4 órát, mikor milyen kedvem van, szóval az írás gyakorisága nagyon kicsi szerintem. Amíg működik, nem tárolnám le benne mindig az újabb +1 percet.
Amit idéztél, ott hülyeséget írtam. Frissítettem is magam.
Közben megtaláltam a rendes gyártót és adatlapot, még Arduino felhasználási segédletet is, ezzel elleszek most egy ideig.
[ Szerkesztve ]
POKE 16017,44 ..... SYS 2077
-
nagyúr
válasz razorbenke92 #16800 üzenetére
Percenként írva az eeepromot - aminek 100k körül van az írási ciklusa - 1666 órára elég.
Nem úgy van az! Ha pl. 1kbyte eeprom áll rendelkezésre, akkor az kb. 195 év. Wear leveling, már volt róla szó itt a topikban.
Sőt, mivel az egyes bitekre vonatkozik a max írási ciklus, létezik arra is módszer, hogy még az egyes bitek közt is egyenletesebben legyen elosztva az elhasználódás (ugye egy számlálónál a 0. bit íródik a leggyakrabban), amivel a 100k max írási ciklus is növelhető. -
őstag
Wear levelinggel valóban több, de messze nem örörkélet (persze lehet, hogy rosszul számolok):
10.000 órát percalapon tárolva kell 3bájt, és ő akar 3 számlálót párhuzamosan az 9.
A wear-leveling miatt minden ilyen 9 bájtos blokknak kell egy - jól optimált esetben 3bájtos wear-counter.1024 / 12 az cca. 85. Beszorozva ezt az 1666 órával kb. 16 év jön ki. Tiszta üzemórának véve ez már van olyan sok, hogy cserélni kelljen a kapacitorokat is, de reálisan rövid ahhoz, hogy szem előtt legyen tartva.
A kérdés, hogy mi a projekt tervezett élettartama, és hogy 10+ év távlatban mi a fenntarthatóbb: A uC cseréje, esetleg egy külső EEPROM cseréje, vagy a kondenzátoroké.Mások számára a kondi fáradós, nekem farad-os...
-
Dißnäëß
veterán
-
Dißnäëß
veterán
válasz razorbenke92 #16804 üzenetére
42 éves vagyok. Ha öregkoromig nem rohad szét a cucc, akkor addig szolgál, szóval még van 78 éve.
Uh, jó, hogy mondod: elkók. Basszus, tényleg. Ezt is nézni akartam vele.
Így már 5 számláló párhuzamosan. (Kétféle üzemórásom van, adatlapok szerint, ahogy eddig láttam).
POKE 16017,44 ..... SYS 2077
-
nagyúr
válasz razorbenke92 #16804 üzenetére
Távolról sem kell 3byte wear counter, elég egyetlen bit minden adatcsomag mellé.
A számlálókat is lehet 2byte-on ábrázolni, a 3.byte-ból úgyis csak az alsó 3bit lenne használva, összesen 8byte-ra lehet tömöríteni, az már több mint 24 évnyi üzemidő, napi 8 óra használattal is 73 évig elég lesz.De számoljunk akkor csak 5 percenként, úgy elég 17 bit a 10000 órához! 3 számláló helyett pedig 5tel.
5 számláló = 10byte, + az 5 számláló legfelső (17.) bitje + wear leveling bit, és még marad 2 szabad bit tetszőleges felhasználásra, összesen 11byte. Ha jól számolom, 88 év jön így ki.De nem értem amúgy miért nem elég 1 számláló, elvileg mind3 cső együtt öregszik a többivel, nem?
[ Szerkesztve ]
-
biker
nagyúr
válasz Dißnäëß #16808 üzenetére
Akkor is elég egy számláló. Számolod az üzemórákat, amit kikapcskor elmentesz. Hiszen ha be van kapcsolva az erősítő, mind üzemel.
Plusz 10 cső 10 változó, mikor volt csere. Ebből kiszámolod melyik cső mennyi üzemórát ment és mikor volt za utolsó csereElektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
Janos250
őstag
válasz Dißnäëß #16806 üzenetére
Én Gyapo11 által is írt módszert használnám. Faék!
https://prohardver.hu/tema/arduino/hsz_15165-15165.htmlAz amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
gyapo11
őstag
válasz Janos250 #16813 üzenetére
Jaja, itt is jó a teleírás, bár a page write nem tudom hogy szól ebbe bele, de parciális írást is emleget az adatlap. Szukcesszív approximációval nagyon gyorsan meg lehet találni a szabad hely kezdetét.
És 1 M írásciklus. Még azzal is lehet rövidíteni a kiírandót, hogy minden olyan percben, ami nem egész óra csak a percet írnám ki meg ehhez egy jelzőbitet, amiből lehet tudni, hogy az óra változatlan. Aztán a hatvanadiknál megint kiírnám az órát is. Végig kell gondolni, hogy az órák az elején többet foglalnak mint a percek, a végén viszont a percek foglalnak többet.
Vagy 17408 óráig el lehet számolni úgy, hogy egy byte-ot inkrementálni minden percben, 255 perc után a következő byte-ot kezdeni. Áramszünet után megkeresni az eddig használt byte-okat, egy szorzással megvan a percek száma. Használat előtt 00-át kell írni minden byte-ba, minden használt byte-ban van legalább egy 1-es. Ha a 0-zással 256 írás egy kör, akkor 3906 kört bír a chip, ami 68 millió óra, csak valahova föl kell írni a körök számát is.menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet
-
Dißnäëß
veterán
Hubazz Urak, én ezt nem értem, azaz még felfogom.
Én komplikálom túl, vagy Ti ?10 darab csô, ebbôl 2 egyforma (input duál-triódák), 4 egyforma (meghajtó pentódák) és 4 egyforma (végfok triódák). És mivel úgyis párban/quad-ban cserélem az egyformákat, elég 3 változó, a 3 eltérô típusra, mivel nagykönyv szerint egyszerre öregszenek az azonos fajták.
3 fajta csô = 3 számláló.
Meg ha elko-kat is figyelek, akkor +3-4 változó még az azonos típusokra, eltérô üzemidôvel (van sima, long life, meg amúgyis szórnak adatlap szerint).
Maradjunk csak a 3 csônél..A csere idôpontja (pláne fullos naptáras RTC-vel) jó lehetne, csakhogy nem 7/24 mennek, hanem épp amikor olyan kedvem van. Tehát naptárhoz nem köthetô, és mint ilyen, nem mérvadó az, hogy mikor volt utoljára cserélve. Legalábbis az én logikámban.
Tegnap éjjel 1-ig rajzoltam egy egyszerû folyamatábrát, amiben felvázoltam a dolgot a leendô programra.
- Bekapcsoláskor kiolvassa az EEPROM-ból a korábban eltárolt perceket, 3 érték. Ezt már most meg kell tenni, mert ha valamelyik a limiten túl van, amennyiben 1.2x-en belül megy túl, csak figyelmeztet, egyébként meg be sem engedi kapcsolni az eszközt. Szóval hülyebiztosra tervezném (gyerek, accon)..
- még egy kis fesz méricske itt-ott stb..
- ha minden feltétel ok, 3 pin HIGH-ba, relék zárnak, fûtések indulnak, elindul a számláló, és percenként növeli a 3 változó mindegyikét, amik értelemszerûen a bekapcskor kiolvasott értékekrôl indulnak, nem nulláról. Ennyi percet a sima integer elbír
- Áramszünet vagy tudatos kikapcsolás esetén a 3 perc-értéket beírja az EEPROM-ba és ennyivót.
- Ha a bekapcsológombot, ami OFF-(ON) típusú nyomógomb, <= 3mp nyomjuk, fenti folyamat megy le.
- Ha a bekapcsológombot > 3mp-ig nyomva tartjuk (kondival simítom a kontaktzajt, és/vagy debounce-al kódban), akkor indul a kijelzôn a "szerviz mód", ahol ezen egyetlen gomb nyomkodásával nem csak nullázni lehet az egyes számlálókat (egyenként vagy mindet), hanem állítani is a limiteken, 1000-órás lépésekben, 1000h és 20000h között, hogy ha esetleg csôcserekor más márkât tennék be, mert kapar a hifibogár, vagy mittomén, és annak eltérô a service life paramétere, hozzá tudjam lôni a limitet is, amihez mér az elektronika.
- beállítások után visszatér a normál standby állapotba, azaz gomb figyelés és ha megnyomom minimum 1x, ami 3mp alattig tart, indul a bekapcsoló folyamat.
Kb. De még finomítom, már kiagyaltam a folyamatot az egyes csövek kiválasztására és a limitek átállítására is, anélkül, hogy kellene több gombot, rotary encoder-t, bármi egyebet használnom.
Jó lesz ez, majd az EEPROM alacsony szintû olvasás-írást kell még megértenem, gyanítom, nem egy print lesz
Wear-leveling témához: ez tök valid, amiket mondtok, de ezt nekünk kell kezelni tényleg ? Szóval nem annyi, hogy "tárold el: ....." aztán beteszi, ahova jónak látja ?
(Életemben nem dolgoztam még eeprom-al).POKE 16017,44 ..... SYS 2077
-
Dißnäëß
veterán
válasz Dißnäëß #16815 üzenetére
Tehát: bekapcsolásonként lenne 1 eeprom írás. 3 + N darab értékkel, N még képlékeny, úgy 3-6 körül lenne kb, majd összeszámolom.
Ez szerintem nem sok, naponta 2x-3x használom, de néha elutazok, stb.. legyen napi 3 bekapcs (pesszimista becslés az eeprom kopásra) és akkor ez évente hasra gyorsan ~ 1000 bekapcs (ennél valszeg kevesebb lehet), 80 évre az ~80ezer eeprom írás, ha addigra nem ette meg a rozsda.
De majd lelakkozom a lábait vagy nem tudom..
Menni fog, vagy aggódjak ?
Én tuti bírni fogom, ízületes leszek addigra, meg csak 10k-ig hallok, de majd emelem a limiteket a duplájára, addigra a rommà használt csô is kiváló lesz. Látjátok, gondolok mindenre.POKE 16017,44 ..... SYS 2077
-
nagyúr
válasz Dißnäëß #16816 üzenetére
Csak megy a brainstorming az általad kitalált feladatra, alternatív módszerek tekintetében, hátha van jobb/biztonságosabb, ami esetleg nem jutott eszedbe, vagy nem tudtál róla, hogy ilyet lehet. (Magam részéről ezt egy rejtvénynek tekintem, amit meg kell oldani. Szeretem a rejtvényeket )
Alapvetően jó, amit kitaláltál, és működni is fog, de kérdés, mennyire biztonságos a tápelvétel utánra tenni az adatok mentését, illetve mennyire kényelmes hosszú távon az erősítő biztonságos kikapcsolására figyelni. Erre írtam, hogy az igazán hülyebiztos módszer a számláló folyamatos mentése lenne, plusz biker kolléga ötlete alapján kitaláltam egy még hatékonyabb módszert, de csak akkor írom le, ha érdekel.[ Szerkesztve ]
-
biker
nagyúr
válasz Dißnäëß #16815 üzenetére
bekapcsoláskor a timer 0-ról indul, elmegy mondjuk egy zenehallgatás alatt 234567-ig, ezt elmented. Következő bekapcskor ismét nullárol indul, de te hozzáadod a tárolt értéket, így igazából 234567-től 876543-ig fog mondjuk menni, és így tovább, nem kell naptár
Változók:
cső1, cső2, cső3, kondi1, kondi2, kondi_n+1cső1 cserélve 23214-kor utoljára, cső2 cserélve 65487-kor utoljára stb. mikor egy csövet cserélsz, csak azt tárolod el, amikor cserélted, így ahány paramétert figyelsz, annyi érték + 1 az időbélyeg amit tárolni ekll az epromban.
Teljesen felesleges az eltelt időt tárolni, és percenként írni, mikor elmented mikor lett cserélve, az idő meg telik, és kivonással bármikor megvan az eredmény
[ Szerkesztve ]
Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |
-
Dißnäëß
veterán
Nemár, hogy a ph legjobbarc topic-jában tényleg azon gondolkozzon bárki is, hogy leírja, vagy ne, a javaslatait. Hogyafenébene, érdekel
Ami bennem van mindeközben:
1. hűbasszus, túlspirázzuk amit nem kéne
2. na, ezeknek most adtam jó kis feladatot, én dedóban megoldom a logikát, de hogy x ember törpöljön még ezen, inkább nem teszem ki őket ennek ..
3. huh, rommá szofisztikálni lehet még ezt, úgy látom, be is indult az agyalás, érdemes ? Persze lehet. Vagy csak élvezik. Ki tudja
4. Ejjha, néha olyanokat írnak, hogy uhh csak lesek, felét sem értem, lehet jobb lenne az alapoknál maradni, mert több éjszaka kellene ahhoz, hogy felfogjam, amit írtak.. aztán ha később megjöttek az ismereteim, max átprogramozom vagy ilyesmi..Csináltam egy folyamatábrát. Ez életem második ilyenje. MÉG NINCS KÉSZ - fenntartással kezeljétek légyszi. Nem is túl profi. Kommentelni sem kell feltétlen, bár nincs ellenemre, csak így hogy értsétek, miben vagyok. Már most van jópár áthuzalozási ötletem rá, a kijelző még benne sincs (nem is igen lesz), most alapfunkciókra gyúrunk és azt is high-level szinten, ez még nem programkód alap, max egy gyenge váz, csak már annyi minden volt a fejemben, gyorsan kiszórtam a cache-ből "papírra" ...
Nekem ez egy szigorúan tanuló projekt, de ha ügyes leszek vele, sok-sok évig elkísér és szeretni fogom, mint egy kiscicát.
Olvasok még ennek az órának meg eeprom-nak a használatáról, mielőtt Titeket molesztálnálak vele.
Alapvetően jó, amit kitaláltál, és működni is fog, de kérdés, mennyire biztonságos a tápelvétel utánra tenni az adatok mentését,
Lehet én fogalmaztam rosszul eredetileg: központi táp elvétel. Az erősítőt úgy csinálom, hogy a 230V input a fenekén ugye, itt egy kapcsoló is, ez a főkapcsoló. Ha ez 0, akkor SEMMI, fázis és nulla is szaggatva van. Ha 1, akkor is csak a pici nyák trafó kerül áram alá, a másik 4 toroid trafó (2 fűtés, 2 anódfesz) be van kötve ide, de "NO" relével vezérelt a trafók primer oldalán, magyarul nem működnek még. Így tudom azt elérni, mint kamaszkorom gyári erősítője, hogy standby mód, azaz főkapcsoló felkapcsolva, és akkor MCU áram alatt, lehet LED-em, kijelzőm, vagy akár nem is, tökmindegy, értitek ... de ekkor már figyelve van az előlapi egy szem gomb. És ezzel szépen a be-kikapcsot, illetve bizonyos alap funkciókat (és a "kérdésekre" adott válaszokat) le tudom kódolni, ez monostabil, tehát benyomom és visszarugózik, lehet vele "morzézni" persze nem fog kelleni, csak na. Ez ilyen.Tápelvétel = relék OFF-ba, és mivel az MCU trafó nem relén van, hanem a hátsó kapcsoló 1-es állásában mindig áram alatt, ő még él. Magyarul, normál üzem esetén, amikor ON és STANDBY között vagyok, az MCU mindig él, a nap 24 órájában. (Azaz nem, mert a fenekén is kikapcsolom, ha elutazunk, stb).
Viszont gondolnom kell:
- rendes áramszünetre is, amikor fél napot hallgattam a kütyüt, belement 8 óra, és egyszercsak elszáll minden. Persze, nem világvége, ha 8 óra most nem kerül be az üzemidőkbe, de szeretnék precíz "kilométerórát"- Meg arra is, hogy ISTEN MENTS, hogy mikor az áram visszajön, az egész erősítő felébredne, ez kifejezetten káros, ezt kezelnem kell, és vagy csőfoglalat hőmérsékletet figyeltetek vele, vagy egy plussz biten eltárolnám, hogy ha áramszünet volt (saját trafójának fesze beesik 5.5V alá), akkor 1 a bit értéke, amúgy meg 0.. vagy ezek kombója .. még ezt kiagyalom ..
illetve mennyire kényelmes hosszú távon az erősítő biztonságos kikapcsolására figyelni.
Kényelmetlen, de ezek a kényes jószágok ilyenek. Kikapcsolás nem téma, ki is ránthatom a fenekéből a kábelt. Az újra-ráindítás már nagy gond lenne.Eleve a bekapcsolása 15 perc, mármint az eredeti tervező (ez egy DIY-barát erősítő) ajánlása alapján 15 percig be se kapcsoljuk az anódfeszeket, míg fel nem melegedtek kellő mértékben a csövek. Ezt tök egyszerűen elérem MCU + relékkel. Az életet bonyolítja, igen, de ezek az "öreg" design-os, múltszázadi "csotrogányok" már csak ilyenek. És elfogadjuk. Mint egy régi veterán autónál, kb, amit restaurálnak, urambocsá, újként megépítenek.
POKE 16017,44 ..... SYS 2077
-
Dißnäëß
veterán
bekapcsoláskor a timer 0-ról indul, elmegy mondjuk egy zenehallgatás alatt 234567-ig, ezt elmented. Következő bekapcskor ismét nullárol indul, de te hozzáadod a tárolt értéket, így igazából 234567-től 876543-ig fog mondjuk menni, és így tovább, nem kell naptár
Én is így képzelem. Számolhatnám 0-tól is és csak a végén hozzáadom az EEPROM-ban lévő értékhez, és ezek gyűlnek itt, de azt ki is kell olvastatnom vele már a legelején, amolyan bekapcsolás előtti check-ekhez felhasználva. Öreg csővel nem engedem beindulni.cső1 cserélve 23214-kor utoljára, cső2 cserélve 65487-kor utoljára stb. mikor egy csövet cserélsz, csak azt tárolod el, amikor cserélted, így ahány paramétert figyelsz, annyi érték + 1 az időbélyeg amit tárolni ekll az epromban.
Leragadtatok nagyon ennél a percenkénti írásnál Ezek a változók léptetődnének percenként eggyel, míg áram alatt az erősítő (nem csak az MCU). Az MCU-ban, nem az EEPROM-ban !!!
1. Indításkor EEPROM-ból kiolvasok régi értéket
2. Ennek mentén döntök, szabad-e indulnia, és míg működik, nem haladhatom meg vele ezt a határértéket. (Ha meghaladja, mert mondjuk bekapcsolva hagyom 1 hétre véletlenül, akkor lelövi az erősítőt, amint eléri az életkor limitet, és nyilván ezt megteszi 1 héttel előtte is, bármikor, akár indítás után 2 órával is).
3. Áramszünet vagy gomb nyomásra, tehát tökmindegy, hogy graceful, vagy erőltetett, az percenként 1-el léptetett változók értékeit (az MCU-ból) beírom az EEPROM-ba.Tehát: bekapcskor 1 kiolvasás lépés, kikapcskor 1 írás lépés. Előtte-utána és mindeközben az EEPROM nyugiban, nincs használva.
POKE 16017,44 ..... SYS 2077
-
Dißnäëß
veterán
válasz Dißnäëß #16820 üzenetére
Ja, az ábrámon rossz helyen a kiolvasás (bekapcsoláskor, a legelső ciklus lefutásakor). Na, szóval mondom, még készülget, de valami ilyesmit rakosgatok össze. Aztán ha kész és jónak találom, WAF is pipa, leprogramozom. Lesz még egy A4-es oldal amúgy, alfolyamat(ok)nak majd, amibe átlépek innen, és vissza.
POKE 16017,44 ..... SYS 2077
-
őstag
Távolról sem kell 3byte wear counter
Ha valós wear-counter van, akkor hogyan számolod 100.000-ig, hogy hányszor írtad azt az adatcsomagot ? Vagy csak sima load-balancera gondolsz? Mert persze, akkor elég csomagonként egy bit, ami jelzi hogy hol írtál legutoljára. Csak a kolléga mindent IS számolni szeretne, pont egy ilyen kritikus dolgot ne tartana számon?Mások számára a kondi fáradós, nekem farad-os...
-
Dißnäëß
veterán
válasz razorbenke92 #16822 üzenetére
Bevezetek erre is egy számlálót és egy limitet, hmm ?
POKE 16017,44 ..... SYS 2077
-
őstag
válasz Dißnäëß #16823 üzenetére
És a számlálóra is egy számlálót
Neem, viccet félretéve itt kicsit elmentünk metába már. Mindenkinek van egy jó/jobb ötlete, de ettől a tied is működőképes. Szóval csak bátran, és ha valahol elakadsz, igyekszünk segíteni!
Mások számára a kondi fáradós, nekem farad-os...
-
Dißnäëß
veterán
válasz razorbenke92 #16824 üzenetére
Rendes Tôletek, nagyon köszönöm !
Jelzek, ha feladtam valamivel, valaholPOKE 16017,44 ..... SYS 2077
-
nagyúr
válasz razorbenke92 #16822 üzenetére
sima load-balancera gondolsz
Igen, doktor úr, ez a pontos kifejezés!
-
nagyúr
válasz Dißnäëß #16819 üzenetére
Most volt időm végigolvasni ez a hosszú hozzászólást
Eddig abban a hitben voltam, hogy egy graceful shutdown után áramtalanítani is szeretnéd minden alkalommal az eszközt (magamból indultam ki). Ha tervezetten mindig áram alatt lesz, és csak az esetleges áramszünetekre kell a backup megoldás, akkor valóban inkább valami elemet kellene használni, pl 2db CR2032.
A számláló nullázására én megint más metódust használnék
Ha nem lesz kijelző, akkor lehetne 3db RGB led (vagy egyszerűen csak 3db led) mint állapot visszajelző, olcsó és hatékony megoldás.
Érdemes lenne a csövek hőfokának mérését is bevenni a projektbe, ahogy írtad, elég fontos paramétere a működésnek. Vagy külön termisztorral, vagy esetleg a fűtőszál ellenállásának a változásával, ahogy a forrasztópákáknál szokás.[ Szerkesztve ]
-
Dißnäëß
veterán
Köszi a tippeket. Lesz OLED 256x64 SPI, és 1db RGB LED is. Áram alatt csak a pici trafó, nem az egész, standby-ban. Csôfoglalatokat (3 típus = 3 szenzor) és a ház 3-4 pontján belül, mérem DS18B20-akkal.
Lehet kap 1-1 kisebb 12V ventit is, 5V-ról csendes. A legnagyobb nyári melegben behúzom ôket, de amúgy default soha.[ Szerkesztve ]
POKE 16017,44 ..... SYS 2077
-
Undoroid
őstag
válasz Undoroid #16790 üzenetére
Sziasztok & Boldog Újévet minden szakinak!
Újabb két kérdéssel fordulnék hozzátok:
1: A korábbi példával kapcsolatban szeretnék kérdezni. Az UNO másik három (3, 5, 6 pin) PWM-es kimenetet szeretném aktiválni és teljesen más jeleket produkálni úgy, hogy egyszerre fussanak le (9, 10, 11 pin) és ne várjanak egymásra! Van egy halvány elképzelésem, de ez is a "fix értékekkel" működő, tárhelypocsékolós megoldás lenne...
2: Van ez a kapcsolás és a kapcsolási rajzon szereplő rádió modul (SI4730) és a kódban szereplő ( #include <Si4735.h> ) hivatkozás különbözik. Vajon ezek menni fognak? Az Si4735 adatlapján a másik is meg van említve...nyilván a 4735 'többet tud' a táblázat szerint és ezért másképpen kell a kódban kezelni, vagy annyira kompatibilis egymással a kettő, hogy simán menni fog? Szerintetek?
Köszi a válaszokat!
https://logout.hu/bejegyzes/ngabor2/nyugodj_bekeben_bordoi.html _ https://robo-venture.com -> Az ökotudatos, digitális közösségi alkotóműhely <-
-
nagyúr
válasz Undoroid #16829 üzenetére
Boldog új évet neked is! (Hol voltál 9 napig?! )
1. Igen.
2. Ezt csak empirikusan fogod tudni megállapítani. Ha a két modul egy gyártótól származik, akkor van rá esély, hogy a két library bizonyos mértékig kompatibilis egymással, és ha nem akarsz olyan parancsokat küldeni, amit a másik modul nem ért, akkor elvileg működhet. Ha mégsem, akkor a megfelelő lib beszerzése és a kód megfelelő sorainak a javítása lesz a megoldás. Ha ez sem működik, akkor sajnos marad a reverse engineering: bele kell nézni mindkét library-be, és átírni az egész programot.
-
Sebiferi
tag
Sziasztok!
Kérdeztem már hasonlót de sajnos megint előjött a probléma és még nincs megoldva.
230V AC-n szeretnék áramot mérni shunt ellenálással és arduinón mérni a shunt-ön eső feszültséget. A probléma az, hogy nagyon kicsi áramokat szeretnék mérni (2-100mA) A 2mA-es lépcső már megfelel. A 100mA feletti áram "nem számít" - nem érdekes, hogy mennyi ha 100mA felett van, csak ne menjen tönkre az áramkör. Tudom, hogy ez galvanikusan nincs leválasztva de az egész áramkör egy zárt dobozban lesz és RF jellel kommunikál a külvilággal.
Ha valaki futott már bele hasonló problémába és tudna használható linkeket küldeni - azt megköszönném! Kész megoldásnak persze jobban örülnék mert a hajam már hullik ettől.Domoticz
-
őstag
válasz Sebiferi #16831 üzenetére
Az indukción alapuló mérés semmiképp nem megfelelő? DIY esetben a galvanikus leválasztás nem csak az érintésvédelem miatt fontos, hanem mert ha valami zárlatba megy, akkor a hálózati feszültségből elég energia nyerhető a tűzeset kiváltásához. Söntös árammérésnél pedig sorosan kell kapcsolódnod a hálózati feszültségre, ami az egyébként jól működő védelmek egy részét kizárja. Már maga a közös nullapont kialakítása egy DC mikrokontroller és egy hozzá képest lebegő AC között megfelelő elektronikai ismereteket igényel.
Ha egy Arduinoval mész, az 1024 értékre tud skálázni. Ez azt jelenti, hogy 2mA felbontáshoz a max mérhető érték 2A körüli (ha a kvantálás szabályait betartod és valóban 2mA pontosságot szeretnél, akkor persze a mérést 1mA-es, vagy még inkább 0.5mA-es küszöbbel kell végezni, akkor már csak 1A illetve 0.5A körül alakulhat az áram (100-200W körüli fogyasztóra elég).Vannak persze olyan perverz gondolataim, hogy betehetnél egy digitális potmétert a rendszerbe. Ha a potméteren mért feszültség a szélső 20%-ok felé jár, akkor programatikusan állítasz az ellenállásosztáson. Ezt a kódban ismerve megvan a dinamikus szorzó a pontos érték visszaszámításához.
Mások számára a kondi fáradós, nekem farad-os...
-
Sebiferi
tag
válasz razorbenke92 #16832 üzenetére
Az indukción alapuló mérés semmiképp nem megfelelő?
Az áramváltós és a hall-effektes mérők tudtommal nem tudnak ilyen kis áramokat mérni. A max áram 10-12A lehet az alkalmazásban.DIY esetben a galvanikus leválasztás nem csak az érintésvédelem miatt fontos, hanem mert ha valami zárlatba megy, akkor a hálózati feszültségből elég energia nyerhető a tűzeset kiváltásához. Söntös árammérésnél pedig sorosan kell kapcsolódnod a hálózati feszültségre, ami az egyébként jól működő védelmek egy részét kizárja. Már maga a közös nullapont kialakítása egy DC mikrokontroller és egy hozzá képest lebegő AC között megfelelő elektronikai ismereteket igényel.
Természetesen biztosíték be lesz építve. A közös nullpont azt hiszem nem lesz gond, ennek (is) utánajártam. Pl. a sonoff cuccok is ilyenek és jól működnek.Ha egy Arduinoval mész, az 1024 értékre tud skálázni. Ez azt jelenti, hogy 2mA felbontáshoz a max mérhető érték 2A körüli (ha a kvantálás szabályait betartod és valóban 2mA pontosságot szeretnél, akkor persze a mérést 1mA-es, vagy még inkább 0.5mA-es küszöbbel kell végezni, akkor már csak 1A illetve 0.5A körül alakulhat az áram (100-200W körüli fogyasztóra elég).
A 0.5mA-es küszöb persze jobb lenne de az áram 10-12A max lesz. Ezért írtam a kérdésben, hogy 100mA felett már nem akarom mérni az áramot (nem is számít, hogy mennyi) csak ne menjen tönkre az áramkör.
Vannak persze olyan perverz gondolataim, hogy betehetnél egy digitális potmétert a rendszerbe. Ha a potméteren mért feszültség a szélső 20%-ok felé jár, akkor programatikusan állítasz az ellenállásosztáson. Ezt a kódban ismerve megvan a dinamikus szorzó a pontos érték visszaszámításához.
Hasonló nekem is eszembe jutott de mi van akkor ha lefagy az arduino? Füst, robbanás?
Domoticz
-
Gergosz2
veterán
válasz Sebiferi #16834 üzenetére
Amit csinálhatsz:
1, kompenzált hall elemes áramérő. Ilyennel tudsz mérni DCt is ha esetleg megkívája, szőt még leválaszt is. Pl LEM.
2, sönterősítő kapcsolás . Most hasraütésszerűen amit már használtam : https://www.ti.com/lit/ds/symlink/ina181.pdf?ts=1642093565364&ref_url=https%253A%252F%252Fwww.ti.com%252Fproduct%252FINA18120-21 oldal. Kell egy sönt ellenállás, ez az erősítő + egy feszültség referencia. Ha az arduinod ADC refje is 5 V, akkor pl egy 2.5V os referencia is tökéletes, de bármi egyéb is jó lehet az erősítések függvényében.
Nokia 6030 Hardcore User // I Panic Restaurant by Taito
-
Sebiferi
tag
válasz Gergosz2 #16836 üzenetére
Köszönöm a választ!
1, kompenzált hall elemes áramérő. Ilyennel tudsz mérni DCt is ha esetleg megkívája, szőt még leválaszt is. Pl LEM.
Csak AC 230V mérés kell. Ez a kompenzált hall elemes cucc nekem új, vagy csak más néven találkoztam vele.
Az adatlap szerint az INA181 max. 26V-ig jó. Már ha jól értelmezem.
Domoticz
-
Sebiferi
tag
Ez az! Én is 0.010 ohm-ra gondoltam, nem kell szerintem huzalellenállás. Gyártanak direkt ilyen célra réz-mangán shunt ellenálásokat és bőven vannak ekkora teljesítményre is. A kérdés csak az, hogy milyen erősítő(ke)t, szűrő(ke)t kell utána használni, hogy jól működjön
Domoticz
-
weiss
addikt
válasz Sebiferi #16839 üzenetére
Hát igen, ez jó kérdés Hobby elektronika topikban lehet fejből mondanak valamit.
I did nothing, the pavement was his enemy!
-
őstag
válasz Sebiferi #16835 üzenetére
Az áramváltós és a hall-effektes mérők tudtommal nem tudnak ilyen kis áramokat mérni.
Ez igaz, de sokkal könnyebben meg tudod emelni a rajtuk keresztül folyó áramot, mint hinnéd.
Mondok egy példát:
Veszel egy 5A-es lakatot ami 5mA-re vált. Teszel rá egy terhelőt, ami az 5mA-ből 5V-ot csinál (1kOhm).
Ezt az 5V-ot 1024 felé tudod bontani, azaz az 5A-t is. Az már 4,8mA felbontás.
Ha viszont a vezetékedet 4x viszed át a hurokban (ügyelve az azonos áramirányra) akkor 4x olyan érzékeny lesz, azaz 1,2mA felbontást kapsz.
Ezekben az áramváltókban a vasmag szaturációja a névleges értékre van belőve, afölött nem - vagy nem sokkal nagyobb - feszültség/áram nyerhető belőlük, így amikor a valós 10 amperes fogyasztás megérkezik, nem fog túlfeszültséget okozni a mérő oldalon. (Illetve amit okoz, azt simán elviszed egy ellenirányú 5V-os zenerrel).
A közös nullpont azt hiszem nem lesz gond, ennek (is) utánajártam. Pl. a sonoff cuccok is ilyenek és jól működnek.
A Sonoff cuccokban az ESP-k nem az AC vonallal közösítenek nullát, hanem a dedikált energiamonitorozó chippel (HLW8012). A schematicon ne keverd össze az Earth és a GND pontokat, mert azok nincsenek közösítve.Mások számára a kondi fáradós, nekem farad-os...
-
Sebiferi
tag
válasz razorbenke92 #16843 üzenetére
Köszönöm szépen a leírást!
Erre én is gondoltam de azt hittem (és olvastam is talán), hogy ilyen esetben nagy áram esetén olyan nagy feszültség generálódik, hogy a szekunder oldal át is üthet. Ha nem így van, akkor az nagyon jó hír.
Esetleg tudnál valami linket adni ahol erről írnak? Jó lenne kiokosodnom a témában.Domoticz
-
Sanki
addikt
Sziasztok.
Adott az alábbi kód, melynek lényege az lenne, hogyha a D0 pin-en nincs jel, akkor folyamatosan "25-ös" erősségen világít a led, ha pedig van jel, akkor fel kell erősödnie a fényerőnek "150-re", ha ez a jel megszűnik, akkor pedig visszahalványul "25-re". (Program indulásakor nem fix melyik eset van, hogy van e jel vagy nincs.)Na addig eljutottam, hogy a jel jelenlétének/hiányának az állapotára nő/csökken a fényerő, viszont ez folyamatosan történik és nem áll meg a végén, visszaugrik a kezdeti állapotra (és vagy 150-ről csökken 25-re folyamatosan ciklusban, vagy fordítva, növekszik a fényerő 25-ről 150-re folyamatosan).
Szerintetek mi lehet a probléma?
#include "FastLED.h"
#define NUM_LEDB1 3
#define NUM_LEDB2 3
#define LED_TYPE WS2812
#define COLOR_ORDER GBR
CRGB leds1[NUM_LEDB1];
CRGB leds2[NUM_LEDB2];
#define LEDB1 D2
#define LEDB2 D8
#define inPin D0
#define BRIGHTNESS25 25
#define BRIGHTNESS150 150
void setup() {
pinMode(inPin, INPUT_PULLUP);
pinMode(LEDB1, OUTPUT);
pinMode(LEDB2, OUTPUT);
FastLED.addLeds<LED_TYPE, LEDB1, COLOR_ORDER>(leds1, NUM_LEDB1).setCorrection(TypicalLEDStrip);
FastLED.addLeds<LED_TYPE, LEDB2, COLOR_ORDER>(leds2, NUM_LEDB2).setCorrection(TypicalLEDStrip);
// FastLED.setBrightness(25);
for (int i = 0; i < NUM_LEDB1; i++ ) {
leds1[i] = CRGB::White;
}
for (int i = 0; i < NUM_LEDB2; i++ ) {
leds2[i] = CRGB::White;
}
// FastLED.clear();
// FastLED.show();
}
void loop() {
if (digitalRead(inPin) == LOW) {
fadedown25();
}
if (digitalRead(inPin) == HIGH) {
fadeup150();
}
}
// ------------------------------------
void fadeup150()
{
for (int j = BRIGHTNESS25; j < BRIGHTNESS150; j ++) {
FastLED.setBrightness(j);
FastLED.show();
delay(10);
}
}
// ------------------------------------
void fadedown25()
{
for (int j = BRIGHTNESS150; j >= BRIGHTNESS25; j --) {
FastLED.setBrightness(j);
FastLED.show();
delay(10);
}
}
-
Sanki
addikt
Upsz, akkor ezen példa alapján kiegészítettem: State Change Detection (Edge Detection) for pushbuttons
Most menet közben jó, még a starton kell csiszolni, ha "HIGH" D0-val kapcsol be, akkor ugyanolyan fadedown-nal megy le a 25-ös értékre.
Ha LOW, akkor viszont fix 150-en kapcsol be.#include "FastLED.h"
#define NUM_LEDB1 3
#define NUM_LEDB2 3
#define LED_TYPE WS2812
#define COLOR_ORDER GBR
CRGB leds1[NUM_LEDB1];
CRGB leds2[NUM_LEDB2];
#define LEDB1 D2
#define LEDB2 D8
#define inPin D0
#define BRIGHTNESS25 25
#define BRIGHTNESS150 150
int brightState = 0;
int lastbrightState = 0;
void setup() {
pinMode(inPin, INPUT_PULLUP);
pinMode(LEDB1, OUTPUT);
pinMode(LEDB2, OUTPUT);
FastLED.addLeds<LED_TYPE, LEDB1, COLOR_ORDER>(leds1, NUM_LEDB1).setCorrection(TypicalLEDStrip);
FastLED.addLeds<LED_TYPE, LEDB2, COLOR_ORDER>(leds2, NUM_LEDB2).setCorrection(TypicalLEDStrip);
FastLED.clear();
for (int i = 0; i < NUM_LEDB1; i++ ) {
leds1[i] = CRGB::White; }
for (int i = 0; i < NUM_LEDB2; i++ ) {
leds2[i] = CRGB::White; }
if (digitalRead(inPin) == HIGH) {
FastLED.setBrightness(25);
FastLED.show(); }
else {
FastLED.setBrightness(150);
FastLED.show(); }
}
void loop() {
brightState = digitalRead(inPin);
if (brightState != lastbrightState) {
if (brightState == HIGH) {
fadedown25();
}
else {
fadeup150();
}
}
lastbrightState = brightState;
}
// ------------------------------------
void fadeup150() {
for (int j = BRIGHTNESS25; j < BRIGHTNESS150; j ++) {
FastLED.setBrightness(j);
FastLED.show();
delay(10);
}
}
// ------------------------------------
void fadedown25() {
for (int j = BRIGHTNESS150; j >= BRIGHTNESS25; j --) {
FastLED.setBrightness(j);
FastLED.show();
delay(10);
}
}
-
Tankblock
aktív tag
Hello,
lastbrightState is állítsd be a setupba,State Machine -nak (Állapotgép) nézz utána, a jövőben hasznos lesz.....
Adott az alábbi kód, melynek lényege az lenne, hogyha a D0 pin-en nincs jel, akkor folyamatosan "25-ös" erősségen világít a led, ha pedig van jel, akkor fel kell erősödnie a fényerőnek "150-re",
Ennek a követelményednek a kódod pont ellentétét csinálja a setupban.
Sőt pont az ellentétjét mint a loopban....vagy a jelszintek nem ott vannak ahol gondolom.
if (digitalRead(inPin) == HIGH) {
FastLED.setBrightness(25); // Jel esetén 150
FastLED.show(); }
else {
FastLED.setBrightness(150); // nincs jel esetén 25
FastLED.show(); }
}
//ehelyett
#define HIGHLEDSTATE 150
#define LOWLEDSTATE 25
lastbrightState = digitalRead(inPin);
if (lastbrightState == HIGH) {
FastLED.setBrightness(HIGHLEDSTATE ); // Jel esetén 150
}
else {
FastLED.setBrightness(LOWLEDSTATE ); // nincs jel esetén 25
}
FastLED.show();
[ Szerkesztve ]
Release the Beast....
-
Új hozzászólás Aktív témák
- Mini-ITX
- Politika
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- XGS24 - Megjelenési dátumot kapott a World of Warcraft The War Within
- GTA V
- Azonnali VGA-s kérdések órája
- Motorola Edge 30 Neo - wake up, Jr...
- XGS24 - Befutott az Assassin's Creed Shadows legújabb előzetese
- XGS24 - Befutott a Dragon Age: Veilguard új előzetese
- Spórolós topik
- További aktív témák...
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen