Comments 17
Для большей времени автономности лучше поставить 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
Прошивка:
Только не прошивка, а проект в данном случае. Прошивка - это ХЕКС файл (без исходных текстов), который записывается программатором или загрузчиком.
Рекомендую на будущее делать окошко под экран по стеклу ЖК дисплея, а не по его рамке. Выглядеть будет лучше.
А почему, раз делали плату, не развести сразу под впаивание не модуля в микроконтроллера ( там же обвязка его минимальная - 4 детали. Два конденсатора, кварц и резистор подтяжки сброса)
Чтоб дисплей смотрелся лучше, можно там где рамка металлическая - делать тонкую стенку корпуса, и он не будет сильно утоплен, и рамка скрыта будет. И скосы как на фото выше.
По идее плата с компонентами (даже выпаянными феном с модулей была б по размеру как дисплей, и ее можно было бы бутербродом сделать сзади дисплея, как сейчас висит плата i2c расширителя.
Спасибо за идеи, про рамку возьму на заметку! Целую Arduino оставил, т.к. это была одна из первых плат, которую делал, и на тот момент не задумался о разводке чисто под атмегу.
Уже в следующем проекте «Метеостанция» печатная плата как раз сделана размером с дисплей и прикреплена к нему бутербродом. Статья скоро будет выложена. Подписывайтесь, чтобы не пропустить)

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