Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Tényleg ne vicceljetek már! Ott az Arduino, a maga összes energiatakarékos, alvó üzemmódjával, és ti CMOS IC-t akartok berakni? Ez olyan, mintha lenne egy ferrarid, de hátulról tolnád egy trabanttal. Fogni kell az RTC-t, beállítani, hogy mondjuk mp-ként adjon egy impulzust. Ezt számolod az AVR-rel, vagy hajtod az egyik timer-t, lényegtelen, és ha kell, majd felébred az AVR. Elvégzi a szükséges dolgokat, majd lefekszik aludni. Minimális a fogyasztása ilyenkor.
Ha vannak hiányos ismeretek, akkor pedig azokat kell pótolni, mert később is jól fog jönni a sleep módja az AVR-nek, nem pedig megkerülő megoldásokat kell keresni, és túlbonyolítani a feladatot. Persze, csak ha haladni a korral, és tanulni akar az ember. A hozzászólás módosítva: Máj 7, 2016
Az ellenérvekkel egyetértek,
DE: Adott volt az Arduino és az RTC, feladat a fogyasztás minimalizálása. Az Arduino alvó állapotban is 5-10mA körüli áramot igényel, így CMOS-al, RTC-vel 10-50 mikroamper az idő nagy részében. Ez 2 nagyságrenddel kisebb.
Hát nem tudom. Én itt: Bővebben: Link 0.9mA-t látok, de még ezt is bőven sokallom.
Itt pedig 1uA (!): Bővebben: Link. Szóval kicsit még gyúrni kellene a szoftveren és a hardveren, mert képes rá az Arduino lapka. Alacsony feszültség védelmet ki kell iktatni, ez tuti, mert feleslegesen fogyaszt. De ha siletto elolvassa a két linket, biztosan megvilágosodik. Ha jól emlékszek, én 15-30uA-t értem el, folyamatosan ketyegő timer2-vel. A lényeg, hogy két-három hétig elmegy az AVR egy 70mAh-s akksiról (ha a nagy áramot fogyasztó LED-eket nem kapcsolom be), másodpercenként felébredve, majd azonnal megy is aludni. És ez a verzió még nem is energiatakarékos. Akkor lenne igazán jó, ha 8mp-ként ébredne fel, vagy még ritkábban, és ha nem kellene megvárnom, amíg a timer lép egyet (ugyanis hamarabb készen vagyok az interrupttal, mint hogy a 32768Hz-es kvarc 1-et lép, és ilyenkor újra jön egy interrupt). Plusz minden mp-ben ellenőrzöm, hogy átléptem-e az 59-et, ekkor a perc változóhoz adok egyet, ott is ellenőrzök, és így tovább. Ez teljesen felesleges. Elég lenne egy unsigned long változó, ami a mp-eket számolja, és mikor lekérdezem az időt (LED-ek bekapcsolása), csak akkor számolja ki a pontos időt, tehát csak 1x fut le bekapcsolásonként ez a sok if. De nekem így is elegendő, hetente kell töltenem, ha használom is a karórát. A hozzászólás módosítva: Máj 7, 2016
Valaki írta itt nemrég a fogyasztást, én nem mértem, nem jártam utána.
De ha úgy áll a dolog mint írtad, nem kell semmit kapcsolgatni, elég 1 percenként ébreszteni.
Persze, alapból 5-15mA-t fogyaszt az AVR, ez a normál üzemmód. Ezért találták ki az energiatakarékos üzemmódokat is. Ha az RTC tud ébresztést, akkor csak be kell állítani, aludni menni. Felébred az AVR, ismét beállítja a következő ébresztést, és elmegy aludni.
A hozzászólás módosítva: Máj 7, 2016
Nem kell új ébresztést beállítani, elég leszámolni 10-et a tíz perchez és akkor mérni, tárolni.
Szép napot!
Meg tudná mondani valaki, arduinoval hogyan oldható meg földfüggetlen feszültségmérés? Konkrétan sorba kapcsolt Li-Ion cellák feszültségét kellene mérnem egyenként... Esetleg valami célhardver létezik rá? vagy valami ötletes megoldás?
Attól függ, hány cellát, és milyen pontossággal akarsz mérni. Ha csak a lekapcsolási feszültség a lényeg és/vagy nem kell nagy pontosság, akkor simán kivonod a mért feszültségekból az alatta levőket. Így felosztod a 10bitet a cellák között. Egyébként el kell tolnod minden feszültséget a GND-re, müveleti erősítő megoldja. Más lehetőséget nem ismerek.
Keress kapcsolási rajzot több cellás lithium ion védelemekre, hátha valami egyszerű megoldást használnak. A hozzászólás módosítva: Máj 7, 2016
Csak ötlet, de esetleg használhatnál optocsatolót is. A cellák közé kötöd egy ellenálláson keresztül a kibocsátó diódáját, a fototranzisztort meg egy ellenálláson keresztül a táp és föld közé. Az ellenálláson eső feszt. tudod mérni.
Az időzítésen még gondolkodom majd, szerintem a cmos lesz a nyerő. Az arduino felületen kívül nem értek a mikrokontrollerhez, nincsenek eszközeim hozzá, ilyen mélységben nem tudok csak úgy belemenni.
Valójában éppen ezt a kivonósdi módszert akarnám elkerülni, 24 sorosan kapcsolt cella mérésére kellene valami okosság...
Az optocsatolós módszert nem igazán használnám, mivel valós időben terhelés alatt is tudni kellene mérnem. Egyébként elektromos kerékpár akkupakk cellafeszültség mérő lenne...
Szerintem ez terhelés alatt is működik, de majd megmondják a szakértők
sajnos to223...to89 stab ic nem igazán van nagy felületük hütési szempontbol max 100..200mA max midugy hiába 500mA....1A gyári adatok!
Ha sorbakötöm a ledet a cellákkal, akkor ott nem folyhat nagy áram, mert tönkre megy a led...
párhuzamosan,nem sorba.
Párhuzamosan kötöd a ledet az akkuval és egy előtétellenállással(nyilván azt a leddel sorba). Minnél magasabb a feszültség, annál több áram folyik a leden, annál több áram fog folyni az optocsatoló kimenetén is, amit szintén sorba kötsz egy ellenállással, és figyeled a rajta eső feszültséget.
Ja hogy a cellákkal párhuzamosan egyet-egyet, értem már...
Csak az a gond vele, hogy így meg állandóan fogyasztja a villanyt... Azért köszi...
Egyszerű: az arduinonak külön táplálást kell adni (tehát nem a mérendő akkupakk adja a delejt neki), így földfüggetlen lesz a mérés, ugyanúgy, ahogy egy multiméternél.
A mérőpontokat akár kéttárcsás jaxley kapcsolóval kötheted a mérőbemenetre.
Az nem játszik, hogy én kapcsolgassam át folyton minden cellára, szóval ezt automatizálni kellene, a 24 bemenetválasztó relé meg már kissé megdrágítaná a dolgot.
Analóg multiplexerre gondoltam még, de nem tudom az mennyire hamisítaná meg a mérendő feszültséget, és azt sem, hogy mennyi a szórása egy ilyen áramkörnek, valamint azt sem tudom, lehet -e egyáltalán valós feszültséget mérni analóg multiplexeren keresztül...
A kapcsolósdit azért mondtam, mert nem részletezted, hogy kézzel mérsz-e, vagy automatikusan szeretnéd.
Az analóg kapcsolón esik némi feszültség, úgyhogy mérési hibát okozhat. De ha a mérőműszered nagy bemenő ellenállású lenne, akkor ez a hiba kicsi lesz, a kvantálási érték alatt. Vannak pl. videojel-kapcsoló áramkörök, ezeknek alakhűen kell átvinniük a ráadott jeleket, ráadásul nagyfrekvencián is. Szerintem az ilyen, vagy ehhez hasonló kapcsolók alkalmasak ide is. Bár én még nem láttam ilyen megoldást, hogy erre használnák.
Butaság az egész CMOS-os ötlet!
Mikor pársoros interupt programmal be lehet állítani a következő megszakítást az RTC-ben. Kb. ennyi: \Arduino\libraries\Sodaq_DS3231\examples\RTCinterrupts.ino
A hozzászólás módosítva: Máj 8, 2016
"Bár én még nem láttam ilyen megoldást, hogy erre használnák."
Nem is fogsz mivel nem erre valóak és nem is jók rá. Nekem lenne egy ötletem, ha Li akkuról van szó akkor 3V feletti a feszültség megy róla a mikrokontroller. Kell kettő optocsatoló, a fő kontroller bekapcsolja a mérendő akku által táplált kis egységet pl nano panel (belső referencia meg feszültség osztó kell) optocsatolón keresztül, vannak már egész jó FET kimenetű optocsatolók, a másik irányú opto pedig soros porton alacsony baud-dal elküldi a mért értéket, mikor megkapta lekapcsol és indítja a következő cella mérést.
Nem a megszakítással van gondom, hanem az avr sleep modeval, amit írtatok nemrég. Nem vagyok tisztában ezeknek a regisztereknek a buherálásában, ami kellene ehhez, ezért tartok tőle. Ha van példa, arduin-n belülről esetleg meg tudom, de azt is csak szájbarágósan
Nem értem a félelmed okát?
Csak bátran kellene kisérletezni: Arduino sleep demo A hozzászólás módosítva: Máj 8, 2016
Nem értem a félelmed okát?
Csak bátran kellene kisérletezni: Arduino sleep demo És az 1 perces interupt kérés amit számolni akartál? Ugyan ott keletkezik mint az elöbbi 10 perces! Most mia kérdés?
Sziasztok!
A segítségeteket szeretném kérni, lenne egy h-bridge kapcsolású motorvezérlő amit egy ATMEGA8 vezérelne egy potméterrel, balra fordítva balra indul a motor jobbra fordítva jobbra indulna és minél inkább közeledünk a potméter végállásokhoz úgy nőne a motor sebessége is, ezt sikerült is megoldanom, de amikor közép állásba állítom a potit akkor a motor vagy egyik vagy másik irányban nagyon lassan de el kezd forogni. Abban kérném a segítségeteket, hogy hogyan lehetne megoldani, hogy a közép állástól jobbra és balra 1-2 fok kihagyás után induljon el motor?
If val<130 és val>120 akkor álljon meg a motor (kimenetek GND-k, vagy ahogy a kapcsolás megkívánja), ezután else (vagyis ha nem a 130 és 120 tartományban van a poti), ekkor jöhet a másik két feltételed.
Szia!
Én nem Arduinózok , úgy hogy bocsi a bele kotyogásért. De én ott a loop ciklusban úgy csinálnám, hogy ha a poti értéke mondjuk 0-120 közé esik akkor balra ha 130-255 közé akkor jobbra forog. közötte semmi. Ha jól játom neked a két IF nél átfedés van. az elsőnél val érték kissebb 130 nál a másiknál nagyobb 120 nál. Na most 125 nél??? mindkettőre igaz, tehát a késöbb lefutó feltétel fog teljesülni.
Ez kódban hogy lenne mert nekem nem akar működni?
Én az
Idézet: lekérdezéseknél felcserélném a 120 -at és a130 -at. „if (val < 130) {...”
Én egy holt zónában adnám meg, mikor ne forogjon semerre: Remélem nem írtam el...
A hozzászólás módosítva: Máj 9, 2016
Komolyan gondot okoz egy szövegesen leírt feltételszerkezet lekódolása?
Mikor szinte már majdnem a kódot írtam le, neked csak ki kellene javítanod, kicsit formailag rendezni, és kész lenne. Szerintem itt hagyom az Arduino témát, mert azt látom, itt mindenki csak a sült galambra vár. A hozzászólás módosítva: Máj 9, 2016
|
Bejelentkezés
Hirdetés |