【Arduino】arduino交通灯(红绿灯+倒计时)

这篇具有很好参考价值的文章主要介绍了【Arduino】arduino交通灯(红绿灯+倒计时)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

#define LEDred A5//红灯引脚定义
#define LEDyellow A4//绿灯引脚定义
#define LEDgreen A3//黄灯灯引脚定义

 //设置阴极接口
 int a = 13;
 int b = 2;
 int c = 3;
 int d = 4;
 int e = 5;
 int f = 6;
 int g = 7;
 int h =8;
 //设置阳极接口
 int d1 = 9;
 int d2 = 10;
 int d3 = 11;
 int d4 = 12;


 void setup()
 {
   pinMode(d1, OUTPUT);
   pinMode(d2, OUTPUT);
   pinMode(d3, OUTPUT);
   pinMode(d4, OUTPUT);
   pinMode(a, OUTPUT);
   pinMode(b, OUTPUT);
   pinMode(c, OUTPUT);
   pinMode(d, OUTPUT);
   pinMode(e, OUTPUT);
   pinMode(f, OUTPUT);
   pinMode(g, OUTPUT);
   pinMode(h, OUTPUT);
   pinMode(LEDred, OUTPUT);
   pinMode(LEDyellow, OUTPUT);
   pinMode(LEDgreen, OUTPUT);
 }
void loop()
{
  digitalWrite(LEDred,HIGH);//点亮红灯
  for(int i=14;i>=0;i--)//点亮15秒
  {
    for(int k=500;k>0;k--){//切换秒数的快慢 k的初值越大 切换就越慢 k的初值越小 切换的越快
      //两位的数字分别设置
    Display(1,i/10);//十位
    Display(2, i%10);//个位
    }     
  }
  digitalWrite(LEDred,LOW);//熄灭红灯
  digitalWrite(LEDyellow,HIGH);//点亮黄灯
  for(int i=4;i>=0;i--)//点亮5秒
  {
    for(int k=500;k>0;k--){
    Display(1,i/10);//十位
    Display(2, i%10);//个位
    }
  }
  digitalWrite(LEDyellow,LOW);//熄灭黄灯
  digitalWrite(LEDgreen,HIGH);//点亮绿灯
  for(int i=14;i>=0;i--)//点亮15秒
  {
    for(int k=500;k>0;k--)
    {
    Display(1,i/10);
    Display(2, i%10);  
    }
  }
  digitalWrite(LEDgreen,LOW);//熄灭绿灯
}
//
void WeiXuan(unsigned char n)//定义选择亮的位置
{
  switch(n)
  {
    case 1: 
      digitalWrite(d1,HIGH);
      digitalWrite(d2, LOW);
      digitalWrite(d3, LOW);
      digitalWrite(d4, LOW);   
      break;
     case 2: 
      digitalWrite(d1, LOW);
      digitalWrite(d2, HIGH);
      digitalWrite(d3, LOW);
      digitalWrite(d4, LOW); 
      break;
      case 3: 
       digitalWrite(d1,LOW);
       digitalWrite(d2, LOW);
       digitalWrite(d3, HIGH);
       digitalWrite(d4, LOW); 
       break;
      case 4: 
       digitalWrite(d1, LOW);
       digitalWrite(d2, LOW);
       digitalWrite(d3, LOW);
       digitalWrite(d4, HIGH); 
       break;
       default :
       digitalWrite(d1, LOW);
       digitalWrite(d2, LOW);
       digitalWrite(d3, LOW);
       digitalWrite(d4, LOW);
       break;
      }
}
void Num_0()//数字0
{
  digitalWrite(a, LOW);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
  digitalWrite(h,HIGH);
}
void Num_1()//数字1
{
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(h,HIGH);
}
void Num_2()//数字2
{
  digitalWrite(a, LOW);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, LOW);
  digitalWrite(h,HIGH);
}
void Num_3()//数字3
{
  digitalWrite(a, LOW);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, LOW);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, LOW);
  digitalWrite(h,HIGH);
}
void Num_4()//数字4
{
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  digitalWrite(h,HIGH);
}
void Num_5()//数字5
{
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, LOW);
  digitalWrite(d, LOW);
  digitalWrite(e, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  digitalWrite(h,HIGH);
}
void Num_6()//数字6
{
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, LOW);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  digitalWrite(h,HIGH);
}
void Num_7()//数字7
{
  digitalWrite(a, LOW);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(h,HIGH);
}
void Num_8()//数字8
{
  digitalWrite(a, LOW);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  digitalWrite(h,HIGH);
}
void Num_9()//数字9
{
  digitalWrite(a, LOW);
  digitalWrite(b, LOW);
  digitalWrite(c, LOW);
  digitalWrite(d, LOW);
  digitalWrite(e, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  digitalWrite(h,HIGH);
}
void Clear()  //清屏
{
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(h,HIGH);
}
void pickNumber(unsigned char n)//选择亮数字的,将前面定义好的数字直接调用
{
  switch(n)
  {
   case 0:Num_0();break;
   case 1:Num_1();break;
   case 2:Num_2();break;
   case 3:Num_3();break;
   case 4:Num_4();break;
   case 5:Num_5();break;
   case 6:Num_6();break;
   case 7:Num_7();break;
   case 8:Num_8();break;
   case 9:Num_9();break;
   default:Clear();break; 
  }
}
void Display(unsigned char x, unsigned char Number)//选择对应的位置和数字
{
  WeiXuan(x);
  pickNumber(Number);
  delay(1);
  Clear() ; 
}

红绿灯+倒计时文章来源地址https://www.toymoban.com/news/detail-545981.html

到了这里,关于【Arduino】arduino交通灯(红绿灯+倒计时)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 51单片机STM32交通灯红绿灯十字路口信号灯类设计功能要求汇总

    浏览必读: 使用搜索可以达到事半功倍的效果。 电脑浏览器CTRL+F可以使用搜索查找 功能说明: 1.四路交通灯,带有红绿灯倒计时,绿灯倒计时结束后转黄灯5秒,再转红灯。 2.紧急情况下按键紧急按钮,四路黄灯快闪。 3.可以动态设置红绿灯时间。 涉及知识点:按键扫

    2024年02月11日
    浏览(118)
  • 多功能交通灯控制系统VHDL十字路口红绿灯倒计时DE2-115开发板代码

    名称:多功能交通灯控制系统VHDL十字路口红绿灯倒计时DE2-115开发板 软件:Quartus II 语言:VHDL 代码功能: 要求设计一个多功能交通灯控制系统。并进行软件仿真与硬件实现。要求做到  (1)主干道绿灯亮时,支干道红灯亮,反之亦然,两者交替允许通行,主干道每次放行60s,支干道每

    2024年02月04日
    浏览(69)
  • Arduino·Blink(控制LED亮灭),并实现简单的红绿灯效果

    点亮和熄灭LED是arduino的一项基础技能,本文将简单介绍其具体操作及简易红绿灯的制作。 LED(light-emitting diode),中午名为发光二极管,是一种常用的发光器件,通过电子与空穴复合释放能量发光,可高效地将电能转化为光能。 发光二极管与普通二极管一样是由一个PN结组成,

    2023年04月08日
    浏览(46)
  • 基于Arduino的双向交通灯系统

      学  号        231         姓  名       福福         指导教师:赵志鹏    --    年  7 月  2   日                                                      实训题目:交通灯系统 1   系统设计  设计要求  设计任务    设计基于Arduino的双向交通灯系统,实现

    2024年02月07日
    浏览(81)
  • 交通信号灯课程设计(红绿灯)

    一、设计指标 1.1对设计课题进行简要阐述        由一条主干道和一条支干道的汇合点形成十字交叉路口,为确保车辆安全、迅速地通行,在交叉路口的每个人口处设置了红、绿、黄三色信号灯。        (1)用红、绿、黄三色发光二极管作信号灯,用传感器或逻辑开关

    2024年02月09日
    浏览(53)
  • 【WinForm项目】C#模拟交通信号灯|WinForm交通红绿灯

    交通信号灯十字路口通行原理图。 实际上归类为四大类: 南北双向直行 东西双向直行 一对黑色粗线的左转 一对红色粗线的左转。 状态逻辑图如下图所示: 假定通行顺序为:南北直行、南北左转、东西直行、东西左转。 南北行人只在南北车流绿灯和黄灯的时候可以通行,

    2024年02月09日
    浏览(55)
  • C51单片机 简单的交通红绿灯设计一

    各位读者朋友们你们好,感谢你们能点开这篇文章,作为一个非硬件专业的学生,我没有扎实的硬件基础,很担心自己所写内容没有理论基础或者存有漏洞,如果有不对的地方,期待您能指正,一起学习。交通红绿灯的设计算是51的小入门。涉及仅有数码管,LED交通灯,Dela

    2023年04月27日
    浏览(41)
  • 【红绿灯识别】计算机视觉红绿灯识别【含GUI Matlab源码 2713期】

    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信。 🍎个人主页:海神之光 🏆代码获取方式: 海神之光Matlab王者学习之路—代码获取方式 ⛳️座右铭:行百里者,半于九十。 更多Matlab仿真内容点击👇 Matlab图像处理(进阶版) 路径规划

    2024年01月19日
    浏览(52)
  • 高德导航红绿灯为啥能读秒?

    文章来源:https://www.zhihu.com/question/545653479/answer/3098666967 每天工作其实就是负责自己片区的红绿灯,一大早就去校对时间,然后发布到后台。是的,统计出来的,而且还是人工统计,有误差请见谅 真的是很辛苦了!不过还是希望他们记录的时候好好记,因为有的路口真的不准

    2024年02月09日
    浏览(42)
  • 基于OpenCV的红绿灯识别

    为了实现轻舟航天机器人实现红绿灯的识别,决定采用传统算法OpenCV视觉技术。 航天机器人的红绿灯识别主要基于传统计算机视觉技术,利用OpenCV算法对视频流进行处理,以获取红绿灯的状态信息。具体而言,该系统通过连接工控机摄像头读取视频流,将视频帧转换成HSV色彩

    2024年02月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包