注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。
前言:上偏文章学习了如何点亮LED灯,这篇文章主要讲解如何通过两个按钮分别控制灯的点亮与熄灭。
1.实验前硬件准备
Arduino UNO R3开发板一块、LED小灯1个、按钮2个个、1K电阻。杜邦线。
2.今日需要学习的语法介绍
知识点1:
digitalRead(pin)
注意:此函数使用前,需要确认对应的引脚要设置为输入模式。
pin:代表单片机引脚,在Aruino uno r3板上可以直接看到,通常是0~13。
该函数的返回值:这个有2种值,如下:
-
1,高电平,则对应引脚测得的电压高于3.5V电压
-
0,低电平,则对应引脚测得的电压低于1.5V电压
注意:1.讨论的基础都是基于被测引脚电压属于安全范围:小于等于5V电压。
2.被测端口输入电压在1.5至3.5时系统判断值不稳定,可能是高电平,也可能是低电平。
知识点2:
pinMode(pin,state)
这是对于引脚定义的一个函数,其中:
pin:代表单片机引脚,在Aruino uno r3板上可以直接看到,通常是0~13。
state:这个有3种模式,如下:
● OUTPUT,输出模式
● INPUT,输入模式
●INPUT_PULLUP,输入上拉模式
注意:INPUT 与INPUT_PULLUP区别在是否开启内部上拉电阻,实现上拉输入功能。
3.按钮控制LED灯的点亮与熄灭原理
将引脚2、3设置为上拉输入模式,将引脚13设置为输出模式。
单片机不断检测按钮A和按钮B的状态:
当按钮A被按下,单片机检测到按钮A的输入信号被拉低到GND,则输出高电平给LED,点亮LED;
当按钮B被按下,单片机检测到按钮B的输入信号被拉低到GND,则输出低电平给LED,熄灭LED。
4.按钮控制LED灯的点亮与熄灭的单片机实现
感受DIY的乐趣,可按下图图示接线。
5.完整代码
#define led 13 //给引脚13取个名字,叫做led,后面可直接写led代替13
#define Button_A 2 //给引脚2取个名字,叫做Button_A
#define Button_B 3 //给引脚3取个名字,叫做Button_B
void setup()
{
pinMode(led,OUTPUT); //设置13号引脚为输出模式
pinMode(Button_A,INPUT_PULLUP); //设置2号引脚为输出模式
pinMode(Button_B,INPUT_PULLUP); //设置3号引脚为输出模式
}
void loop()
{
bool Button_A_state=1; //定义一个bool变量,用于记录Button_A的状态
bool Button_B_state=1; //定义一个bool变量,用于记录Button_B的状态
Button_A_state=digitalRead(2); //读取按钮A的状态,并记录在Button_A变量
Button_B_state=digitalRead(3); //读取按钮B的状态,并记录在Button_B变量
if(Button_A_state==0)digitalWrite(led,HIGH); //系统检测到按钮A按下,设置13号引脚为高电平
if(Button_B_state==0)digitalWrite(led,LOW); //系统检测到按钮B按下,设置13号引脚为低电平
}
6.写在最后
如果想做多个LED灯和按钮控制,又不想自己连接线的宝子们,可以下载我这个pcb,打板焊接后,可直插到UNO R3上,如图,灯附近的数字表示连接到的引脚。