Контроллер с минимальным потреблением
- Войдите на сайт для отправки комментариев
Всем доброго дня.
Для начала опишу свой проект и трудности с ним.
Собственно это простой автоматический ночник, но есть нюанс :)
Логика его следующая, он включается на минуту только если в комноте потушили свет, при очень плавном затемнении он не сработает. И второе, он работает на батарейках, это важно.
В борьбе за микроамперы сделал на аттини85, думал будет меньше чем атмега, но нет, в чистом виде при 5В есть 8 мА, что очень много. Хотелось бы, чтоб на одном комплекте АА он мог протянуть не меньше года.
Вопросы вот какие, можно ли уменьшить потребение без режим сна.
Будет ли смысл от сна на 250 мсек, ночник мониторит ошвещение раз в 250 мсек. в полсекунды уже появляется неприятная задержка.
Или может возможно собрать подобное без МК?
попробуйте уточнить, что занчит "потушили быстро"
т.е. это должно быть Время за которое сигнал с датчика изменился от сих до сих
можно ли уменьшить потребение без режим сна.
1. Поставьте на микроконтроллер часовой кварц 32 КГц и сделайте это частоту системной тактовой частотой.
2. Поставьте микромощный линейный регулятор с током потребления порядка 1 мкА на 2...2.5В и сделайте это напряжение основным напряжением питания.
Ток потребления пропорционален тактовой частоте и напряжению питания. Выполнив пп. 1 и 2, вы получите ток потребления порядка 20..50 мкА.
попробуйте уточнить, что занчит "потушили быстро"
т.е. это должно быть Время за которое сигнал с датчика изменился от сих до сих
Да, он срабатывает только если свет был выключен и стало достаточно темно.
1. Поставьте на микроконтроллер часовой кварц 32 КГц и сделайте это частоту системной тактовой частотой.
2. Поставьте микромощный линейный регулятор с током потребления порядка 1 мкА на 2...2.5В и сделайте это напряжение основным напряжением питания.
Ток потребления пропорционален тактовой частоте и напряжению питания. Выполнив пп. 1 и 2, вы получите ток потребления порядка 20..50 мкА.
Спасибо, выглядит обещающе, ток в 50 мкА был бы отличным результатом.
Уже просто снизив нитание до 3.3В и понизив частоту до 1МГц я получил 1.5 мА
Просто я использую Ардуино IDE с готовыми настройками для тини85, а там минимальная 1МГц.
Тогда вопрос, можно ли в качестве этого регулятора использовать цепочку диодов, потому как с 1117 снижения тока нет, видимо он что то "подъедает"?
Что подъедает?
Вы когда-нибудь что-нибудь слышали про падение напряжения?
Тогда вопрос, можно ли в качестве этого регулятора использовать цепочку диодов, потому как с 1117 снижения тока нет, видимо он что то "подъедает"?
а зачем вам вообще регулятор? - питайте напрямую от батарейки
Тогда вопрос, можно ли в качестве этого регулятора использовать цепочку диодов
Не советую. Купите малопотребляющий регулятор, их множество: MIC5265, AP2138, MCP1711, STLQ020, XC6215, NCP553SQ, TPS78225, и т.д. и т.п.
а зачем вам вообще регулятор? - питайте напрямую от батарейки
Тоже вариант. Две свежие батарейки АА как раз дадут 3В, а разряженные - не менее 2В.
А я бы сразу посчитал, что больше скажется на сроке жизни батарей - потребление контроллера в режиме ожидания или потребление светодиодов за время свечения подсветки. Еще не понял это "Будет ли смысл от сна на 250 мсек, ночник мониторит ошвещение раз в 250 мсек. в полсекунды уже появляется неприятная задержка. " Откуда полсекунды? Мы спим 250мсек, проснулись, отмониторили состояние датчика и сново спим. Кстати если датчик показывает что темно, то можна спать и подольше, резко свет не выключат;)
Собрать на рассыпухе вполне возможно, нужен одновибратор, например на 555, запускаемый сигналом с дифференцирующей цепочки.
Просто я использую Ардуино IDE с готовыми настройками для тини85, а там минимальная 1МГц.
вот только что собрал датчик на Тиньке85, настройки из Ардуино ИДЕ, 1МГц. Потребление в спящем режиме порядка 8-10 мкА. Это я к тому, что Ардуино ИДЕ не мешает делать экономичные девайсы.
вот только что собрал датчик на Тиньке85, настройки из Ардуино ИДЕ, 1МГц. Потребление в спящем режиме порядка 8-10 мкА. Это я к тому, что Ардуино ИДЕ не мешает делать экономичные девайсы.
Согласен, просто я говорил о том, что минимально я могу выставить 1МГц, но с засыпанием все должно работать. Должно, а вот не работает. Тут очевидно недостаток моих знаний, я очень слабо разбираюсь в МК и биты, делители, сдвиги регистров- мне сложно понять.
Вот к примеру попробовал это скетч https://github.com/enjoyneering/Arduino_Deep_Sleep/blob/master/arduino_deep_sleep.ino
Думал, сейчас подставлю свою функцию и будет как надо. Но почему то н зарабтало. Если я ставлю множетель 1
то оно работает, но время почти в два раза дольше, а если 4 или 8 то вообще не работает.
Далее, не работает delay(), то есть там где всетодиод должен гореть три секунды, он загорается на секунду, а если выстовить частоту 16МГц, то просто мигнет. Причем, даже если я поставлю delay(100000) все равно горит секунду.
там есть две закоментированные строчки
вот с ними delay() работает как надо
Правильно ли я понимаю, что в этом месте
мне нужно вызывать мою функцию, в главном цикле оставить arduino_sleep(); а строчку с счетчиком просто убрать и использовать сторожевой таймер с нужной мне (250мс) задержкой?
Но минимально у меня получилось 250мкА, и то, пришлось, пока, убрать фоторезистор, с ним еще +200мкА, поменяю на 100кОм.
А я бы сразу посчитал, что больше скажется на сроке жизни батарей - потребление контроллера в режиме ожидания или потребление светодиодов за время свечения подсветки. Еще не понял это "Будет ли смысл от сна на 250 мсек, ночник мониторит ошвещение раз в 250 мсек. в полсекунды уже появляется неприятная задержка. " Откуда полсекунды? Мы спим 250мсек, проснулись, отмониторили состояние датчика и сново спим. Кстати если датчик показывает что темно, то можна спать и подольше, резко свет не выключат;)
Собрать на рассыпухе вполне возможно, нужен одновибратор, например на 555, запускаемый сигналом с дифференцирующей цепочки.
Смысл есть, за сутки он срабатывает раза 2-3 максимум.
Я имел в виду, что если спать подольше, скажем полсекунды, то он сработает примерно с этой же задержкой.
А вот идея увеличить паузу в темноте просто отличная, более того это исключит его срабатывание от случайного света, как то фары в окно или еще что.
Вы только не поймите, что я тупо уперся рогом в конкретный девайс сомнительного функционала, но в плане обучения новым возможностям самое оно.
Что бы на фото резистор не сильно реагировало потребление - пин в режиме входа без подтягивающего резистора?
А wdt на 250 мсек к бывает?
Кстати, интересна схожая тема. Видел библиотеку, которая вводит плату в глубокий сон и просыпается по датчику, линк не могу найти.
Нашёл, на английском правда.
"How to Run an Arduino for Years on a Battery"
https://openhomeautomation.net/arduino-battery/
Вкратце, предлагается использовать чип Atmega328PU (P - низкое энергопотребление) без адруины, но можно и на любом. И библиотеку JeeLib для оптимизации. Он использует датчик движения для активации и получились следующие цифры:
Кстати, интересна схожая тема. Видел библиотеку, которая вводит плату в глубокий сон и просыпается по датчику, линк не могу найти.
для этого не нужна никакая особая библиотека, это штатный режим микроконтроллера. Открываете даташит, страница 367 - и видите в табличке: Atmega328, VCC 3v, PowerDown mode -от 4 до 15мкА
А библиотека ваша расходует примерно в 5-10 раз больше.
Да проще все - читаем тему про attiny13 - там примеров спящего режима вагон.