请选择 进入手机版 | 继续访问电脑版

【Arduino】交通灯控制设计 一位数码管

[复制链接]
欣然自乐 发表于 2021-1-1 17:48:02 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
实现现象
数码管计时控制红、黄、绿LED灯循环显示交通灯,红灯亮5-10秒,依次黄灯亮3-5秒,依次绿灯亮5-10秒 ,然后循环显示。
电路毗连

电路毗连参考文章
【Arduino基础】一位数码管实验
源代码及注释
  1. #define LEDred 10//界说红灯引脚#define LEDyell 9//界说黄灯引脚#define LEDgree 11//界说绿灯引脚int LEDCount=8;//界说段码,这里是共阳段码,如果是共阴只需要在程序中把读到的值按位取反即可,使用“~”取反符号const unsigned char dofly_DuanMa[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};int LEDPins[] = {0,1,2, 3, 4, 5, 6, 7, }; // 对应的LED引脚void setup() {  // 循环设置,把对应的LED都设置成输出  for (int thisLED = 0; thisLED < LEDCount; thisLED++){    pinMode(LEDPins[thisLED], OUTPUT);  }  pinMode(LEDred, OUTPUT);//红灯引脚为输出引脚  pinMode(LEDyell, OUTPUT);//黄灯引脚为输出引脚  pinMode(LEDgree, OUTPUT);//绿灯引脚为输出引脚}// 数据处理,把需要处理的byte数据写到对应的引脚端口。void deal(unsigned char value){  for(int i=0;i=0;i--){    analogWrite(LEDred,HIGH);//输出高电平,红灯亮    deal(dofly_DuanMa[i]);//读取对应的段码值    delay(1000); //调治延时,2 个数字之间的停留隔断  }  analogWrite(LEDred,LOW);//输出低电平,红灯灭  // 循环显示2-0 数字  for(int i=2;i>=0;i--){    analogWrite(LEDyell,HIGH);//输出高电平,黄灯亮    deal(dofly_DuanMa[i]);//读取对应的段码值    delay(1000); //调治延时,2 个数字之间的停留隔断  }  analogWrite(LEDyell,LOW);//输出低电平,黄灯灭  // 循环显示9-0 数字  for(int i=9;i>=0;i--){    analogWrite(LEDgree,HIGH);输出高电平,绿灯亮    deal(dofly_DuanMa[i]);//读取对应的段码值    delay(1000); //调治延时,2 个数字之间的停留隔断  } analogWrite(LEDgree,LOW);//输出低电平,绿灯灭}
复制代码
实验现象
红灯亮10s

依次黄灯亮3s

依次绿灯亮10s

相关文章
【Arduino】交通灯控制设计 四位数码管

来源:https://blog.csdn.net/weixin_43319452/article/details/112003802
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )