2019独角兽企业重金招聘Python工程师标准>>>

通过前面两次I/O输出的介绍,这次我们就来实现一个交通灯的例子
实物连接效果如图所示:
数码管的控制引脚不变,3个led灯连接到模拟端口0、1、2,分别对应绿、黄、红,引脚输出低点亮LED。
说明:当6个模拟口作为数字口的时候,其对应序号是接着其他的数字口的,即模拟口0--5对应就是数字口14--19。
实例功能如下:
红灯亮9秒,接着绿灯亮9秒,接着黄灯亮3秒,接着红灯亮9秒,如此循环。数码管显示当前LED灯熄灭剩余秒数
程序如下(直接粘贴到Arduino开发环境下就可直接应用,程序中略去了数码管显示0-9数字子函数,可参考初初教程2):
//设置控制各段及LED的数字IO脚
int a = 7;
int b = 6;
int c = 5;
int d = 11;
int e = 10;
int f = 8;
int g = 9;
int ledG = 14;
int ledY = 15;
int ledR = 16;
//引脚设置、初始化
void setup()
{
  int i;//定义变量
  for(i=5;i<=16;i++)
    pinMode(i,OUTPUT);//设置5~16引脚为输出模式
}
//程序执行部分
void loop()
{  
  while(1)
  {
//红灯
    digitalWrite(ledR,LOW);
digitalWrite(ledY,HIGH);
digitalWrite(ledG,HIGH);
    digital_9();    //显示9
delay(1000);    //延时1s
digital_8();    //显示8
    delay(1000);    //延时1s
    digital_7();    //显示7
    delay(1000);    //延时1s
    digital_6();    //显示6
    delay(1000);    //延时1s
    digital_5();    //显示5
    delay(1000);    //延时1s
    digital_4();    //显示4
    delay(1000);    //延时1s
    digital_3();    //显示3
    delay(1000);    //延时1s
    digital_2();    //显示2
    delay(1000);    //延时1s
    digital_1();    //显示1
    delay(1000);    //延时1s
//绿灯
    digitalWrite(ledR,HIGH);
    digitalWrite(ledY,HIGH);
digitalWrite(ledG,LOW);
    digital_9();    //显示9
delay(1000);    //延时1s
digital_8();    //显示8
    delay(1000);    //延时1s
digital_7();    //显示7
delay(1000);    //延时1s
    digital_6();    //显示6
    delay(1000);    //延时1s
    digital_5();    //显示5
    delay(1000);    //延时1s
    digital_4();    //显示4
    delay(1000);    //延时1s
    digital_3();    //显示3
    delay(1000);    //延时1s
    digital_2();    //显示2
    delay(1000);    //延时1s
    digital_1();    //显示1
    delay(1000);    //延时1s
//黄灯
    digitalWrite(ledR,HIGH);
    digitalWrite(ledY,LOW);
digitalWrite(ledG,HIGH);
digital_3();    //显示3
    delay(1000);    //延时1s
    digital_2();    //显示2
    delay(1000);    //延时1s
    digital_1();    //显示1
    delay(1000);    //延时1s
  }
}
有兴趣童鞋的可以编写一个带参数的数码管显示子函数,能够使程序更加精减
[ 本帖最后由 晨光熹微 于 2011-6-27 20:20 编辑 ]

附件

转载于:https://my.oschina.net/u/732489/blog/134018

Arduino初初教程3 ——交通灯相关推荐

  1. Ardino基础教程 4_交通灯

    实验四:交通灯 上面我们已经完成了单个小灯的控制实验,接下来我们就来做一个稍微复杂一点的交通灯实验,其实聪明的朋友们可以看出来这个实验就是将上面单个小灯的实验扩展成3 个颜色的小灯,就可以实现我们模拟 ...

  2. Arduino初初教程10——温湿度传感器

    2019独角兽企业重金招聘Python工程师标准>>> 这里使用的温湿度传感器是 SHT1X温湿度传感器 如图   SHT1x温湿度传感器是瑞士Sensirion公司推出的单片数字温 ...

  3. Arduino初初教程8——模拟量输出

    为什么80%的码农都做不了架构师?>>> Arduino通过PWM的方式在引脚上输出一个模拟量,较多的应用在LED亮度控制.电机转速控制等方面.PWM方式是通过对一系列脉冲的宽度进行 ...

  4. Arduino初初教程7——模拟量采集

    2019独角兽企业重金招聘Python工程师标准>>> 模拟量采集需要用到模拟量器件,这里主要指一些随着环境变化输出电压值随之变化的器件,如火焰传感器.部分温度传感器.可调电阻等等 ...

  5. 「雕爷学编程」Arduino动手做(34)——三色LED交通灯模块

    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...

  6. 基于改进YOLOv7&OpenCV的行人过马路速度与交通灯实时监测系统(源码&教程)

    1.研究背景 横穿马路的行人运动速度太快.太慢或者突变都可能影响驾驶者的判断,从而导致交通事故.车载辅助系统应能够在交通路口为驾驶者提供异常行人的速度预判信息.文献[1-2]通过对不同红绿灯情形进行建 ...

  7. 【Arduino】交通灯控制设计 四位数码管

    实验现象 在Arduino开发板上设计红黄绿Led灯定时循环同步数码管显示,以数码管时间显示进行定时循环控制,要求红绿灯定时15秒,黄灯定时5秒.并在此基础之上设计串口通信键盘输入变量进行红黄绿LED ...

  8. 学会做arduino交通灯

    arduino单片机浅显入门之让灯亮起来 请先百度"面包板"和arduino单片机了解面包板的电路和单片机的引脚组成 目的:让多个灯灯受控制地亮,具备交通灯控制能力 这是一个最简单 ...

  9. Python基于OpenCV的智能交通灯系统(南北车流量比例)[源码&部署教程]

    1.研究背景: 在传统城市道路交通信号灯的应用过程中,存在专业技术人员较缺乏.项目投入资金少.信号灯故障抢修较困难等问题,为城市居民生活与出行带来极大不便.对此,文章进行深入研究,分析了城市道路智慧交 ...

最新文章

  1. 光流 | 稠密光流估计(基于LK光流)(源代码分享)
  2. JAVA第一个GUI程序---计算器
  3. sklearn自学指南(part1)--Machine Learning in Python
  4. html中函数传递多个值,JavaScript 实战开发经验!函数多参数传参技巧
  5. ThinkPHP-保存生成的二维码
  6. 隆重推荐一本虚拟化方面的重量级图书
  7. 吴恩达《卷积神经网络》
  8. struts的action属性自动注入原理
  9. linux 切换内核版本,切换 Linux 内核版本
  10. VS2015调试无法加载PDB 文件
  11. Scum服务器显示红色,进服务器 提示这个有大神解答一下吗
  12. 标号法(label-setting algorithm)求解带时间窗的最短路问题(ESPPRC)
  13. 计算机网络实践的体会,计算机网络实训心得体会
  14. 用python编写吃苹果小游戏
  15. 职高计算机应用基础教学总结,中职《计算机应用基础》教学心得
  16. python vlookup_Python - 如何使用 Pandas 进行vLookup
  17. 检测U盘插入并自动备份自定义文件下的文件(支持增量更新)
  18. 新浪博客关闭了吗,不能写博文了,提示:系统繁忙,请稍后再试
  19. Web前端开发,必须规避的8个错误点!
  20. 关于[闫辉的日志web2.0关程序员什么事]提到的。

热门文章

  1. 企业安全挑战 内网安全技术十大策略
  2. anacoda的spyder在调用matplotlib的时候无法显示动画效果【学习笔记】
  3. Win8开发中如何加载字符串资源(C#)
  4. Nginx 配置实战:负载均衡的实现
  5. Timer计时不准确的解决方案 每次都重新调整,修正误差
  6. maven 创建module失败 ,异常Unable to read parent POM
  7. android在控制台签名apk
  8. 将 Microsoft Excel 导入至 MySQL
  9. 什么是拜占庭将军问题
  10. linux 程序自启