Hotdry.
systems-engineering

Arduino精准双区间 Aeropress 咖啡计时器

最小化Arduino项目:按钮控制的双阶段精准计时,LCD显示与蜂鸣提醒,实现Aeropress咖啡最佳萃取。

Aeropress 咖啡冲泡依赖精准时机,手动计时易导致萃取不均、酸苦失衡。使用 Arduino 构建最小 viable 项目,提供双区间计时(浸泡 30s + 压滤 45s),按钮启动 / 切换 / 复位,LCD 实时 MM:SS 显示,蜂鸣分段提醒,确保每次冲泡一致性。

硬件组件清单:

  • Arduino Nano(紧凑,5V 供电)
  • 16x2 I2C LCD(地址 0x27,显示当前阶段与剩余时间)
  • 3 个按钮:启动 / 暂停(Pin2)、切换区间(Pin3)、复位(Pin4)
  • 压电蜂鸣器(Pin5,1000Hz 音调)
  • 10kΩ 上拉电阻(按钮防抖)
  • 面包板 + 跳线

接线要点:

  • LCD:SDA(A4)、SCL(A5)、VCC(5V)、GND
  • 按钮:一端 Pin2/3/4,另一端 GND,上拉内置或外接 10kΩ
  • 蜂鸣器:正极 Pin5,负极 GND
  • 供电:USB 或 9V 电池 + 稳压

核心使用 millis () 非阻塞定时,避免 delay 阻塞按键响应。状态机:IDLE(待启动)、STEEP(浸泡)、PRESS(压滤)、DONE(完成)。

计时逻辑: unsigned long prevMillis = 0; int interval = 30000; // 30s ms enum State {IDLE, STEEP, PRESS, DONE}; State currentState = IDLE;

loop () 中: unsigned long now = millis (); if (now - prevMillis>= interval){ prevMillis = now; // 切换状态,蜂鸣 tone (5,1000,200); LCD 更新 }

按钮防抖:millis 基 50ms 阈值,仅稳定低电平触发。

显示格式:"浸泡 00:30" →蜂鸣→"压滤 00:45" →蜂鸣→"完成!"。

参数配置:

  • 浸泡区间:30s(bloom,促进释放 CO2)
  • 压滤区间:45s(均匀萃取,避免过萃)
  • 蜂鸣:1000Hz,200ms 双音(区别分段)
  • 防抖阈值:50ms
  • LCD 对比度:10k 电位器中档
  • 功耗:~20mA,电池续航长

监控点:LCD 闪烁提醒结束;复位按钮长按 > 1s 清零。

回滚策略:若 drift>1s,用 Timer1 中断校准 millis。

测试:实际冲泡,计时误差 < 100ms,LCD 清晰,按钮响应 < 50ms。

来源:Aeropress 官网食谱(总时 60-90s)[1];Arduino millis () 文档 [2]。

[1] aeropress.com/recipes “60-90 秒翻转压滤” [2] arduino.cc/reference/en/language/functions/time/millis/

查看归档