Обновить

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

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели10K
Всего голосов 11: ↑11 и ↓0+14
Комментарии14

Комментарии 14

Для большей времени автономности лучше поставить e-Ink экран. Если пробуждать МК только при опускании монеты, поставив на входе микро-переключатель с рычагом, то в остальное время МК может спать. В этом случае зарядка не потребуется вовсе.

На мой любительский вкус часть отвечающая за заряд, - переусложнена. Зарядку и защиту можно и на готовых модулях было реализовать, а еще проще перейти на 3.7В аккум со встроенной защитой или совсем отказаться от зарядки.

И да, выбранный МК жирноват для подобной задачи.

Спасибо за развернутый комментарий!

  1. Да, e-lnk экран поможет сохранить заряд, но мне больше по душе LCD1602) Пришлось для большей яркости и контрастности 1602 добавить повышающий преобразователь до 5в. Пусть схема чуть сложнее, зато результат именно такой, как хотелось.

  2. Почти всё время мк проводит в режиме глубокого сна (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, и система переходит к распознаванию монет.

    В статье упустил упоминание этого момента.

  3. Схема для заряда взята с данного популярного модуля. Перенес её на пп, чтобы не навешивать целый модуль отдельно.

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

  5. Тут вы абсолютно правы: Arduino для такой задачи великовата, однако наличие нескольких штук в запасе перевесило аргументы в пользу перехода на другой мк)

Зачем вообще здесь аккумулятор и этот огород с повышателями/защитами? 2 или 3 ААА и ни о чём не думай. Или тогда и писать нечего?

Можно и на AAA, конечно. Но при питании LCD1602 от батареек он становится тусклым и плохо читаемым. Здесь же повышайка держит стабильные 5В, и экран светит ярко до самого конца заряда. Плюс мне было интересно разобраться с платой защиты и повышайкой. Проект учебно-показательный, так что «огород» — осознанная часть процесса)

Ну, если потренироваться, тогда да. А при низком напряжении, для контраста LCD делается преобразователь в минус на 3-х детальках.

красиво и аккуратно всё реализовано.

разве что желто-зеленый индикатор выглядел бы симпатичнее.

Благодарю!

Мне больше красно-зеленая индикация привычнее)

Спасибо за статью и проект (точнее за доработку имеющегося). Оставь ссылочку на диск с исходниками, в идеале гитхаб

Прошивка:

Только не прошивка, а проект в данном случае. Прошивка - это ХЕКС файл (без исходных текстов), который записывается программатором или загрузчиком.

Понял, исправлю!

Рекомендую на будущее делать окошко под экран по стеклу ЖК дисплея, а не по его рамке. Выглядеть будет лучше.

Как-нибудь попробую) Нашел пример в интернете, хоть и дисплей получается утоплен, но смотрится хорошо

Да, можно даже чуть меньше, чтобы рамку вообще не видно было. Условно по символам с небольшим запасом по краям ~1 мм.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации