SOLAR POWERED ARDUINO väderstation (11 / 13 steg)
Steg 11: POWER optimering av använda viloläge
Väderdata ändras inte ofta. Så kan vi ta behandlingen med 5mins intervall. Eftersom vi tar avläsningar med jämna mellanrum, är det ett fantastiskt sätt att spara massor av makt. Ett system med lämpliga sömn scheman kan köras i flera månader på bara två AA-batterier. Vi är så lyckliga att Arduino har flera sömn lägen som kan användas för att minska strömförbrukningen.
Detta är mest användbart för någon sensornätverk. Du kan använda detta trick i någon av projektet fristående sensor.
Efter sökning på Internet för att använda sömn lägen, hittade jag ett enkelt men kraftfullt bibliotek av
Raket Scream har en Lightweight Low Power library stödjer alla AVR driver ner lägen. Varje läge har en metod för associerade bibliotek som låter dig styra sömn varaktighet med watchdog timer. För en novis programmerare som mig är det mycket enkelt och lätt att använda.
Hur du använder LowPower bibliotek:
1. Ladda ner biblioteket från GitHub
2. extraktet den zip arkivera till arduino biblioteket i din dator.
3. importera bibliotek i din kod.
4. skriva följande en rad kod för förmåga räddningen.
"LowPower.powerDown (SLEEP_1S, ADC_OFF, BOD_OFF);"
Du kan också skicka olika argument att stänga av enskilda kringutrustning. För olika argument och sova tid se tabellen som tillhandahålls av Lightweight Low Power Arduino bibliotek.
exempelkod:
#include "LowPower.h"
void setup()
{
Ingen installation krävs för det här biblioteket
}
void loop()
{
Sova för 8 s med ADC modul och BOD modul av
LowPower.powerDown (SLEEP_8S, ADC_OFF, BOD_OFF);
Göra något här
Exempel: läsa sensor, logga data, överför data
}
Kan använda den i blinkkod av arduino IDE exempel
Tillämpas "LowPower library" i blinkkod
#include "LowPower.h" / / Importera lowpoer bibliotek
int ledde = 13.
void setup()
{
pinMode ledde (, OUTPUT);
}
void loop()
{
digitalWrite (ledde, högt);
LowPower.powerDown (SLEEP_1S, ADC_OFF, BOD_OFF); i stället för delay(1000);
digitalWrite (ledde, låg);
LowPower.powerDown (SLEEP_1S, ADC_OFF, BOD_OFF); i stället för delay(1000);
}
Innan du använder Lowpower biblioteket nuvarande fattas av arduino
51.7mA när ledde är på
47mA när ledde är OFF
Efter att ha använt Lowpower biblioteket nuvarande fattas av arduino
34.93mA när ledde är på
31.73mA när ledde är OFF
Är du glad att minska 32.43% effekt?? Hej finns det fortfarande utrymme att minska strömförbrukningen.
Din arduino ombord har olika makt sugande komponenter som power leds, spänningsregulator och USB-gränssnitt chip som tar de flesta av kraften även när den är inaktiv. Andra alternativ finns i nästa steg.