0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用Arduino Nano控制红绿灯

科技观察员 来源:八色木 作者:八色木 2022-04-08 15:19 次阅读

本文将介绍如何基于一个简单PCB洞洞板制作红绿灯,并通过Arduino Nano R3对它进行控制。

元器件清单

Arduino Nano R3

LED发光二极管(红、绿、黄)

220欧姆电阻3个

按钮开关

洞洞板

排母插针

烙铁

电路原理

poYBAGJP4e6Adi4VAAKd-3odnew540.png

Arduino Nano制作红绿灯连接图

电路连接图,因为软件中没有找到Nano的原型图,所以用UNO代替了,但是两者间所示的接口都是一样的。三个按钮开关分别连接Nano的GND和10、11、12针;Nano的4、5、6针分别通过三个220欧电阻连接LED发光二极管的正极,负极接Nano的GND。

红绿灯焊接

poYBAGJP4fOARtzXAAGjMcGSjlY193.png

基于Arduino Nano制作红绿灯

poYBAGJP4feASzHpAAMEB_bMA8g873.png

Arduino Nano制作红绿灯

采用洞洞板的目的,是可以将所有的原件焊接在一起,更利于后续的美化。同时使用单排母插针焊接在PCB洞洞板一侧,这样可以方便将Arduino Nano随时插入和取下来,所有分立元件焊接在另一侧,这样看上去会简洁很多。

控制代码

本项目的代码和电路一样非常简单,易于实现。完整代码如下:

const int led[3] = {4, 5, 6};

const int button[3] = {10, 12, 11};

int state[3] = {0, 0, 0};

int button_on[3] = {0, 0, 0};

long last_time[3] = {0, 0, 0};

long cur_time[3] = {0, 0, 0};

long debounce_delay = 500;

void setup() {

for (int i = 0; i < 3; i++) {

pinMode(led[i], OUTPUT);

}

for (int i = 0; i < 3; i++) {

pinMode(button[i], INPUT_PULLUP);

}

}

void loop() {

for (int i = 0; i < 3; i++) {

digitalWrite(led[i], state[i]);

button_on[i] = (digitalRead(button[i]) == LOW);

cur_time[i] = millis();

if (cur_time[i] - last_time[i] > debounce_delay) {

if (button_on[i]) {

state[i] = 1 - state[i];

last_time[i] = cur_time[i];

}

};

};

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • pcb
    pcb
    +关注

    关注

    4316

    文章

    22988

    浏览量

    396117
  • Arduino
    +关注

    关注

    187

    文章

    6462

    浏览量

    186613
收藏 人收藏

    评论

    相关推荐

    红绿灯控制系统的LED城市路灯方案

    将LED路灯装置与交通红绿灯控制系统结合在一起,利用每一路段红绿灯的转换实现对下一路段灯光强弱的控制。将当前市场上 LED 集灯板上的LED灯分为两组,在满足不同时段照明要求前
    发表于 10-17 14:44 3844次阅读

    红绿灯小程序

    `初学,搞个红绿灯小程序。勿拍。。。`
    发表于 08-30 15:02

    交通红绿灯

    本帖最后由 samuergao 于 2014-7-3 14:13 编辑 交通灯,并显示当前时间和倒计时,包含了单条路遇到人行道的红绿灯,还有十字路口的红绿灯,大家帮看看有的改进没有。
    发表于 07-03 12:12

    红绿灯问题求助?

    求做个红绿灯 就一个路的红绿灯
    发表于 10-22 10:53

    【分享】LABVIEW 控制红绿灯,黄灯闪烁的程序

    LABVIEW 控制红绿灯,黄灯闪烁。是在以前别人的基础上改的,红绿灯35秒,有道计时,黄灯闪烁5秒。闪烁间隔1秒。
    发表于 07-30 13:40

    交通红绿灯PLC控制系统编程方法与技巧

    本文介绍了交通红绿灯基本控制形式,针对带绿闪的红绿灯和带数显的红绿控制和实现方法,详细论述了相应的编程方法和技巧。实验证明编制的程序运行可靠
    发表于 08-14 10:31 152次下载

    红绿灯控制实验

    红绿灯控制实验 一、实验目的1. 熟悉可编程控制器指令。2. 熟悉PLC 的硬件系统及工作原理。3. 熟悉设计和
    发表于 09-23 07:56 5029次阅读

    基于51单片机的红绿灯设计

    这是一个基于51单片机的红绿灯设计,可以实现红绿灯的功能,同时还有特殊情况是单向通行。
    发表于 01-06 14:30 65次下载

    005——带时间显示的红绿灯

    005——带时间显示的红绿灯.........................
    发表于 04-28 09:49 18次下载

    红绿灯源程序

    红绿灯源程序,感兴趣的小伙伴们可以看看。
    发表于 06-17 15:42 32次下载

    EDA设计应用之红绿灯交通灯控制器设计

    红绿灯交通灯控制器EDA设计
    发表于 01-22 16:28 52次下载

    使用树莓派控制红绿灯的源代码免费下载

    本文档的主要内容详细介绍的是使用树莓派控制红绿灯的源代码免费下载。
    发表于 10-28 17:11 10次下载
    使用树莓派<b class='flag-5'>控制</b><b class='flag-5'>红绿灯</b>的源代码免费下载

    使用Fuxa为Arduino红绿灯制作HMI屏幕

    电子发烧友网站提供《使用Fuxa为Arduino红绿灯制作HMI屏幕.zip》资料免费下载
    发表于 06-25 15:15 4次下载
    使用Fuxa为<b class='flag-5'>Arduino</b><b class='flag-5'>红绿灯</b>制作HMI屏幕

    Arduino迷你红绿灯

    电子发烧友网站提供《Arduino迷你红绿灯.zip》资料免费下载
    发表于 06-30 14:30 0次下载
    <b class='flag-5'>Arduino</b>迷你<b class='flag-5'>红绿灯</b>

    用树莓派控制交通红绿灯(进阶版)

    哇奥,今天才发现上一次建造的红绿灯居然不对,绿灯一般在下方,当红灯变绿灯时黄灯闪烁,我做的是绿灯变红灯时黄灯闪烁!。这在我们开发时也会碰到,就像找bug一样,对于发现的问题要及时修正。
    的头像 发表于 07-02 15:10 1764次阅读
    用树莓派<b class='flag-5'>控制</b>交通<b class='flag-5'>红绿灯</b>(进阶版)