实验扩展:上面的例程做过以后,大家可能会想,这样的话我们想要点亮LED,手就不能离开按钮了,这样非常不方便,怎么才能像家里控制电灯一样,按一下点亮,再按下熄灭呢,我们可以改进程序,使得可以实现这样的效果,将程序修改为下面列出的代码,再上传到Arduino UNO控制器中。
#define LED 7 //定义LED引脚为13
#define BUTTON 2 //定义按钮开关引脚为12
int val = 0; //变量val用来储存按钮状态
int old_val = 0; //暂存val变量的上一个时间单位
int state = 0; //0表示LED关闭,1表示打开
void setup(){
pinMode(LED, OUTPUT); //设定LED引脚为输出状态
pinMode (BUTTON,INPUT); //设定按钮引脚为输入状态
}
void loop(){
val = digitalRead(BUTTON); //读取按钮状态并储存
//检查按钮的变化情况
if((val == HIGH)&&(old_val == LOW)){
state =1-state;
delay(40); //延时简单抗抖动
}
old_val = val; //val下载已经是旧的了,让我们暂存一下
if (state == 1){
digitalWrite(LED,HIGH); //开启LED灯
}else{
digitalWrite(LED,LOW); //关闭LED灯
}
}