RCmania.cz - web pro modeláře a modely http://www.rcmania.cz/ |
|
Arduino úsporný režim http://www.rcmania.cz/viewtopic.php?f=41&t=80778 |
Stránka 1 z 2 |
Autor: | srabsrab [ úte 02.05.2017 14:40 ] |
Předmět příspěvku: | Arduino úsporný režim |
Zdravím, nezkoušel někdo hrát si s úsporným režimem arduina? Je spousta tutoriálů a návodů, ale problém je v tom, že pořebuju aby to fungovalo a ono to tak nějak moc nefunguje jak je to všude popsáno..... Při nejúspornějším módu mi při měření bere arduino mini pro kolem 8mA a to jsem odpájel jak power ledku tak regulátor (ten jsem teda pouze propájel abych ho vyřadil a nezničil spoje okolo..ale tím sem snížil spotřebu pouze o 1mA....) Jenže to mi životnost na baterku moc neprodlouží. Všude píšou že naměřily běžně při tomhle režimu pod 0,3mA .... běžně dokonce mnohem méně a teoreticky tak může běžet takové arduino roky.. zkoušel jsem i speciální knihovnu, která povypíná teoreticky vše, ale stejný výsledek Nemáte nápad co s tím? Protože úspora ve sleep módu je tak +- 8mA (tedy 50%), ale měla by být násobně větší... co jsem četl tak 50x.... Tu nejake odkazy co jsem taky zkousel http://arduino8.webnode.cz/news/lekce-27-adruino-a-napajeni-z-baterie-aneb-jak-uspat-arduino/ https://andreasrohner.at/posts/Electronics/How-to-modify-an-Arduino-Pro-Mini-clone-for-low-power-consumption/ |
Autor: | JosefSvejk [ úte 02.05.2017 15:15 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
Zrovna nedávno jsme to řešili s klukem. Kvůli velikosti projektu musel použít arduino mega a tam byla spotřeba taky dost velká. Na unu to bylo lepší a nejlepší na samotném IO bez blbinek okolo. Problém je totiž v tom, že na deskách arduina je kromě hlavního procesoru ještě jeden procesor nebo specializovaný IO, který řeší komunikaci přes USB. A ten se (asi) nedá uspat. U té megy jsme to vyřešili mechanickou úpravou - přerušil jsem spoj, který napájí toho druhého brouka, osadil dva piny a při používání USB se nasadí propojka. Tím zhasly i ledky komunikace. Dostali jsme se na 3,4 mA včetně modulu hodin. Samostatný atmel spí někde kolem 0,3 mA. |
Autor: | Amper [ úte 02.05.2017 15:18 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
zajimavy clanek je tady https://www.root.cz/clanky/arduino-meri ... -v-bazenu/ |
Autor: | fokker1 [ úte 02.05.2017 16:15 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
Poud jde o komunikaci s USB, tak Arduino Pro Mini ji nemá. Navíc se dělá i na 3,3V, 8MHz, kde bude spotřeba menší. Ale má jen procesor ATMega 328 nebo 168, Mega má 2560. |
Autor: | srabsrab [ úte 02.05.2017 16:27 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
JosefSvejk píše: Problém je totiž v tom, že na deskách arduina je kromě hlavního procesoru ještě jeden procesor nebo specializovaný IO, který řeší komunikaci přes USB. A ten se (asi) nedá uspat. no prave ze ja to resim na arduino mini pro a ten zadnou usb komunikaci nema a odpojil sem vse podle navodu .. jeste muzu vyzkouset uplne ten stabilizator oddelat misto proklemovani, ale to stejne neresi proc neni uspora alespon priblizne jako na tech navodech, kde uvadeji v tabulkach spotrebu i pod setinu mA a bez jakekoliv upravy 3mA coz ale je sporeba te ledky ktera ale v mem pripade zrala mene nez 1mA... jinak je to teda black verze s uplne mikroprtavou 328 .... leda by neumel tenhle atmelak moc sporit??? ikdyz nevim no spis buch rekl ze kdyz je misto 1x1centak velkej pouze 0,5x0,5 centaku tak by spis mel byt jeste uspornejsi ne? Voltazi to taky neni... ty tabulky co sem videl maji fungovat i pri 5V napajeni .. a potrebuju taky aby sel LCD po probuzeni takze pod jednu lionku jit nemuzu .. tedy 3,7V... ta moje hodnota je samo bez niceho .. .takze jsem zklaman uspornym rezimem i kdyz nerikam pri provozu zarizeni jsem diky nemu schopen alespon snizit spotrebu z 24 na zhruba 14-16mA... ale pocitam ze pokud by fungoval ten sleep mod spravne tak se dostanu jeste niz ...prave sem predtim vubec nezkousel samotne arduino bez periferii a ten holej uspornej program kolik zere az pote co sem si pridal do programu uplne vypnuti a sem tam zmereni hloubky pro opetovne zapnuti ... nechci to zase resit nevzhlednym magnetickym spinacem ... a prave me dost prekvapilo ze to se vsim bere 10mA pri uplnem vypnuti a 8 (misto 3 jak se pise vsude na netu bez uprav a dokonce pod 1mA s upravou) pri uplne absenci periferii a programu jen test na uspani ... |
Autor: | srabsrab [ úte 02.05.2017 18:14 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
JosefSvejk píše: Máš asi něco špatně v programu. Našel jsem fotky, co si kluk fotil při testování spotřeby. Samotná atmega328 žere fakt nula celá nic. Mozny to jeee, ale jak rikam samotnej program z tech prikladu a porad to zere moc ... tohle je uz ani nevim odkud jen test s ledkou.... snazim se prave najit nekde tu chybu a porad nevim ... // potřebné knihovny #include <avr/sleep.h> #include <avr/power.h> #include <avr/wdt.h> #define LED_PIN (13) // pojmenování pinu 13 // zde se bude ukládat zda přišel impuls z watchdog timeru // hodnota 1 simuluje impuls po zapnutí, aby jsme nečekali volatile int impuls_z_wdt=1; // zde se ukládají impulsy volatile int citac_impulsu= 2; // zde nastavíme potřebný počet impulsů // podle nastavení WDT viz níže je jeden impuls 8 sekund volatile int impulsu_ke_spusteni = 2; // impuls z WATCHDOG TIMERU ///////////////// ISR(WDT_vect) { //když je proměnná impuls_z_wdt na 0 if(impuls_z_wdt == 0) { // zapiš do proměnné 1 impuls_z_wdt=1; } } void enterSleep(void) { //nastavení nejúspornějšího módu set_sleep_mode(SLEEP_MODE_PWR_DOWN); // spánkový režim je povolený sleep_enable(); // spuštění režimu spánku sleep_mode(); // tady bude program pokračovat když se probudí // spánek zakázán sleep_disable(); //znovu zapojení všech funkcí power_all_enable(); } void setup() { //nastaví pin 13 jako výstup pinMode(LED_PIN,OUTPUT); // nastavení WATCHDOG TIMERU MCUSR &= ~(1<<WDRF); // neřešte WDTCSR |= (1<<WDCE) | (1<<WDE); // neřešte // nastavení času impulsu WDTCSR = 1<<WDP0 | 1<<WDP3; // 8 sekund, WDTCSR = B0110 --> 1 sekunda WDTCSR |= _BV(WDIE); //neřešte } void loop() { //když je impuls z WATCHDOG TIMERU a zároveň i potřebný jejich počet if ((impuls_z_wdt == 1) & (impulsu_ke_spusteni == citac_impulsu)) { /////////////////////////////////////////////////////////////// // zde je ukázkový kód, upravte si sami podle potřeby digitalWrite(LED_PIN, HIGH); delay(3000); digitalWrite(LED_PIN, LOW); // konec ukázkového kódu, který se v nastaveném intervalu // bude provádět ////////////////////////////////////////////////////////////// citac_impulsu = 0;// vynuluj čítač impuls_z_wdt = 0; // vynuluj impuls enterSleep();// znovu do spánku } else { enterSleep();//znovu do spánku } citac_impulsu++; // inpuls se přičte i když nic neproběhlo } |
Autor: | JosefSvejk [ úte 02.05.2017 18:29 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
A ještě jednu poznámku. Nedávno jsem tu řešil, jak strašně mi lže multimetr právě na rozsahu kolem 10 mA. Proto na fotce vidíš poněkud archaický měřák . Ten měří podstatně lépe než můj UT61E. |
Autor: | coro [ úte 02.05.2017 18:50 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
O Arduine nič neviem, ale napadá ma, či tam nie je kadečo pozapínané čo sa dá na tom procesore povypínať AK si ho programuješ normálne cez nejaké AVRStudio a nastavíš len čo potrebuješ - myslím na AD prevodník, internú referenciu, a podobne. Či tam nie je kadečo pozapínané. Ešte aj frekvencia zaváži, asi aj typ. No a potom, či Ti ho nebudí niečo na čo nemyslíš, akože nezapojený pin na low stave čo vygeneruje prerušenie a zobudí procík? |
Autor: | srabsrab [ úte 02.05.2017 19:03 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
JosefSvejk píše: A ještě jednu poznámku. Nedávno jsem tu řešil, jak strašně mi lže multimetr právě na rozsahu kolem 10 mA. Proto na fotce vidíš poněkud archaický měřák . Ten měří podstatně lépe než můj UT61E. No zkousel jsem ruzne rozsahy merit proud tekouci pres odpor z AA clanku a meri OK ... s tim problem nebude... Tohle taky zere v tom sleep modu stejne moc... #include "LowPower.h" // import the lowpoer library int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); // instead of delay(1000) ; digitalWrite(led, HIGH); LowPower.powerDown(SLEEP_4S, ADC_OFF, BOD_OFF); // instead of delay(1000) ; digitalWrite(led, LOW); } nemas nakej jinej kod teda? jen s tim uspanim ... |
Autor: | srabsrab [ úte 02.05.2017 19:27 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
Jinac takhle vypada to arduino co ted zkousim ... http://i.ebayimg.com/images/g/MMcAAOSw2GlXLD~U/s-l1600.jpg |
Autor: | JosefSvejk [ úte 02.05.2017 20:35 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
Tak to bude nejspíš chyba toho atmelu, nějak si to nerozumí . Ten první kód nám funguje. Ten druhý (LowPower) ale taky nefungoval dobře. To arduino je dozajista nějaká čínská kopie . A nedělám si iluze o kvalitě součástek, které číňan používá. |
Autor: | sky59 [ úte 02.05.2017 22:04 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
srabsrab píše: Zdravím, nezkoušel někdo hrát si s úsporným režimem arduina? Je spousta tutoriálů a návodů, ale problém je v tom, že pořebuju aby to fungovalo a ono to tak nějak moc nefunguje jak je to všude popsáno..... Při nejúspornějším módu mi při měření bere arduino mini pro kolem 8mA a to jsem odpájel jak power ledku tak regulátor (ten jsem teda pouze propájel abych ho vyřadil a nezničil spoje okolo..ale tím sem snížil spotřebu pouze o 1mA....) Jenže to mi životnost na baterku moc neprodlouží. Všude píšou že naměřily běžně při tomhle režimu pod 0,3mA .... běžně dokonce mnohem méně a teoreticky tak může běžet takové arduino roky.. zkoušel jsem i speciální knihovnu, která povypíná teoreticky vše, ale stejný výsledek Nemáte nápad co s tím? Protože úspora ve sleep módu je tak +- 8mA (tedy 50%), ale měla by být násobně větší... co jsem četl tak 50x.... Tu nejake odkazy co jsem taky zkousel http://arduino8.webnode.cz/news/lekce-27-adruino-a-napajeni-z-baterie-aneb-jak-uspat-arduino/ https://andreasrohner.at/posts/Electronics/How-to-modify-an-Arduino-Pro-Mini-clone-for-low-power-consumption/ Nic neries, ziadne interrupty, uspi ho a zmeraj |
Autor: | srabsrab [ úte 02.05.2017 22:13 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
JosefSvejk píše: Tak to bude nejspíš chyba toho atmelu, nějak si to nerozumí . Ten první kód nám funguje. Ten druhý (LowPower) ale taky nefungoval dobře. To arduino je dozajista nějaká čínská kopie . A nedělám si iluze o kvalitě součástek, které číňan používá. Stejne to vsechno delaj cinani .... pravda nahral jsem to jeste zkusmo do nana s usb prevodnikem i diodou a bere si 6,5mA (ten nano ma 328p AUxxxx) .. tedy mene nez ten 328p MUxxxx mikrocip .... ale i tak... ledaze cim vetsi externi krystal tim vetsi spotreba? Komunikuje samotna 328PU jak ji mas na fotce bez toho krystalu? Mam jednu a nevim jestli je vadna nebo potrebuje krystal, aby s ni vubec bylo mozno pracovat ... mela by mit udajne jiz vypaleny bootloader ... po pripojeni ale vubec nekomunikuje (chtel jsem ji vyplalit aby behala na internich 8mhz ale nejde z ni ani cist natoz do ni zapisovat pres usbasp) ... ze bych zkusil samotnou 328 jak moc zere ... |
Autor: | BoŠ [ stř 03.05.2017 5:12 ] |
Předmět příspěvku: | Re: Arduino úsporný režim |
Nebude spíš problém v těch knihovnách? Zkoušel jsi to uspat napřímo přes SLEEP instrukci (viz. např. datasheet http://ww1.microchip.com/downloads/en/D ... asheet.pdf)? Už jsem se párkrát setkal s tím, že knihovny nebyly naprogramovány optimálně pro mé aplikace, takže si některé věci ošetřuji "napřímo". Je pravda, že programuji přímo čipy, ne arduino. |
Stránka 1 z 2 | Všechny časy jsou v UTC + 1 hodina |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |