Arduino程序设计:按键控制LED灯
按键控制LED灯程序设计
前言
一、按键控制LED灯——内部上拉(基础)


代码实现:
//内部上拉,按键控制LED亮灭
int Button = 12; //定义全局变量Button,Button对应GPIO12
int MCU_LED = 2; //定义全局变量MCU_LED,MCU_LED对应GPIO2
void setup() {
pinMode(Button, INPUT_PULLUP); //Button定义为内部上拉模式
pinMode(MCU_LED, OUTPUT); //MCU_LED定义为输出引脚
digitalWrite(MCU_LED, HIGH); //初始状态,熄灭灯
}
void loop() {
if(digitalRead(Button) == LOW){
digitalWrite(MCU_LED, LOW); //按键按下,点亮灯
}
else{
digitalWrite(MCU_LED, HIGH); //按键未按下,熄灭灯
}
}
二、按键控制LED灯——外部上拉(基础)
代码实现:
//外部上拉,按键控制LED亮灭
int Button = 12;
int MCU_LED = 2;
void setup() {
pinMode(Button, INPUT); //Button定义为外部上拉模式
pinMode(MCU_LED, OUTPUT); //MCU_LED定义为输出引脚
digitalWrite(MCU_LED, HIGH); //初始状态,熄灭灯
}
void loop() {
if(digitalRead(Button) == LOW){
digitalWrite(MCU_LED, LOW); //按键按下,点亮灯
}
else{
digitalWrite(MCU_LED, HIGH); //按键未按下,熄灭灯
}
}
三、按键控制LED灯(进阶)
代码实现:
//外部上拉,按键控制LED。
//按一下按键,点亮LED;再按一下按键,熄灭LED。
int Button = 12;
int MCU_LED = 2;
boolean LED_State = false; //定义boolean全局变量,boolean定义的变量只有true和false两种状态
void setup() {
pinMode(Button, INPUT); //Button定义为外部上拉模式
pinMode(MCU_LED, OUTPUT); //MCU_LED定义为输出引脚
digitalWrite(MCU_LED, HIGH); //初始状态,熄灭灯
}
void loop() {
if(digitalRead(Button) == LOW){ //判断按键按下
delay(500); //延时500ms,按键消抖
LED_State = !LED_State; //LED灯状态取反
}
if(LED_State == true){ //判断LED灯状态为真
digitalWrite(MCU_LED, LOW); //按键按下,点亮灯
}
else{
digitalWrite(MCU_LED, HIGH); //按键未按下,熄灭灯
}
}
总结
参考文献
参考文献1: 按键控制LED实验
参考文献2: Arduino程序设计(一) 流水灯+呼吸灯