Автомат для закусок на Arduino: проектирование и сборка
Компоненты и материалы
- Arduino UNO — 1 шт. (автор рекомендует Mega для большего числа I/O)
- Sensor Shield — 1 шт.
- DC-мотор 6В с колесом — 3 шт. (спиральные выдачи)
- ИК-датчик отражения / лайн-трекер — 3 шт. (детекция выпадения товара)
- Индукционный датчик приближения — 1 шт. (монетоприёмник №1)
- Оптопарный прерыватель — 1 шт. (монетоприёмник №2)
- Блок питания 6В для моторов — 1 шт.
- Реле 4-канальное — 1 шт.
- LCD Nokia 5110 — 1 шт.
- Белые LED — 2 шт.
- Кнопки (красная, жёлтая, зелёная) — 3 шт. (выбор товара)
Приложения и сервисы
- Arduino IDE
- SolidWorks (3D-моделирование корпуса)
О проекте
Дипломный проект (Индонезия, 2015). Задача: сделать вендинг-машину для снеков из дешёвых доступных компонентов. Корпус из акрила, лазерная резка. Принимает монеты, выдаёт товар спиральным механизмом.
Этапы разработки
- Концепция и эскизы: проработка всех сценариев, размеров монет, товаров, сенсоров.
- 3D-модель в SolidWorks: полная сборка с отверстиями для крепления, точные размеры для лазерной резки акрила.
- Монетоприёмник (механический фильтр + индукция + время пролёта):
- Слот по диаметру пропускает только целевые монеты.
- Рампa: монеты меньшего диаметра падают в отверстие и отбраковываются.
- Два сенсора: индукционный (сенсор 1) и оптопара (сенсор 2). Время пролёта между ними уникально для каждой монеты (магнитные свойства влияют на индуктивность, а размер/форма — на время прерывания луча). Arduino измеряет миллисекунды и классифицирует номинал.
- Выдача товара — спиральный механизм: Алюминиевый провод 2 мм, навитый на ПВХ-трубку Ø9 см, закреплён на колесе мотора. Вращение преобразуется в линейное движение пачки снека.
- Детекция выдачи: 3 ИК-датчика под спиралями. Срабатывание останавливает мотор через реле.
- Интерфейс Nokia 5110 LCD: показывает введённую сумму, баланс, подсказки («Вставьте монету», «Выберите товар», «Спасибо»).
- Тестирование и доработки: изоляция ИК-датчиков от солнца скотчем, подбор резисторов для стабильности индукционного датчика.
Код (автомат состояний)
Машина состояний обрабатывает последовательность: ожидание монеты → измерение времени пролёта → начисление баланса → ожидание нажатия кнопки → запуск мотора → детекция выпадения → «Спасибо» → сброс. Константы состояний (SIAP, KOIN_MASUK1... SALDO_..., KOIN_KELUAR) покрывают все комбинации монет 500/1000 до 2500. Полный код приведён в разделе Code.
Идеи для улучшения
- Монетный разменник.
- Приём купюр / биткоин / бесконтактная оплата.
- Отображение остатков товаров.
- IoT-уведомления о продажах и пустых ячейках.
Пользовательские детали
Скриншоты 3D-модели SolidWorks.
Производственный процесс
- Торговые автоматы: индустрия США на $36,6 млрд
- Датчик CO2 K30: мониторинг качества воздуха в реальном времени на Arduino
- Цифровой стадиометр на Arduino: отслеживание роста лазерным датчиком VL53L0X
- Интеграция ёмкостного сканера отпечатков DFRobot с Arduino или ESP8266
- Сенсорная башня на Arduino Cloud: Мониторинг температуры, движения и газа
- Умный водяной пистолет с датчиком движения на Arduino Nano
- Обратный автомат (RVM): DIY умная система переработки отходов
- Максимизируйте прибыль: установка лучшей цены для б/у оборудования
- Автоматы с молоком: удобно, доступно, экологично
- Вендинг-машины для лапши: как работают и что можно получить