亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

非接触式音乐洗手计时器:基于 Arduino 与超声波传感器

项目概述

依据 CDC 建议,洗手需搓洗 20 秒以上。本项目制作一款非接触式洗手计时器:手在超声波传感器前挥动即可触发,7 段数码管倒计时显示,蜂鸣器同步播放 20 秒旋律(内置《生日歌》《Do-Re-Mi》《We Will Rock You》《危险边缘》主题曲),支持用户自行增减曲目。全程无需触碰,适合公共卫生场景。

核心组件与物料清单

软件: Arduino IDE

硬件连接与原理图

原理图见项目附件。核心连接:

软件架构亮点

无阻塞并发:拒绝 delay()

需同时更新倒计时显示与播放音乐。利用 tone() 非阻塞特性(占用 Timer2),配合 millis() 时间戳实现“多任务”:

乐谱转码:相对时值体系

定义 Note 结构体(频率 + 相对时值),用宏表示全/二分/四分/八分/十六分音符及附点:

#define NOTE_WHOLE 1
#define NOTE_HALF 0.5f
#define NOTE_QUARTER 0.25f
#define NOTE_EIGHTH 0.125f
#define NOTE_SIXTEENTH 0.0625f
#define DOTTED(X) (X * 1.5f)

结合 Melody 结构体(音符数组、音符数、全音符实际毫秒数),即可按标准乐谱逐音符转录,示例给出《生日歌》完整数组。

内存优化:PROGMEM 存放乐谱

UNO 仅 2 KB SRAM,4 首曲子占用 96% 导致数码管库失效。将 Note 与 Melody 数组移入 Flash(PROGMEM),动态内存从 76% 降至 22%,程序存储仅微增(31%→32%),可轻松容纳更多曲目。

代码结构要点

扩展建议

  1. 自行转录更多乐谱(注意注释掉旧曲目或迁移至 PROGMEM)
  2. 实现 PROGMEM 读取(进阶,需 pgm_read_word 等)
  3. 增加启动动画、音量控制、多语言提示等

资源链接

制造工艺

  1. 洗手站巡检维护最佳实践:从日检到月检的标准化作业指导
  2. DIY 蓝牙控制 Arduino 间谍小车
  3. FlickMote:基于手势的智能家居红外遥控器
  4. DIY Arduino TV-B-Gone:万能关机遥控器
  5. 理解看门狗定时器:如何防止单片机死机卡死
  6. 自制大尺寸LED主时钟带闹钟功能 — 12米外清晰可见
  7. Find Me:基于 Arduino 与蓝牙的智能寻物器制作指南
  8. Arduino 项目优化供电方案:从按键开关到电池监测与数据记录
  9. Arduino 井字棋游戏:MAX7219 点阵屏 + 纸板外壳 DIY
  10. 从零构建智能 Arduino 四足机器人:完整指南
  11. 使用 SparkFun 7 段数码管构建可靠的 Arduino 倒计时器
  12. Arduino 洗手计时器:抗击 COVID-19 的简易 DIY 工具