数字输入——按键控制板载LED的亮灭
我们将会编写程序, 通过外接按键控制板载的IO LED, 实现按下按钮LED灭、松开按钮LED亮。
这一小节将系统性地介绍:
管脚的初始化、模式设置、数字输入。
pinMode()函数的使用。
前言
按键
按钮有两组引脚(触点),1和2。 当按下按钮时,它会连接这两个触点,从而关闭电路。 每个触点有左右两侧各一个引脚。 按钮内部连接如下图所示。
RBZBoard外接按键, 如下图所示。
编写代码
为方便后期查看修改, 我们定义常量来表示 板载IO LED的GPIO编号 、 外接按键的GPIO编号 和 IO LED的状态常量 。
在最外层添加代码:
const int IO_LED_PIN = 2; // 定义IO LED的GPIO编号
const int IO_KEY_PIN = 5; // 定义IO KEY的GPIO编号
int IO_KEY_STATE; // 定义IO KEY的状态常量
然后, 我们在setup初始化函数中, 调用pinMode()函数, 来设置IO LED所属的2号GPIO引脚为 输出模式, 按键KEY所接的5号GPIO引脚为 输入模式。
pinMode(IO_LED_GPIO,OUTPUT); // 设置引脚模式
pinMode(IO_KEY_PIN,Input); // 设置按键模式
接着, 我们在loop()函数中, 添加代码来 读取IO KEY的状态, 并将 IO KEY的状态作为LED的输出 , 从而实现按下按键,IO LED灯灭,松开按键,IO LED灯亮。
IO_KEY_STATE = digitalRead(IO_KEY_PIN); // 读取IO KEY电平状态
digitalWrite(IO_LED_PIN,IO_KEY_STATE); // 将IO KEY状态作为LED的输出
整个程序最后便是:
1 const int IO_LED_PIN = 2; // 定义IO LED的GPIO编号
2 const int IO_KEY_PIN = 5; // 定义IO KEY的GPIO编号
3 int IO_KEY_STATE; // 定义IO KEY的状态常量
4
5 void setup() {
6 // 初始化函数
7 // 这里的代码将在一开始被执行一次
8 pinMode(IO_LED_PIN,OUTPUT); // 设置引脚模式
9 pinMode(IO_KEY_PIN,INPUT); // 设置按键模式
10 }
11
12 void loop() {
13 // 主循环函数
14 // 这里的代码将在setup()后被一直循环调用
15 IO_KEY_STATE = digitalRead(IO_KEY_PIN); // 读取IO KEY电平状态
16 digitalWrite(IO_LED_PIN,IO_KEY_STATE); // 将IO KEY状态作为LED的输出
17 }