18.通过按键切换LED颜色
实验现象:
按键每次按下LED切换一种颜色,依次为红,绿,蓝,黄,紫,青,白。
理论学习:
学会枚举语句的应用
enum{Color_R,Color_G,Color_B,Color_RG,Color_RB,Color_GB,Color_RGB};
相当于 Color_R = 0,Color_G = 1,……Color_RGB = 6,使用枚举语句使程序更容易懂,阅读起来更简单舒服。
这样在选择颜色时候,例如选择白色Change_Color(Color_RGB);就可以了,如果写Change_Corol(6)也可以,不过看着费力。
因为要0-6这7种颜色循环切换,因此当切换到白色后下一个要跳回到红色。
程序中使用以下语句切换:
Color_Value++; //颜色变量+1
if(Color_Value == Color_RGB+1) //当颜色变量 == 7
{
Color_Value = Color_R; //颜色变量清零,切换为红色
}
程序代码:
#define LED_R 2
#define LED_G 3
#define LED_B 4#define KEY 5unsigned char KEY_NUM = 0;
unsigned char Color_Value = 0;enum{Color_R,Color_G,Color_B,Color_RG,Color_RB,Color_GB,Color_RGB}; //枚举所有颜色
//红,绿,蓝,黄,紫,青,白void setup()
{pinMode(LED_R,OUTPUT);pinMode(LED_G,OUTPUT);pinMode(LED_B,OUTPUT);pinMode(KEY,INPUT_PULLUP);Change_Color(Color_RGB); //初始化颜色为白色
}void loop()
{Scan_KEY(); //按键扫描if(KEY_NUM == 1) //按键执行程序{KEY_NUM = 0; //清空标志位Change_Color(Color_Value); //切换颜色Color_Value++; //颜色变量+1if(Color_Value == Color_RGB+1) //当颜色变量 == 7{Color_Value = Color_R; //颜色变量清零}}
}void Change_Color(unsigned char data_color) //选择颜色函数
{switch(data_color){case Color_R: //红色digitalWrite(LED_R,LOW);digitalWrite(LED_G,HIGH);digitalWrite(LED_B,HIGH);break;case Color_G: //绿色digitalWrite(LED_R,HIGH);digitalWrite(LED_G,LOW);digitalWrite(LED_B,HIGH);break;case Color_B: //蓝色digitalWrite(LED_R,HIGH);digitalWrite(LED_G,HIGH);digitalWrite(LED_B,LOW);break;case Color_RG: //黄色digitalWrite(LED_R,LOW);digitalWrite(LED_G,LOW);digitalWrite(LED_B,HIGH);break;case Color_RB: //紫色digitalWrite(LED_R,LOW);digitalWrite(LED_G,HIGH);digitalWrite(LED_B,LOW);break;case Color_GB: //青色digitalWrite(LED_R,HIGH);digitalWrite(LED_G,LOW);digitalWrite(LED_B,LOW);break;case Color_RGB: //白色digitalWrite(LED_R,LOW);digitalWrite(LED_G,LOW);digitalWrite(LED_B,LOW);break;default:break;}}void Scan_KEY() //按键扫描
{if( digitalRead(KEY) == 0 ) //查看按键是否按下 {delay(20); //延时20ms,去抖动 if( digitalRead(KEY) == 0 ) //查看按键是否按下{KEY_NUM = 1; while(digitalRead(KEY) == 0); //松手检测}}
}
小思考:
其中有段代码可以改成:
Change_Color(Color_Value%7);
18.通过按键切换LED颜色相关推荐
- 通过按键切换LED颜色
RGB LED七彩跳变 通过按键切换LED颜色 实验现象 按键每次按下,LED切换一种颜色,依次为红 绿 蓝 黄 紫 青 白 原理图 代码编写 #define led_r 2 #define led_ ...
- zigbee CC2530 系列教程 4 按键控制LED实验
所有课程见此链接: zigbee CC2530 系列教程 0 课程介绍 4.3按键控制LED实验 4.3.1 实验目的 了解使用按键方法,使用按键切换LED的状态. 4.3.2 实验讲解 首先根据开发 ...
- arduino按键控制LED 灯(按一下切换一次状态)
物联网实验一 2021.3.24 arduino按键控制LED 灯(按一下切换一次状态) #define led 13 //定义led灯为13引脚 #define button 3 //定义butto ...
- led计数电路实验报告_「正点原子FPGA连载」第八章 按键控制LED灯实验
1)实验平台:正点原子开拓者FPGA开发板 2)本实例源码下载:请移步正点原子官网 第八章 按键控制LED灯实验 按键是常用的一种控制器件.生活中我们可以见到各种形式的按键,由于其结构简单,成本低廉等 ...
- verilog学习笔记- 10)按键控制 LED 灯实验
目录 简介: 实验任务: 硬件设计: 程序设计: 下载验证 : 总结与反思: 简介: 按键开关是一种电子开关,属于电子元器件类.我们的开发板上有两种按键开关:第一种是本实验所使用的轻触式按键开关,使用 ...
- 一个按键控制LED闪烁与关闭(定时器中断)
来源: 单片机简单程序_zhjysx的博客-CSDN博客https://blog.csdn.net/zhjysx/category_11558658.html 作用:用一个开关切换LED闪烁模式以及关 ...
- 按键控制LED状态翻转
文章目录 题目要求 思路探索 核心板上的两个小灯 关于开发板上的八个小灯 代码 题目要求 通过编程环境KEIL实现按键控制LED状态翻转 要求:按键控制的LED为相同颜色指向或框选的LED 要求需要核 ...
- 03独立按键控制LED移动
51单片机学习记录04 一.独立按键控制LED单向移动 单项右移 单项左移 二.独立按键控制LED移动 总结 一.独立按键控制LED单向移动 代码分为两个部分:"主函数"+&quo ...
- 【SoC FPGA学习】五、基于虚拟地址映射的 Linux 硬件编程,在已有工程上实现按键与LED的联动
参考教程中的以下章节: 小知识点: hps_0.h 文件是qsys生成的FPGA侧外设 0xfc00 0000~0xffff ffff一共是0xffffffff - 0xfc000000 + 1 = ...
最新文章
- swift基础--变量
- mysql insert concat_MySQL常用内置函数说明+concat+insert(str,m,n,inser_str)+week(now())+ | 学步园...
- VS2010设置全局Include和Lib目录
- Java Spring MVC
- python文件打开模式中、使用w模式、文件指针指向_被python文件模式“w+”所迷惑
- github上的优秀项目和开发环境配置【转http://www.cnblogs.com/2018/archive/2012/11/09/2763119.html】...
- 王昶衡(帮别人名字作诗)
- Python 对象和类
- 你要练神功,就应该先自宫,对不?
- C++ explicit关键字详解(用于构造函数)
- MDM之Goodness分析报告
- PTA—念数字(C语言)两种方法
- 简单解决新浪博客“您短时间发表文章过多,请稍后再试”的问题
- paip.win32的internet扩展已停止工作解决大法
- View 添加阴影效果
- 58子站安居,经纪人营销管理平台登录接口加密逆向
- 小草手把手教你 LabVIEW 串口仪器控制——VISA 串口配置
- Selenium+Python+Pycharm自动化环境搭建具体步骤
- SAP UI5 Simple Form 属性 columnsL,columnsM,columnsXL 的属性深入剖析试读版
- 工业相机QE-量子转换效率