Arduino uno教程③:按钮控制LED灯,附练习题

科技   2024-11-23 08:08   广东  

性能参数
①主控芯片:ATmega328P
②数字输入输出引脚:14个
③PWM引脚:6个
④储存(存放代码的空间)32KB
⑤运存(运行时的存储)2KB;EEPROM(掉电保存空间)1KB
⑥晶振16MHz
在线仿真:https://wokwi.com/

Arduino uno教程①:安装Arduino IDE

Arduino uno教程②:开发板及点灯测试

Arduino uno教程③:按钮控制LED灯,附练习题

(一)简介

按钮作是一种输入设备,可以对单片机进行控制,是单片机交互重要的设备之一。

我们本期教程会采用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 }}

待续...



END

 免费申请开发板 


投稿/推广/合作/加群 请扫码添加微信

(请备注来意,加群请备注城市-称呼-行业岗位信息)

 



面包板社区
分享电子技术干货,工程师福利!EET电子工程专辑、ESM国际电子商情、EDN电子技术设计官方社区。
 最新文章