Схема управления питанием микроконтроллера
- Войдите на сайт для отправки комментариев
Вс, 16/11/2014 - 20:27
Собственно есть собранный автономный подогреватель для детских бутылочек на литиевых аккумуляторах
микроконтроллер питается через аналоговый стабилизатор напряжения AMS1117-5.0
но есть один момент, какую бы индикацию не сделал бы что аккумулятор сдох и пора заряжать, это не гарантирует что про него просто не забудут
обычный выключатель тоже не вариант, если забыть выключить аккумулятор дохнет сильно, два последовательно разрядились до 0,9В((
есть неплохое решение
но для выключения получается понадобится еще одна кнопка, чтобы дать ардуине знать что я хочу выключить
интересует может кто знает аналогичные простые решения, но включение и отключение одной кнопкой
в данном случае планирую использовать AO4606, что достаточно удобно будет
звуковую индикацию тоже нельзя использовать по понятным причинам, да это тоже не гаратирует что кто нибудь услышит
Вот тут что-то похожее обсуждали.
спасибо, но к сожалению ни одно решение полностью не устроило. буду думать
Вот я не сумел понять, что хочет топикстартер. Поподробнее пожалуста.
нужна схема управления питанием одной кнопкой без фиксации: включить и выключить + микроконтроллер должен иметь возможность тоже отключить питание если например батарейка села
схема выше может только включатся с кнопки и отключатся микроконтроллером, самому не отключить если не добавить еще одну кнопку чтобы дать команду на отключение
dimax дал хорошую ссылку, но решения выглядят недостаточно хорошо
сам пока не придумал, точнее есть одна мысль. надо промоделировать
А разве нельзя микроконтроллер держать в режиме Sleep (или другом маломощном режиме), и по прерыванию от кнопки будить его для нужных действий, а потом он снова засыпает?
нет нельзя, микроконтроллер питается через линейный стабилизатор. КПД изза этого сильно падает
время работы например 3-5 часов в течении которого нужно поддерживать температуру, и потом либо вручную выключить или должен сам отключится если батарея села
... у полевика в открытом состоянии имеется некоторое сопротивление, соответсвенно падение напряжение, при нажатии кнопки сопротивление =0. нажатие кнопки при открытом полевике можно отловить аналоговым входом или компаратором (на прерывание). если полевик имеет сверхмалое сопротивление добавьте измерительный резистор порядка 0.1 ома "внутри кнопки" , последовательно полевику.
как вариант, но компаратор нужен либо очень точный + точные резисторы+точный источник образцового напряжения, но очень сомнительно на таких низких уровнях сигнала, соответственно усилитель ставить. пока выходит проще еще одну кнопку поставить
промоделирую одну задумку и выложу если она будет работать
Видел на прошлой неделе, что то подобное, возможно даже на этом форуме. Там использовалась кнопка, резистор, кондер, и логический элемент типа не-или или что то такое, точно не вспомню. Смысл в том, что кнопка подавала 1 на этот элемент и он на выходе получая единицу сам поддерживал свое питание. При повторном посыле 1 сбрасывался на 0. Моделировал в протеусе, все работало.
схему приложи. посмотрим. но приблизительно понял что имеется в виду
Да не могу я ее приложить, было из серии "увидел, смоделировал, забыл". Хотя дома посмотрю, может и сохранил.
Кнопку на логическом элементе собирал много (много) лет назад. Работало естественно. В частности см. книгу автора В.Л. Шило " Популярные цифровые микросхемы", 1987 г., Москва, "Радио и связь". Страница 217, рис. 2.20 ж. А вообще, не мешало бы нарисовать схему, в которой у Вас возникают схемотехнические проблемы. Иначе сложно дать совет.
наверно имеешь в виду д-триггер. а на входе кнопка и выход микроконтроллера. и можно управлять тем или другим
Пришло время рисунков, гадать сложно.
пересмотрел предложенные схемы в статье, которую дал dimax
в принципе эта неплохая
Диод VD1 думаю лишний (заменяется перемычкой). Рассуждаю дальше: замкнули S1 -> открылся VT1 -> запиталась вся схема -> микроконтроллер подал логическую единицу на провод "Упр" и тем самым "подхватил" нажатие кнопки S1. Микроконтроллер выполнил свою задачу и подав логический ноль на провод "Упр" закрыл транзистр VT2, а он, в свою очередь, закрыл транзистор VT1 -> вся схема обесточилась. Это нужно? Или нужен ещё контроль состояния источника питания "+Uпит"?
неа. в мк делается подтяжка, иначе микроконтроллер не будет считывать состояние кнопки
если убрать vd1 ток с подтяжки потечен через vd2 и открытый полевик. так как сопротивление открытого полевика очень низкое, нажатие кнопки вообще не будет отслеживаться
а вообще vd1 и vd2 будет диодная сборка bav70 в корпусе sot-23, а vt1 и vt2 полевая сборка ao4606 в so-8. получается минимум деталей, а также мало занимаемого места на плате
да все так, но еще нужно чтобы от этой же кнопки можно было подать сигнал микрокнтроллеру выключится
итого получается у схемы включение только от кнопки, а выключение либо от кнопки или по условиям программы, в моем случае снижение напряжения до 6В
то что ты предлагаешь может и схема в 1 посте делать. по сути одно и тоже, только ток вначале идет не через полевик а через кнопку
Про диод VT1 я пожалуй поторопился (исправлять сообщение не буду) - не ясна пока дальнейшая схема.
Согласен с #18.
в смысле дальнейшая схема? дальше может быть почти что угодно. у меня подогреватель. но не суть. тема не об этом. такое любой тут сделать может, описывать даже смысла нет
кстати забыл написать. почти сутки работал только микроконтроллер мега8 8мгц и датчик ds18b20. опрос постоянный
питание 2 литиевых аккумулятора последовательно емкостью 2200 (думаю уже емкость меньше) и линейный стабилизатор
напряжение за сутки упало с 8,24В до 7,83В
ну да д триггер
проверил эту схему в железе
вот что получилось. для включения или отключения нужно подержать 4 секунды, короткие нажатия не включают или не отключают, хоть и питание подается если держать кнопку, но это изза схемы
http://www.youtube.com/watch?v=FszEaa_jJQE
да кстати самое главное. потребление в выключенном состоянии 0,3мкА
jeka_tm, я не понял, выдержка перед срабатыванием это не ваше дополнение, а случайность?
в смысле? выдержка задается программой в микроконтроллере
jeka_tm, фраза "но это из-за схемы" ввела в сомнение..
jeka_tm, да если разбить фразу, то смысл меняется. Но ваша первоначальная фраза построена так: "1й факт", "2й факт", "дополнение к 2 му факту", "причина". Откуда же тут следует что на "факт 1" не распространяется причина? )
да ладно забей. разобрались уже. да и если схему посмотреть выдержке просто неоткуда взятся. ты то вроде читать схемы умеешь и должен был понять
что то выглядит как то очень сложно. может я что-то не понял
без всяких ключей подключаем кнопку к МК, МК реализует триггер включить/выключить
когда выключаемся переходим в режим power_down отключив всю переферию, согласно даташиту должны получить потребление < 0.1мкА
честно сказать я не умею в режимы всякие вводить микроконтроллер, сделал так как могу
да и ничего сложного. деталей нет почти
это не сложно)) загнать МК в глубокий сон просто, достаточно прочитать даташит на МК и опимание avr-libc
даташит для меня до сих пор тьма непроглядная. уж больно дофига всего
приведи пример кода перемести мк в сон и с просыпанием по прерыванию по пину или через опеределенное время. первое оптимальнее
но все равно разница будет только в отсуствии диодной сборки по железу
axill, так у него ж питание через стабилизатор линейный, с ним как быть?
кстати да. не вариант получается. остаюсь при своем решении
ams1117 выбросить)) он жрет 10ма как три МК на полной мощности
поставить нормальный с входом Enable
или даже как вариант сделать питание без стабилизатора от одного lion
с enable хз чем тут поможет. как мк проснется и даст сигнал на enable если мк без питания
а вот с одного можно запитать
а вообще схема заслуживает внимания. если на эту же кнопку добавить просты функции например короткое нажатие или 2 коротких, то можно добавить функционала для простых устройств
enable нужен на случай большого разряда батарей, дальнейшее включение только по кнопке поключенной паралельно enable (туда же включен МК)
но от одного lion даже лучше. причем если нужно, то нагрузку можно и от двух питать, а МК от одного, но без стабилизатора
да. но осталось найти код спящего режима с просыпанием по прерыванию с пина
и как это использовать? извини либо нужен целиковый пример, либо оставить как есть
так он засыпает. а как просыпается?
Просыпается он по событиям внешних прерываний. Настройка внешних прерываний описана в даташите. Там все просто. Ну или примените ардуиновские библиотеки. Для INT0/1 есть attachInterrupt
Перед сном ещё нужно АЦП отключить и компаратор.
да ну нафиг. останусь при своем
Ну так дело хозяйское) делайте как хотите
мне лично было интересно освоить режимы низкого потребления. Причем освоить не копированием без понимания чужих примеров, а разобравшись в основах для чего и изучал даташит и руководство для основной библиотеки AVR - avr-gnulibc
Для примера из опубликованных http://radiokot.ru/circuit/digital/game/48 и http://radiokot.ru/circuit/digital/game/41/
в последнем есть исходники. Не ардуино ни разу, но сути это не меняет
оба устройства проверены на практике - каждое уже много месяцев живет во сне, батарейки живые. Даже в детских туфлях где источником питания малюсенький lion на заявленные 120мАЧ (скорее всего раза в два меньше...китай). Просыпаются по требованию, светофор по нажатию кнопки, детские туфли по срабатыванию датчика вибрации который по сути тоже кнопка. В обоих случаях нажатие/срабатывание вызывает внешнее прерывание которое пробуждает МК из сна
а вот так ?
http://danyk.cz/zap-vyp_en.html
неплохо, только управление по минусу, микроконтроллер надо цеплять еще как то, просто включить отключить без защиты в моем устройстве не подойдет
ну дык а поменять тразисторы полярностью с р на n