
Комментарии 14
Для большей времени автономности лучше поставить e-Ink экран. Если пробуждать МК только при опускании монеты, поставив на входе микро-переключатель с рычагом, то в остальное время МК может спать. В этом случае зарядка не потребуется вовсе.
На мой любительский вкус часть отвечающая за заряд, - переусложнена. Зарядку и защиту можно и на готовых модулях было реализовать, а еще проще перейти на 3.7В аккум со встроенной защитой или совсем отказаться от зарядки.
И да, выбранный МК жирноват для подобной задачи.
Спасибо за развернутый комментарий!
Да, e-lnk экран поможет сохранить заряд, но мне больше по душе LCD1602) Пришлось для большей яркости и контрастности 1602 добавить повышающий преобразователь до 5в. Пусть схема чуть сложнее, зато результат именно такой, как хотелось.
Почти всё время мк проводит в режиме глубокого сна
(LowPower.powerDown(SLEEP_FOREVER, ADC_OFF, BOD_OFF);Внутри монетоприемника приклеены две полоски металла - они работают как контакты. При опускании монеты контакты замыкаются. Это замыкание вызывает аппаратное прерывание:
attachInterrupt(0, wake_up, CHANGE);Функция
wake_upвключает периферию и сбрасывает таймер:void wake_up() { digitalWrite(disp_power, 1); // Включить дисплей digitalWrite(LEDpin, 1); // Включить подсветку digitalWrite(IRpin, 1); // Включить датчик standby_timer = millis(); // Сбросить таймер ожидания }После пробуждения выполнение возвращается в основной цикл. Здесь система проверяет флаг
sleep_flag— индикатор того, что система только что вышла из сна. Если флаг поднят, значит, дисплей был обесточен и требует полной переинициализации: вызываетсяlcd.init(), после чего на него выводится актуальная информация. Затем флаг сбрасывается вfalse, и система переходит к распознаванию монет.В статье упустил упоминание этого момента.
Схема для заряда взята с данного популярного модуля. Перенес её на пп, чтобы не навешивать целый модуль отдельно.

Да, можно было поставить аккумулятор со встроенной защитой — тогда из схемы можно было бы исключить DW01A и его обвязку
Тут вы абсолютно правы: Arduino для такой задачи великовата, однако наличие нескольких штук в запасе перевесило аргументы в пользу перехода на другой мк)
Зачем вообще здесь аккумулятор и этот огород с повышателями/защитами? 2 или 3 ААА и ни о чём не думай. Или тогда и писать нечего?
Можно и на AAA, конечно. Но при питании LCD1602 от батареек он становится тусклым и плохо читаемым. Здесь же повышайка держит стабильные 5В, и экран светит ярко до самого конца заряда. Плюс мне было интересно разобраться с платой защиты и повышайкой. Проект учебно-показательный, так что «огород» — осознанная часть процесса)
красиво и аккуратно всё реализовано.
разве что желто-зеленый индикатор выглядел бы симпатичнее.
Спасибо за статью и проект (точнее за доработку имеющегося). Оставь ссылочку на диск с исходниками, в идеале гитхаб
Вот исходники (прошивка, корпус, печатная плата): https://github.com/Andrey3245/Project-2-Smart-moneybox
Прошивка:
Только не прошивка, а проект в данном случае. Прошивка - это ХЕКС файл (без исходных текстов), который записывается программатором или загрузчиком.
Рекомендую на будущее делать окошко под экран по стеклу ЖК дисплея, а не по его рамке. Выглядеть будет лучше.

Копилка монет на Arduino