Странности со сном на Pro mini

ykropchik22
Offline
Зарегистрирован: 30.05.2017

Всем привет!

Я, как и большенство в какой-то момент, столкнулся с проблемой энергопотребления. Присутствует ардуино про мини (5 вольт, 16Мгц) и несколько датчиков, но они здесь роли не играют (так как к питанию они подключенны отдельно). Вообщем, на про мини заливается скетч и в момент пока этот скетч крутится в лупе она ест около 19-20 мА. Полазил по форумам посмотрел про сон и нашел библиотеку "low power master". Написал маленький скетч для проверки энергопотребления в спящем режиме 

//Тот самый маленький скетч

#include "LowPower.h"

void setup()
{
    Serial.begin(9600);
}

void loop() 
{
    Serial.println("Hello");
    delay(1000);
    Serial.println("Sleep");
    delay(1000);

    
    // Enter power down state for 8 s with ADC and BOD module disabled
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);  
    
    // Do something here
    // Example: Read sensor, data logging, data transmission.

}

И тут пошли странности потребление в момент сна осталось таким же 19-20 мА, а в момент бодрствования увеличилось до 34мА...

Подумал что не рабочая библиотека, все тоже самое проделываю с Ардуино нано, с тем же скетчем на опрос датчиков потребляет 20-21 мА. Загружаю "тот самый маленький скетч", потребление во время сна снижается до 6 мА, когда бодрствует не изменяется... Значит проблема не с библиотекой, а с прошкой. Долго искал в инете в чем причина так и не нашел. Кто сталкивался или знает в чем причина объясните, может быть это я дурак и в скетче налажал. Заранее спасибо!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Те pro-mini, что я видел сделаны на 168-ом контроллере, а современные Нано в основном на 328-ом. Если у Вас всё так, то, скорее всего, Ваша библиотека не поддерживает 168-ой контроллер, или поддерживает криво.

sadman41
Offline
Зарегистрирован: 19.10.2016

Сейчас промини тоже на 328-м пилят. Да и в библиотечке такое вот:

#if defined (__AVR_ATmega328P__) || defined (__AVR_ATmega168__)
void	LowPowerClass::idle(...) {
...

Но, как вариант, - на данной промини стоит неведомый стабилизатор из китайской деревни или еще что-нибудь, что меньше жрать просто не умеет.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Это у Вас библиотека "такая вот", а у меня другая - попроще :(  Какая у ТС - ХЗ, он предпочёл это от нас скрыть :)))

ykropchik22
Offline
Зарегистрирован: 30.05.2017

Ну в одном из примеров написанно, что и 328, и 168 поддерживаются

  // ATmega328P, ATmega168
  LowPower.idle(SLEEP_8S, ADC_OFF, TIMER2_OFF, TIMER1_OFF, TIMER0_OFF, 
                SPI_OFF, USART0_OFF, TWI_OFF);

Моя про мини на 328 (как и нанка) поэтому было бы странно, что библиотека не поддерживается...

Видимо, эта аномалия останется без объяснения :)