Menu
CoddyTech

同时使用两个按钮

本课属于 Coddy Arduino 学习旅程的“输入”单元。第 7 课,共 22 课。

每个按钮都有自己的引脚,也有自己的 digitalRead()。开发板会依次读取它们,但速度非常快,对你来说就像是在同一时刻读取的。

工厂里的机器通常有两个相距较远的按钮,只有同时按住两个按钮时才会运行。双手都放在按钮上,因此都无法靠近刀片。这个规则用 && 表示,来自“组合条件”:

bool left = digitalRead(2) == LOW;
bool right = digitalRead(3) == LOW;

if (left && right) {
  // 两个按钮都被按住
}

两个引脚都需要设置为 INPUT_PULLUP。漏掉一个,引脚就会悬空,在这里会读作 LOW,就像它对应的按钮一直被按住一样。

challenge icon

挑战

简单

按钮连接在引脚 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
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

输入中的所有课

自己练习: Arduino 在线编辑器