Arduino 驱动零食售货机:从设计到制作的完整指南
元件与物料
| Arduino UNO | 建议改用 Mega 以获得更多 IO | ×1 |
| 传感器扩展板 | ×1 | |
| 6V 直流减速电机 (含轮) | ×3 | |
| 红外反射/循迹传感器 (商品检测) | ×3 | |
| 电感式接近传感器 (硬币传感器 1) | ×1 | |
| 红外槽型光电传感器 (硬币传感器 2) | ×1 | |
| 6V 直流电机电源 | ×1 | |
| 4 路继电器模块 | ×1 | |
| Nokia 5110 LCD | ×1 | |
| 白色 LED | ×2 | |
| 按钮开关 (红/黄/绿) | ×3 |
软件与工具
- Arduino IDE
- SolidWorks (或任意 3D 建模软件)
项目全记录
第 1 步:概念草图
来自印度尼西亚的作者,这是 2015 年底完成的毕业设计。目标:用“最便宜、最易买到”的本地元件打造投币式零食售货机,外壳用亚克力。
先画草图,丑不丑不重要,关键是把所有场景、异常情况想透。在动工前把“想不到的”都想到。

第 2 步:建立完整 3D 模型
用 SolidWorks 建全精度模型:零食包装尺寸、硬币直径、投币口、硬币滑道、按钮、Arduino 板载尺寸、传感器安装位、LCD 窗口、所有螺丝孔。激光切割亚克力要求极高精度,模型越细致,成品配合度越高。

第 3 步:设计硬币筛选槽
两级筛选:
1. 投币口物理尺寸挡住过大硬币。
2. 利用重力:硬币直径小于滑道宽度会掉落被拒收;仅目标硬币能滚入储币仓。
左侧硬币过大进不去;中间硬币太小掉落拒收;右侧硬币尺寸匹配,顺利入仓。

第 4 步:逐个测试元件
上手前逐一测试:LCD、按钮、继电器、LED、传感器读数稳定性。发现接近传感器读数抖动,需并联电阻滤波;红外传感器在强光下失效,用胶带遮蔽接收端解决。


第 5 步:制作螺旋出货机构
核心机构:2mm 铝线绕 9cm PVC 管手工弯制螺旋,用扎带固定在电机轮上。电机转动 → 螺旋旋转 → 将零食从货道推出。**螺旋将旋转运动转化为商品的直线位移。**



第 6 步:硬币识别机制(双传感器测速法)
硬币通过传感器 1 (接近传感器) → Arduino 启动毫秒计时 → 硬币通过传感器 2 (槽型光电) → 停止计时 → 得到“通过时间”。不同面值硬币因重量/尺寸/磁性不同,通过时间不同,以此识别面值。
注意: 磁铁别放太多,免得硬币卡在滑道中间无法计时。



if 传感器1触发 then 开始计时(ms)
if 传感器2触发 then 停止计时, 得到 travel_time
if travel_time >= 阈值 then 判定为 A 面值 else 判定为 B 面值
第 7 步:商品落下检测
三路红外传感器分别对准三个货道出口。商品落下遮挡光路 → 触发信号 → Arduino 经继电器切断对应电机电源,停止出货。

第 8 步:LCD 交互界面 (印尼盾)
- 开机显示 “请投币”。
- 识别硬币后显示面值与累计余额。
- 余额 ≥ 商品价 → “请选择商品”;余额不足 → “请继续投币”。
- 出货检测触发 → “谢谢惠顾” → 延时回主界面。

第 9 步:组装调试与最终测试
历时 3 个月完成,最终测试涵盖投币识别、按键选货、出货检测全流程。



第 10 步:改进方向
- 加入找零机构
- 支持纸币识别
- 接入比特币/电子支付
- LCD 显示库存
- 物联网化:交易实时上报、缺货预警

特别鸣谢:印尼 ITENAS 班둥理工学院机械工程系。
核心源码 (Arduino)
const byte SIAP = 0;
const byte KOIN_MASUK1 = 1; ... // 状态机状态定义
const float jeda_waktu = 876; // 硬币通过时间阈值 (ms)
// ... 省略大量状态变量与 LCD 驱动代码 ...
void setup() { /* 引脚初始化、LCD 初始化、串口调试 */ }
void loop() {
// 状态机逻辑:硬币检测 → 计时 → 面值判定 → 余额累加 → 按键选货 → 电机驱动 → 落下检测 → 复位
}
完整代码较长,已上传项目页面。
3D 模型预览
SolidWorks 模型截图见项目页面 CAD 板块。
制造工艺
- 自动售货机:美国366亿美元的产业巨头
- K30 CO₂ 传感器:室内空气质量实时监测
- DIY 数字身高仪:Arduino Nano + VL53L0X 激光测距 + OLED 显示
- DFRobot 电容指纹传感器 (ID809) 接入 Arduino/ESP8266 完整教程
- Arduino Cloud 传感器塔:温度、动作与气体监测
- 基于 Arduino Nano 的智能运动感应水枪
- DIY 智能回收系统:反向自动售货机 (RVM) 完整构建指南
- 紧凑型Arduino雷达系统:HC-SR04超声波传感器配1.8英寸显示屏
- 利用 Arduino Nano R3 自制全功能 CNC 雕刻机
- 鲜奶自动售货机:便捷、实惠、环保的新选择
- 面条自动贩卖机大揭秘:杯面vs拉面机,如何选?
- 二手机械定价策略:科学估值与谈判技巧实现利润最大化