Arduino 创意交通灯:状态机与非阻塞计时

2026-10-9 / 0 评论 / 1 阅读

Arduino 创意交通灯:状态机与非阻塞计时 原创示意图

用状态机代替长时间 delay,让红黄绿灯切换时仍能响应行人按键。

一、准备材料

Arduino兼容板、红黄绿LED各1、3个330Ω电阻、按键、面包板。先对照数据手册确认供电电压、引脚和极性;所有接线在断电状态完成,并给电源设置合理限流。

二、搭建步骤

定义车辆绿、黄、全红、行人通行四个状态;用millis比较时间;按键只提交请求;每次状态转换统一更新输出。

不要一次把所有模块都接上。每完成一个功能块,就检查电源对地是否短路、连接点是否和原理图一致,再进入下一步。线色保持统一:红色表示电源、黑色表示地,信号线使用其他颜色。

三、验证与调试

连续按键与长按都不应打乱顺序;millis溢出时用无符号减法仍应工作。

故障时按“电源→地→输入→处理→输出”的顺序测量。记录期望值和实测值,比反复拆线更有效。若现象与预期不符,先回到最小电路,逐个恢复模块。

四、安全和容易踩的坑

每个LED都串限流电阻,按键使用内部上拉并做好消抖。

元件外观相同不代表引脚和参数相同;购买链接或别人的接线图不能替代当前批次的数据手册。首次通电若出现过热、异味或异常电流,应立即断电。

五、完成标准

能解释每根线的作用,重复断电上电三次仍稳定,并保存接线图、参数和测试记录,才算完成。后续焊到洞洞板或PCB前,再按原理图重画一次,避免把面包板位置误当电气连接。

本文为中文原创入门教程,资料依据:官方开发文档。示例参数用于安全低压实验,实际器件以制造商数据手册为准。

评论一下?

OωO
取消