Схема управления питанием микроконтроллера

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

Собственно есть собранный автономный подогреватель для детских бутылочек на литиевых аккумуляторах

микроконтроллер питается через аналоговый стабилизатор напряжения AMS1117-5.0

но есть один момент, какую бы индикацию не сделал бы что аккумулятор сдох и пора заряжать, это не гарантирует что про него просто не забудут

обычный выключатель тоже не вариант, если забыть выключить аккумулятор дохнет сильно, два последовательно разрядились до 0,9В((

есть неплохое решение

но для выключения получается понадобится еще одна кнопка, чтобы дать ардуине знать что я хочу выключить

интересует может кто знает аналогичные простые решения, но включение и отключение одной кнопкой

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

в данном случае планирую использовать AO4606, что достаточно удобно будет

звуковую индикацию тоже нельзя использовать по понятным причинам, да это тоже не гаратирует  что кто нибудь услышит

dimax
dimax аватар
Онлайн
Зарегистрирован: 25.12.2013

Вот тут что-то похожее обсуждали.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

спасибо, но к сожалению ни одно решение полностью не устроило. буду думать

gena
Offline
Зарегистрирован: 04.11.2012

 Вот я не сумел понять, что хочет топикстартер. Поподробнее пожалуста.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

нужна схема управления питанием одной кнопкой без фиксации: включить и выключить + микроконтроллер должен иметь возможность тоже отключить питание если например батарейка села

схема выше может только включатся с кнопки и отключатся микроконтроллером, самому не отключить если не добавить еще одну кнопку чтобы дать команду на отключение

dimax дал хорошую ссылку, но решения выглядят недостаточно хорошо

сам пока не придумал, точнее есть одна мысль. надо промоделировать

 

gena
Offline
Зарегистрирован: 04.11.2012

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

нет нельзя, микроконтроллер питается через линейный стабилизатор. КПД изза этого сильно падает

время работы например 3-5 часов в течении которого нужно поддерживать температуру, и потом либо вручную выключить или должен сам отключится если батарея села

inspiritus
Offline
Зарегистрирован: 17.12.2012

... у полевика в открытом состоянии имеется некоторое сопротивление, соответсвенно падение напряжение, при нажатии кнопки сопротивление =0. нажатие кнопки при открытом полевике можно отловить аналоговым входом или компаратором (на прерывание). если полевик имеет сверхмалое сопротивление добавьте измерительный резистор порядка 0.1 ома "внутри кнопки" , последовательно полевику.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

как вариант, но компаратор нужен либо очень точный + точные резисторы+точный источник образцового напряжения, но очень сомнительно на таких низких уровнях сигнала, соответственно усилитель ставить. пока выходит проще еще одну кнопку поставить

промоделирую одну задумку и выложу если она будет работать

faraddin
Offline
Зарегистрирован: 11.08.2013

Видел на прошлой неделе, что то подобное, возможно даже на этом форуме. Там использовалась кнопка, резистор, кондер, и логический элемент типа не-или или что то такое, точно не вспомню. Смысл в том, что кнопка подавала 1 на этот элемент и он на выходе получая единицу сам поддерживал свое питание. При повторном посыле 1 сбрасывался на 0. Моделировал в протеусе, все работало.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

схему приложи. посмотрим. но приблизительно понял что имеется в виду

faraddin
Offline
Зарегистрирован: 11.08.2013

Да не могу я ее приложить, было из серии "увидел, смоделировал, забыл". Хотя дома посмотрю, может и сохранил.

gena
Offline
Зарегистрирован: 04.11.2012

  Кнопку на логическом элементе собирал много (много) лет назад. Работало естественно. В частности см. книгу автора В.Л. Шило " Популярные цифровые микросхемы",  1987 г., Москва, "Радио и связь". Страница 217, рис. 2.20 ж.  А вообще, не мешало бы нарисовать схему, в которой  у Вас возникают схемотехнические проблемы. Иначе сложно дать совет.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

наверно имеешь в виду д-триггер. а на входе кнопка и выход микроконтроллера. и можно управлять тем или другим

gena
Offline
Зарегистрирован: 04.11.2012

  Пришло время рисунков, гадать сложно.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

пересмотрел предложенные схемы в статье, которую дал dimax

в принципе эта неплохая

 

gena
Offline
Зарегистрирован: 04.11.2012

  Диод VD1 думаю лишний (заменяется перемычкой). Рассуждаю дальше: замкнули S1 -> открылся VT1 -> запиталась вся схема -> микроконтроллер подал логическую единицу на провод "Упр" и тем самым "подхватил" нажатие кнопки S1. Микроконтроллер выполнил свою задачу и подав логический ноль на провод "Упр" закрыл транзистр VT2, а он, в свою очередь, закрыл транзистор VT1 -> вся схема обесточилась. Это нужно? Или нужен ещё контроль состояния источника питания "+Uпит"?  

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

неа. в мк делается подтяжка, иначе микроконтроллер не будет считывать состояние кнопки

если убрать vd1 ток с подтяжки потечен через vd2 и открытый полевик. так как сопротивление открытого полевика очень низкое, нажатие кнопки вообще не будет отслеживаться

а вообще vd1 и vd2 будет диодная сборка bav70 в корпусе sot-23, а vt1 и vt2 полевая сборка ao4606 в so-8. получается минимум деталей, а также мало занимаемого места на плате

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да все так, но еще нужно чтобы от этой же кнопки можно было подать сигнал микрокнтроллеру выключится

итого получается у схемы включение только от кнопки, а выключение либо от кнопки или по условиям программы, в моем случае снижение напряжения до 6В

то что ты предлагаешь может и схема в 1 посте делать. по сути одно и тоже, только ток вначале идет не через полевик а через кнопку

gena
Offline
Зарегистрирован: 04.11.2012

  Про диод VT1 я пожалуй поторопился (исправлять сообщение не буду) - не ясна пока дальнейшая схема.

Согласен с #18.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

кстати забыл написать. почти сутки работал только микроконтроллер мега8 8мгц и датчик ds18b20. опрос постоянный

питание 2 литиевых аккумулятора последовательно емкостью 2200 (думаю уже емкость меньше) и линейный стабилизатор

напряжение за сутки упало с 8,24В до 7,83В

 

faraddin
Offline
Зарегистрирован: 11.08.2013

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ну да д триггер

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

проверил эту схему в железе

вот что получилось. для включения или отключения нужно подержать 4 секунды, короткие нажатия не включают или не отключают, хоть и питание подается если держать кнопку, но это изза схемы

http://www.youtube.com/watch?v=FszEaa_jJQE

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да кстати самое главное. потребление в выключенном состоянии 0,3мкА

dimax
dimax аватар
Онлайн
Зарегистрирован: 25.12.2013

jeka_tm, я не понял, выдержка перед срабатыванием это не ваше дополнение, а случайность?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

в смысле? выдержка задается программой в микроконтроллере

dimax
dimax аватар
Онлайн
Зарегистрирован: 25.12.2013

jeka_tm, фраза "но это из-за схемы" ввела в сомнение..

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013
питание подается если держать кнопку, но это изза схемы

 

dimax
dimax аватар
Онлайн
Зарегистрирован: 25.12.2013

jeka_tm, да если разбить фразу, то смысл меняется. Но ваша  первоначальная фраза построена так: "1й факт",  "2й факт", "дополнение к 2 му факту", "причина".  Откуда же тут следует что на "факт 1" не распространяется причина? )

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

axill
Offline
Зарегистрирован: 05.09.2011

что то выглядит как то очень сложно. может я что-то не понял

без всяких ключей подключаем кнопку к МК, МК реализует триггер включить/выключить

когда выключаемся переходим в режим power_down отключив всю переферию, согласно даташиту должны получить потребление < 0.1мкА

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

честно сказать я не умею в режимы всякие вводить микроконтроллер, сделал так как могу

да и ничего сложного. деталей нет почти

axill
Offline
Зарегистрирован: 05.09.2011

это не сложно)) загнать МК в глубокий сон просто, достаточно прочитать даташит на МК и опимание avr-libc

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

даташит для меня до сих пор тьма непроглядная. уж больно дофига всего

приведи пример кода перемести мк в сон и с просыпанием по прерыванию по пину или через опеределенное время. первое оптимальнее

но все равно разница будет только в отсуствии диодной сборки по железу

dimax
dimax аватар
Онлайн
Зарегистрирован: 25.12.2013

axill, так у него ж питание через стабилизатор линейный, с ним как быть?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

axill
Offline
Зарегистрирован: 05.09.2011

ams1117 выбросить)) он жрет 10ма как три МК на полной мощности

поставить нормальный с входом Enable

или даже как вариант сделать питание без стабилизатора от одного lion

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

с enable хз чем тут поможет. как мк проснется и даст сигнал на enable если мк без питания

а вот с одного можно запитать

а вообще схема заслуживает внимания. если на эту же кнопку добавить просты функции например короткое нажатие или 2 коротких, то можно добавить функционала для простых устройств

axill
Offline
Зарегистрирован: 05.09.2011

enable нужен на случай большого разряда батарей, дальнейшее включение только по кнопке поключенной паралельно enable (туда же включен МК)

но от одного lion даже лучше. причем если нужно, то нагрузку можно и от двух питать, а МК от одного, но без стабилизатора

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да. но осталось найти код спящего режима с просыпанием по прерыванию с пина

axill
Offline
Зарегистрирован: 05.09.2011
#include <avr/sleep.h>
....
//код засыпания, перед ним нужно настроимть прерывания INT0/INT1 или PCINT

				set_sleep_mode(SLEEP_MODE_PWR_DOWN);
				sei();
				sleep_enable();
				sleep_cpu(); 
				sleep_disable();

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

и как это использовать? извини либо нужен целиковый пример, либо оставить как есть

так он засыпает. а как просыпается?

axill
Offline
Зарегистрирован: 05.09.2011

Просыпается он по событиям внешних прерываний. Настройка внешних прерываний описана в даташите. Там все просто. Ну или примените ардуиновские библиотеки. Для INT0/1 есть attachInterrupt

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Перед сном ещё нужно АЦП отключить и компаратор.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

да ну нафиг. останусь при своем

axill
Offline
Зарегистрирован: 05.09.2011

Ну так дело хозяйское) делайте как хотите

мне лично было интересно освоить режимы низкого потребления. Причем освоить не копированием без понимания чужих примеров, а разобравшись в основах для чего и изучал даташит и руководство для основной библиотеки AVR - avr-gnulibc

Для примера из опубликованных http://radiokot.ru/circuit/digital/game/48 и http://radiokot.ru/circuit/digital/game/41/

в последнем есть исходники. Не ардуино ни разу, но сути это не меняет

оба устройства проверены на практике - каждое уже много месяцев живет во сне, батарейки живые. Даже в детских туфлях где источником питания малюсенький lion на заявленные 120мАЧ (скорее всего раза в два меньше...китай). Просыпаются по требованию, светофор по нажатию кнопки, детские туфли по срабатыванию датчика вибрации который по сути тоже кнопка. В обоих случаях нажатие/срабатывание вызывает внешнее прерывание которое пробуждает МК из сна

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

а вот так ?

http://danyk.cz/zap-vyp_en.html

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

неплохо, только управление по минусу, микроконтроллер надо цеплять еще как то, просто включить отключить без защиты в моем устройстве не подойдет

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

ну дык а поменять тразисторы полярностью с р на n