同时使用两个按钮
本课属于 Coddy Arduino 学习旅程的“输入”单元。第 7 课,共 22 课。
每个按钮都有自己的引脚,也有自己的 digitalRead()。开发板会依次读取它们,但速度非常快,对你来说就像是在同一时刻读取的。
工厂里的机器通常有两个相距较远的按钮,只有同时按住两个按钮时才会运行。双手都放在按钮上,因此都无法靠近刀片。这个规则用 && 表示,来自“组合条件”:
bool left = digitalRead(2) == LOW;
bool right = digitalRead(3) == LOW;
if (left && right) {
// 两个按钮都被按住
}两个引脚都需要设置为 INPUT_PULLUP。漏掉一个,引脚就会悬空,在这里会读作 LOW,就像它对应的按钮一直被按住一样。
挑战
简单按钮连接在引脚 2 和 3 上,并且都接到了 GND,LED 连接在引脚 13 上。只有在两个按钮都按住时才点亮 LED:
- 将引脚 2 和 3 设置为
INPUT_PULLUP - 将每个按钮的读取结果存入一个
bool - 两个按钮都按下时点亮 LED,否则将其熄灭
按“运行”,按住一个按钮,然后按住两个按钮,最后按“检查”。
亲手试试
const int leftPin = 2;
const int rightPin = 3;
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
// 将两个按钮引脚都设置为 INPUT_PULLUP
}
void loop() {
// 读取两个按钮的状态,只有同时按住两个按钮时才点亮 LED
}
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
输入中的所有课
自己练习: Arduino 在线编辑器