Arduino小白教程第二弹 -- 按钮随心控制LED

2014-01-152.5万
AI 快速预览详细 收起
本教程介绍了如何使用Arduino实现按钮控制LED的开关功能。项目名称为“按钮随心控制LED”,硬件清单包括Arduino板、按钮和LED。最终效果是通过按钮实现LED的开关控制,难度等级适合初学者。
Arduino小白教程第二弹 -- 按钮随心控制LED图1

原作者:Jane 授权转载

按钮控制LED亮灭,不同于一般的实验,按钮按下,LED就亮,松开则灭。我们这里呈现给大家的是,按钮按一下亮,在按一下就关掉,真的做到像开关一样控制小灯。


tutorials

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(9)
尘埃818
尘埃818
怎么看不到全文?
197024
197024
正确代码呢?
迷途路人
迷途路人
LZ这boolean 语句在什么情况使用。
quartercat
quartercat
請問button_state2的作用是什麼呢?
還有請問在何時button_state1的值是1,何時又會變回0?
Cain
Cain回复quartercat
boolean button_state2 用于记录按钮前一个状态.按钮按下button_state1为1,没有按下即为0.这段代码意思是检查按钮状态,当它前一状态为“没有按下”,现在你按下了,就改变灯的状态。实现按一下开灯,再按一下关灯循环。
李强
李强
学习了
wl4585
wl4585
我把delay(3000)放到以下位子,我以为是按钮按钮——灯灭——3s后按钮按钮——灯亮,可是实际效果,我按钮按钮后没任何反应,必须要按住按钮3s以上放开——灯灭——按3s以上——灯灭,这是为什么?只有吧delay(3000)放到取反的后面是没问题的
void loop(){
button_state1 = digitalRead (buttonPin); //读取按扭当前的状态
//判断按钮当前状态是否为高,并且前一个状态是否为低,同时满足执行语句
if (button_state1 == 1 && button_state2 == 0) {
led_state = !led_state; // 取反
digitalWrite (ledPin, led_state); // 控制LED
}
button_state2 = button_state1; //把当前状态赋给前一个状态
delay(3000);
}
wl4585
wl4585
我把delay(3000)放到以下位子,我以为是按钮按钮——灯灭——3s后按钮按钮——灯亮,可是实际效果,我按钮按钮后没任何反应,必须要按住按钮3s以上放开——灯灭——按3s以上——灯灭,这是为什么?只有吧delay(3000)放到取反的后面是没问题的
void loop(){
button_state1 = digitalRead (buttonPin); //读取按扭当前的状态
//判断按钮当前状态是否为高,并且前一个状态是否为低,同时满足执行语句
if (button_state1 == 1 && button_state2 == 0) {
led_state = !led_state; // 取反
digitalWrite (ledPin, led_state); // 控制LED
}
button_state2 = button_state1; //把当前状态赋给前一个状态
delay(3000);
}
hdc
hdc

请问,上图中的有点不明白,为什么要这样布线的,是不是布线为:用按钮直接控制 数字口3是否导通GND就可以了?
Jane
Jane回复kerryeva
这个是写错了,我改一下啊。连几代码就对应写几
kerryeva
kerryeva回复Jane
小白问题,为何电源线接入的是引脚3,但是程序里面是2?
共8条回复,已加载2条,点击查看更多共8条回复,已加载全部
bubill
bubill
哪里有示意图?
- 没有更多了 -