按钮作是一种输入设备,可以对单片机进行控制,是单片机交互重要的设备之一
我们本期教程会采用TTP223触摸按钮模块,来实现按钮控制LED灯
(二)接线
①LED灯图方便还是采用板载的LED(13引脚)
②按钮可以随意接到一个支持输入的引脚,这里选择2号引脚
③注意模块的VCC和GND不要接错
(三)按钮点灯程序
①首先,要知道TTP223模块是高电平有效,LED灯也是高电平有效
②然后,TTP223是输入模式,引脚为2;LED为输出模式,引脚为13
③初始化程序,设置2引脚为输入,13引脚为输出;
- void setup() {
- pinMode(13,OUTPUT);
- pinMode(2,INPUT);
- digitalWrite(13, LOW); // 初始化LED为熄灭状态
- }
④设定一个变量,if判断的时候,只需判断变量状态
- int bool1 = digitalRead(2);//读取2号引脚存入bool1这个变量内
⑤if函数判断高低电平(按钮是否按下)
如果高电平,则将LED写入高电平,如果低电平,则将LED写入低电平
- if(bool1 == HIGH)//如果bool1为高电平
- {
- digitalWrite(13, HIGH); //点亮LED
- }else{ //否则
- digitalWrite(13, LOW); //熄灭LED
- }
⑥结果演示
(四)一个按钮控制灯开/关
①通过一个按钮,就可以控制一个灯开和关;
灯亮时,按下按钮,灯灭
灯灭时,按下按钮,灯亮
②初始化
- void setup() {
- pinMode(13,OUTPUT);
- pinMode(2,INPUT);
- digitalWrite(13, LOW); // 初始化LED为熄灭状态
- }
③设置两个变量,bool1保存按钮状态,led1保存灯的状态
- int bool1 = digitalRead(2);//读取2号引脚存入bool1这个变量内
- int led1 = digitalRead(13);//读取LED的状态
④先判断按钮是否按下,如果按钮为高电平,则进入if
如果LED此时是高电平,则写入低电平,否则就写入高电平
delay函数用于防误触
- if(bool1 == HIGH)//如果bool1为高电平
- {
- if(led1 == HIGH)
- {
- digitalWrite(13, LOW); // 初始化LED为熄灭状态
- delay(200);
- }else{
- digitalWrite(13, HIGH); // 初始化LED为熄灭状态
- delay(200);
- }
- }
⑤实验现象
按下按钮,灯常开或常关
(五)练习题
题目:
使用两个按钮(分别连接到数字引脚2和3),编写程序,当按下任一按钮时,点亮连接到数字引脚9的LED;当两个按钮都未按下时,熄灭LED。
答案:
- const int button1 = 2;
- const int button2 = 3;
- const int ledPin = 9;
-
- void setup() {
- pinMode(button1, INPUT);
- pinMode(button2, INPUT);
- pinMode(ledPin, OUTPUT);
- digitalWrite(ledPin, LOW); // 初始化LED为熄灭状态
- }
-
- void loop() {
- int button1State = digitalRead(button1);
- int button2State = digitalRead(button2);
-
- if (button1State == HIGH || button2State == HIGH) {
- digitalWrite(ledPin, HIGH); // 如果任一按钮被按下,点亮LED
- } else {
- digitalWrite(ledPin, LOW); // 如果两个按钮都未被按下,熄灭LED
- }
- }
【Arduino uno教程 】(二)Arduino uno开发板及点灯测试
【Arduino uno教程 】(三)按钮控制LED灯,附练习题