В основе этого давнего DIY проекта — известная копилка от AlexGyver. Я решил не просто повторить, а довести идею до ума: напечатал новый корпус на 3D-принтере, переработал схему, развел печатную плату и изготовил её вручную. Что из этого вышло — читайте в статье!

Принцип работы

В основе лежит метод оптического прерывания. При прохождении монеты через луч инфракрасного светодиода она частично перекрывает излучение, направленное на фототранзистор. Чем меньше диаметр монеты, тем меньше перекрытие: 1 рубль дает минимальное падение напряжения на фототранзисторе, 5 рублей — максимальное.

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

В процессе работы устройство подсчитывает количество монет каждого номинала и умеет выводить итоговый отчет.

Исходники на GitHub

Принципиальная схема

Зарядный модуль

Зарядный модуль для аккумулятора 18650 реализован по классической схеме с использованием 3-х микросхем:

  • TP4056 — заряжает аккумулятор стабильным током до 1 А до достижения 4,2 В;

  • DW01A — контроллер защиты отслеживает напряжение на аккумуляторе и ток через нагрузку, обеспечивая защиту от переразряда ниже 2,4 В, перезаряда выше 4,3 В и перегрузки по току (КЗ);

  • FS8205A - сдвоенный N-канальный MOSFET, который разрывает цепь между аккумулятором и схемой по сигналу от DW01A (при переразряде, перезаряде или КЗ), переходя в режим блокировки и требуя подключения зарядного устройства для выхода из этого режима.

Индикация процесса зарядки стандартная: красный светодиод горит во время зарядки, зеленый загорается по окончании.


Повышающий преобразователь

Для питания Arduino и дисплея используется повышающий DC-DC преобразователь на микросхеме MC34063. Входное напряжение: 3–4,2 В, выходное: 5 В.

Первоначальная схема:
Arduino питалась напрямую от аккумулятора, а повышающий преобразователь и дисплей включались отдельно по сигналу от Arduino через MOSFET. Главный недостаток: при снижении напряжения на аккумуляторе до 3,9 В происходило преждевременное отключение микроконтроллера, хотя аккумулятор был еще далеко не разряжен.

Итоговая схема:
Arduino запитывается от непрерывно работающего повышающего преобразователя MC34063. Это позволило стабилизировать напряжение на входе микроконтроллера на уровне 5 В, благодаря чему система сохраняет полную работоспособность даже при снижении напряжения на аккумуляторе до 3 В. Дисплей по-прежнему управляется отдельно по сигналу от Arduino через транзисторный ключ.

Цена вопроса: автономность

Однако стабилизация питания имела обратную сторону — рост энергопотребления:

  • Активный режим: 124 мА

  • Режим сна: 4 мА, из которых: 0,07 мА приходится на Arduino, 3,93 мА — собственное потребление преобразователя MC34063

Таким образом, в режиме сна 97% всего потребления приходится на микросхему MC34063 и лишь 3% — на микроконтроллер. Аккумулятора емкостью 2000–3000 мА·ч хватает примерно на 20 дней.

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

UPD: Осознание ошибки

Ошибки, допущенные в данном проекте, стали очевидны лишь спустя месяц, когда я приступил к разработке «Метеостанции». Оптимизируя энергопотребление в новом устройстве (снижение частоты МК и порога BOD), я понял: это решение идеально подошло бы и для «Копилки».

Исходная схема, где Arduino во сне питалась через постоянно работающий повышающий преобразователь, оказалась неэффективной. Правильнее было запитать преобразователь через транзистор, а Arduino подключить напрямую к аккумулятору. Благодаря сниженному порогу BOD микроконтроллер не отключался бы даже при падении напряжения до 2,7 В, а преобразователь просыпался бы только для вы��ода информации на дисплей.

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


Устранение помех

Повышающий импульсный преобразователь на MC34063 создавал значительные помехи, из-за чего Arduino работала некорректно: система самопроизвольно засчитывала отсутствующие монеты.

Начальная версия (навесной монтаж): Для подавления помех достаточно было установить электролитический конденсатор 470 мкФ.

После перехода на печатную плату (ПП): Этой меры оказалось недостаточно. Для надежного подавления помех потребовался комплекс мер:

  1. Добавлен LC-фильтр с частотой среза 2,3 кГц

  2. Топология платы изменена — преобразователь максимально удален от Arduino и аналоговой части (фототранзистор)

  3. Разделение земель — аналоговая земля отделена от силовой

В результате устройство стало работать стабильно, а ослабление пульсаций составило 18,6 дБ, что соответствует снижению уровня помех в 8,5 раза по напряжению.

Сравнение осциллограмм до и после применения фильтра приведено на рисунках ниже

Без фильтра: пульсации 111 мВ
Без фильтра: пульсации 111 мВ
С LC-фильтром: 13 мВ
С LC-фильтром: 13 мВ

Печатная плата в Altium Designer

Готовое устройство на печатной плате

ПП изготовлена вручную фоторезистивным методом.

Для защиты токопроводящих дорожек от окисления и коротких замыканий на плату нанесена паяльная маска, сформированная методом УФ-экспонирования через фотошаблон. Также это придало устройству красивый профессиональный вид.

Для обеспечения компактности ПП и гибкости размещения компонентов в корпусе устройства — аккумулятора, фототранзистора, ИК-светодиода, кнопки включения и дисплея — их подключение к основной плате реализовано через разъемы типа PLS.

Такое решение позволило:

  • Оптимально разместить элементы в пространстве корпуса

  • Упростить сборку и разборку устройства

  • При необходимости легко заменять компоненты без перепайки

Корпус

3D-моделирование выполнено в SolidWorks, печать корпуса — из ABS-пластика.

Особенности конструкции:

  • Крепление: дисплей и аккумуляторный отсек зафиксированы винтами М3 через вплавляемые гайки, запрессованные в пластик корпуса

  • Монтаж платы: ПП удерживается пластиковыми клипсами

  • Компоновка: внутреннее пространство разделено перегородкой, изолирующей электронику от монет

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

  • Интерфейсы: разъем зарядки и светодиодная индикация выведены на левую грань корпуса

Хочу сказать отдельное спасибо Передовой инженерной школе «ЛЭТИ» и аспиранту кафедры ЭПУ Кушнаревой Олесе Андреевне за помощь и предоставленную возможность в реализации корпуса для проекта.

Демонстрация работы устройства

Итог

Проект «Копилка» прошел полноценный путь развития: от первого прототипа в DIY-корпусе с навесным монтажом до законченного устройства на печатной плате в индивидуальном корпусе, изготовленном с помощью 3D-печати.

Главный вывод, который я сделал для себя: энергопотребление нужно закладывать на начальных этапах разработки устройства, а не дорабатывать после сборки.

Подписывайтесь, если интересны DIY проекты и истории их (не всегда идеальной) разработки. Пишите в комментарии — что я упустил? Как бы сделали вы?