1、硬件接线图(参考)
技巧:每一个LED配一个220欧的电阻(限流电阻)接在数字引脚上,开关需要额外供电并进行+级断路,开关末端一头接数字端,一头接电阻(下拉电阻)并连接到负极。
此例中的车行红、绿、黄 可以用RGB一个灯来实现
2、实现逻辑
整个变化过程是这样的——开始时,汽车灯为绿灯,行人灯为红灯,代表车行人停。一旦行人,也就是你,按下按钮,请求过马路,那么行人灯就开始由红变绿,汽车灯由绿变黄,变红。在行人通行的过程中,设置了一个过马路的时间crossTime,一旦到点,行人绿灯开始闪烁,提醒行人快速过马路。闪烁完毕,最终,又回到了开始的状态,汽车灯为绿灯,行人灯为红灯。
3、编写代码
//以下数字针脚赋值未按图连接,因为不是第一次,纯粹为个人想法,只是为下面赋值更简单
//车的三个灯
int carRed = 10;
int carYellow = 11;
int carGreen = 12;
//行人的两个灯
int pRed = 8;
int pGreen = 9;
int crossTime = 5000; //设置一个按按钮后的行人通过时间
unsigned long changeTime; //按钮按下后的时间
void setup() {
//各个灯

本文介绍如何利用Arduino硬件制作交通信号灯。每个LED连接220欧姆电阻,通过RGB灯实现红绿黄变化。行人按钮触发信号灯状态切换,汽车绿灯行人红灯,行人按下按钮后,行人灯变为绿灯,汽车灯转黄再红。通过`digitalRead()`检测按钮状态,`millis()`判断按键间隔避免重复操作。
最低0.47元/天 解锁文章
800

被折叠的 条评论
为什么被折叠?



