性能参数
①主控芯片:ATmega328P
②数字输入输出引脚:14个
③PWM引脚:6个
④储存(存放代码的空间)32KB
⑤运存(运行时的存储)2KB;EEPROM(掉电保存空间)1KB
⑥晶振16MHz
在线仿真:https://wokwi.com/
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
}
}
待续...
(请备注来意,加群请备注城市-称呼-行业岗位信息)