实验现象
在Arduino开发板上设计红黄绿Led灯定时循环同步数码管显示,以数码管时间显示进行定时循环控制,要求红绿灯定时15秒,黄灯定时5秒。并在此基础之上设计串口通信键盘输入变量进行红黄绿LED灯定时修改(修改定时范围0~99秒)。
实验准备
arduino主板-1
面包板-1
数据线-1
四位数码管-1
220Ω电阻-3
红色led灯-1
绿色led灯-1
黄色led灯-1
跳线若干
连接电路
接线说明

实物连接图

实验代码

#define redLed A5//红灯引脚定义
#define greeLed A4//绿灯引脚定义
#define yelloLed A3//黄灯灯引脚定义
int numred=14;//红灯定时时间15s
int numgree=14;//绿灯定时时间15s
int numyello=4;//黄灯定时时间5s
char signal;//设置阴极接口int a = 2;int b = 3;int c = 4;int d = 5;int e = 6;int f = 7;int g = 8;int dp = 9;//设置阳极接口int d4 = 1;int d3 = 0;int d2 = 11;int d1 = 10;//设置变量long n = 1230;int x = 100;int del = 55;  //此处数值对时钟进行微调void setup(){Serial.begin(9600);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(dp, OUTPUT);pinMode(redLed, OUTPUT);pinMode(greeLed, OUTPUT);pinMode(yelloLed, OUTPUT);}
/
void loop(){if(Serial.available()>0){signal=Serial.read();Serial.print(signal);if(signal=='A'){//修改红灯定时时间0~99sif(Serial.available()>0){numred=Serial.read()-48;if(Serial.available()>0){int zifu=Serial.read()-48;numred=numred*10+zifu;Serial.print("-->");Serial.println(numred);}}}if(signal=='B'){//修改绿灯定时时间0~99sif(Serial.available()>0){numgree=Serial.read()-48;Serial.println(numgree);if(Serial.available()>0){int zifu=Serial.read()-48;numgree=numgree*10+zifu;Serial.println(numgree);}}}if(signal=='C'){//修改黄灯定时时间0~99sif(Serial.available()>0){numyello=Serial.read()-48;Serial.println(numyello);if(Serial.available()>0){int zifu=Serial.read()-48;numyello=numyello*10+zifu;Serial.println(numyello);}}}} digitalWrite(redLed,HIGH);for(int i=numred;i>=0;i--){for(int k=500;k>0;k--){Display(1,i/10);Display(2, i%10);  }     }digitalWrite(redLed,LOW);digitalWrite(yelloLed,HIGH);for(int i=numyello;i>=0;i--){for(int k=500;k>0;k--){Display(1,i/10);Display(2, i%10);  }}digitalWrite(yelloLed,LOW);digitalWrite(greeLed,HIGH);for(int i=numgree;i>=0;i--){for(int k=500;k>0;k--){Display(1,i/10);Display(2, i%10);  }}digitalWrite(greeLed,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()
{digitalWrite(a, LOW);digitalWrite(b, LOW);digitalWrite(c, LOW);digitalWrite(d, LOW);digitalWrite(e, LOW);digitalWrite(f, LOW);digitalWrite(g, HIGH);digitalWrite(dp,HIGH);
}
void Num_1()
{digitalWrite(a, HIGH);digitalWrite(b, LOW);digitalWrite(c, LOW);digitalWrite(d, HIGH);digitalWrite(e, HIGH);digitalWrite(f, HIGH);digitalWrite(g, HIGH);digitalWrite(dp,HIGH);
}
void Num_2()
{digitalWrite(a, LOW);digitalWrite(b, LOW);digitalWrite(c, HIGH);digitalWrite(d, LOW);digitalWrite(e, LOW);digitalWrite(f, HIGH);digitalWrite(g, LOW);digitalWrite(dp,HIGH);
}
void Num_3()
{digitalWrite(a, LOW);digitalWrite(b, LOW);digitalWrite(c, LOW);digitalWrite(d, LOW);digitalWrite(e, HIGH);digitalWrite(f, HIGH);digitalWrite(g, LOW);digitalWrite(dp,HIGH);
}
void Num_4()
{digitalWrite(a, HIGH);digitalWrite(b, LOW);digitalWrite(c, LOW);digitalWrite(d, HIGH);digitalWrite(e, HIGH);digitalWrite(f, LOW);digitalWrite(g, LOW);digitalWrite(dp,HIGH);
}
void Num_5()
{digitalWrite(a, LOW);digitalWrite(b, HIGH);digitalWrite(c, LOW);digitalWrite(d, LOW);digitalWrite(e, HIGH);digitalWrite(f, LOW);digitalWrite(g, LOW);digitalWrite(dp,HIGH);
}
void Num_6()
{digitalWrite(a, LOW);digitalWrite(b, HIGH);digitalWrite(c, LOW);digitalWrite(d, LOW);digitalWrite(e, LOW);digitalWrite(f, LOW);digitalWrite(g, LOW);digitalWrite(dp,HIGH);
}
void Num_7()
{digitalWrite(a, LOW);digitalWrite(b, LOW);digitalWrite(c, LOW);digitalWrite(d, HIGH);digitalWrite(e, HIGH);digitalWrite(f, HIGH);digitalWrite(g, HIGH);digitalWrite(dp,HIGH);
}
void Num_8()
{digitalWrite(a, LOW);digitalWrite(b, LOW);digitalWrite(c, LOW);digitalWrite(d, LOW);digitalWrite(e, LOW);digitalWrite(f, LOW);digitalWrite(g, LOW);digitalWrite(dp,HIGH);
}
void Num_9()
{digitalWrite(a, LOW);digitalWrite(b, LOW);digitalWrite(c, LOW);digitalWrite(d, LOW);digitalWrite(e, HIGH);digitalWrite(f, LOW);digitalWrite(g, LOW);digitalWrite(dp,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(dp,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() ;
}

实现效果
红黄绿Led灯定时循环同步数码管显示,红绿灯定时15s,黄灯定时5s。

通过串口监视器输入变量,对红黄绿Led灯定时修改。

相关文章

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

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

  1. 【Arduino】温湿度传感器(DHT11)控制设计 四位数码管,LCD1602,带蜂鸣器、LED灯报警,串口输入设定阈值

    @[TOC]( [Arduino]温湿度传感器(DHT11)控制设计 四位数码管,LCD1602,带蜂鸣器.LED灯报警,串口输入设定阈值 ) 一.实验器材 UNO控制板:1块 共阳极四位数码管:1个 ...

  2. c语言交通灯控制设计和原理图,十字路口交通灯控制设计(附电路图及源代码).doc...

    十字路口交通灯控制设计(附电路图及源代码) <计算机控制技术> 课程设计报告 课题名称 交通灯控制设计 专 业 班 级 学生姓名 学 号 指导教师 201*年 6 月 8日 目录 TOC ...

  3. 51单片机 时间控制的不同时段交通灯控制设计(简单版)

    这个交通灯的设计时简单版,只有一个路口(不是十字路口)的那种(想要实现十字路口可以对代码稍加修改) 使用的开发软件:Keil uVision5 单片机类型为:C51 语言类型:C语言 在这里说一下实现 ...

  4. 基于at89c51单片机的交通灯控制设计

    ** 单片机自主学习项目*设计分析 -模拟LED交通灯 ** 一.开发背景与需求 1 开发背景 交通事业蓬勃发展,交通流量年年增长,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,为了在叉口的各条干 ...

  5. 基于fpga的交通灯的设计

    课题一:交通灯控制设计 1.课程设计的目的与要求 1.1目的 以FPGA为核心,设计一个交通灯控制器,每个路口都有红.黄.绿三盏灯.该交通信号灯控制器由一条车道A和一条车道B汇合成十字路口,在每个入口 ...

  6. 交通灯控制系统c语言编程,基于单片机的交通灯控制系统设计(本科)毕业论文设计.doc...

    基于单片机的交通灯控制系统设计 摘 要 当你路过一个十字路口时,你是否注意到各个方向车辆和行人有有条不紊的通过十字路口.这样井然有序的情境靠什么来实现的呢?靠的是交通灯控制系统.在论文中我使用单片机S ...

  7. 微型计算机k80,微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计(15页)-原创力文档...

    微型计算机原理与接口技术课程设计报告智能交通灯控制系统设计 摘 要 根据十字路口交通灯的控制要求,采用PLC 设计实现正常交通的时序控制,通过传感器完成对交通异常状况的智能判别及处理.在系统的设计中, ...

  8. 红绿灯交通灯控制逻辑电路设计

    <电子技术基础课程设计>--交通灯控制逻辑电路设计 最近无聊整理一下以前的笔记之类的,发现以前的课设,简陋粗糙,还是记录下吧. 此设计有具体接线说明 实验箱大概如下图 课设任务及要求 1. ...

  9. 计算机原理实验红绿灯转换,微机原理实验交通灯控制实验.doc

    . . 课 程 设 计 课程设计名称: 交通灯控制实验 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间: 2014.12.22---2015.1.2 微机原理 专 ...

最新文章

  1. python测验9_荐 测验9: Python计算生态纵览 (第9周)
  2. Lombok pojo类小神器
  3. C# 多线程及同步简介示例
  4. 震惊!递推与递归竟然可以这么编!%99的程序员都不知道!
  5. Java 序列化总结.md
  6. 苹果cms V10模板 秘趣响应式高端在线影视视频模板
  7. 纯CSS导航栏下划线跟随效果
  8. PHP7实战开发简单CMS内容管理系统(11)批量删除栏目数据
  9. [BZOJ]2194: 快速傅立叶之二
  10. Params属性的用法 (beginner)
  11. 创业失败反思:市场跟销售完全是两回事
  12. hdoj2045:LELE的RPG难题(递推)
  13. 利用masm32输出PE文件头的基本属性
  14. 看书学习感悟系列(二)
  15. 树莓派Pico开发板Arduino IDE开发环境安装与使用
  16. 54 小明的存钱计划
  17. 一些最基本的健身知识分享
  18. Emoji 表情还能这样玩?
  19. 纷享销客百思特 | 数字化营销赋能企业新增长沙龙圆满落幕
  20. 微信签到抽奖程序java源码_某宝买的微信抽奖签到墙源码,年会,学习源码--已经配置完成了,源码没问题,可直接用...

热门文章

  1. 有了大数据云计算,就能控制经济规律?
  2. Vue did you register the component correctly? For recursive components,make sure to provide the name
  3. 3. 编程规范和编程安全指南--java
  4. 【English】《控方证人》
  5. 集成QQ钱包---踩坑
  6. 如何面对困难的经典语录
  7. 以太坊系列 - 智能合约开发与调试
  8. 2022年数维杯国际大学生数学建模挑战赛C题如何利用大脑结构特征和认知行为特征诊断阿尔茨海默病解题过程
  9. 50个最佳机器学习公共数据集
  10. python raise和except区别_Python3 try-except、raise和assert解析