Arduino nano слетает прошивка при разряде батареи

skyspirit
Offline
Зарегистрирован: 27.02.2015

Подскажите как можна боротся с тем что  устройство питаеться  от литиевого акумулятора 3,7в, виводит данные на экран но если не выключать и довести до поллного разряда сначала экран из за малого напряжения тускнеет потом вырубаеться, и при заряде акума не включаеться и помогает только перезалить прошивку. Данная ардуино нано питаеться от 5в, но в моем случаи и при 3,7 работает, можно ли увеличить время работы устройства если использовать Arduino Pro Mini 3.3V и как недоводить до слета прошивки из за малого напряжения ???

 

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Прошивка не может слетать при низком питании, может только перестать функционировать МК.

skyspirit пишет:
и при заряде акума не включаеться и помогает только перезалить прошивку

Кнопку reset после восстановления питания пробовали нажимать?

Гриша
Offline
Зарегистрирован: 27.04.2014

Jeka_M пишет:
Прошивка не может слетать при низком питании, может только перестать функционировать МК.
skyspirit пишет:
и при заряде акума не включаеться и помогает только перезалить прошивку
Кнопку reset после восстановления питания пробовали нажимать?

вот здесь немного в продолжение http://chipinfo.ru/literature/chipnews/200105/12.html

skyspirit
Offline
Зарегистрирован: 27.02.2015

Проверил, ресет точно не помогает, так что прошивка таки слетает :)

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

skyspirit, а дайте-ка ваши фузы в студию посмотреть. Вот этот скетчик выудит их без программатора, напишите что выведется в сериал монитор.

#include <avr/boot.h>
#define SIGRD 5
void setup(){
Serial.begin(9600);  
 Serial.print("Signatura= ");
Serial.print(boot_signature_byte_get(0),HEX); 
Serial.print(boot_signature_byte_get(2),HEX); 
Serial.println(boot_signature_byte_get(4),HEX); 
Serial.print("Fuses(l/h/ext)= ");
Serial.print(boot_lock_fuse_bits_get(GET_LOW_FUSE_BITS),HEX);
Serial.print(boot_lock_fuse_bits_get(GET_HIGH_FUSE_BITS),HEX);
Serial.println(boot_lock_fuse_bits_get(GET_EXTENDED_FUSE_BITS),HEX);
}


void loop(){}

 

skyspirit
Offline
Зарегистрирован: 27.02.2015

вот что выдало 

Signatura= 1E95F    Fuses(l/h/ext)= FFDAF8

 
dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

skyspirit, у вас фузами отключен контроль за питанием, поэтому и слетает прошивка при просадке напряжения. Правда если у вас 16Mhz про мини, то для неё всё равно 3,6 вольта маловато.  Лучше брать 8-мегагерцовую модель, и brown-out выставлять на 2,7 вольта, тогда можно питаться напрямую от литиевого аккума  без забот.

skyspirit
Offline
Зарегистрирован: 27.02.2015

Да у меня 16 нано но я подумовал про єто чтоб взять 3в  8МГц а не будет ли заметно хуже работать устройство если будет 8МГц мне надо чтоб резкие перепады давления выводило на экран с задержкой не меньше 0.1 секунды это высотомер в пилотажный самолет например, или парашютный высотомер?

kayot
kayot аватар
Offline
Зарегистрирован: 11.04.2014

была у меня такая фигня ребенку робота делал

вот если питание выключить и потолкать по полу робота (он на гусиницах)

то прошивка слетала иногда даже с бутлоадером

программатором шить приходилось

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

skyspirit, проще проверить, чем гадать. Скорее всего никак не скажется на скорости работы.

skyspirit
Offline
Зарегистрирован: 27.02.2015

Благодарю, многие вопросы прояснились :)

Тогда вопрос следующий, как програмно можно сделать тест разряда батареи, или вообще простой аналоговый светодиодный индикатор который при низком заряде будет гореть, если есть какие то решения то киньте схемки ;)?

kayot
kayot аватар
Offline
Зарегистрирован: 11.04.2014

кр1274сп29 срабатывает от 2.9 вольта

maksim
Offline
Зарегистрирован: 12.02.2012

Не нужно никаких схем, измеряйте напряжение питания контроллера и зажигайте светодиод. 
http://arduino.ru/forum/apparatnye-voprosy/kak-izmerit-arduino-mini-napryazhenie-svoego-pitaniya-menshee-33v#comment-103020