Tinkercad 电路:如何通过按钮使内置 LED 和 LED 亮起

时间:2021-07-07 09:36:37

标签: c++ arduino arduino-uno

我是 Arduino 的新手,我在通过单击按钮使 arduino 板的内置 LED 以及连接到面包板的外部 LED 亮起时遇到了问题。当我运行它时,它什么也不做。它只在终端上连续打印 0。

这就是我的 arduino 的样子 enter image description here

这是我正在处理的代码:

 // C++ code
 int pushButton = 2;


 void setup() {
  Serial.begin(9600);
  pinMode(pushButton, INPUT);
  pinMode(13, OUTPUT);
 }

 void loop() {
  int buttonState = digitalRead(pushButton);
  if (buttonState == HIGH) {
  digitalWrite(13, HIGH);
 } else {
 digitalWrite(13, LOW);
 }
 Serial.println(buttonState);
 delay(1000); // Delay the blink for a second
 }

另外,我有一个问题,数字引脚 2 代表什么?

我们刚刚开始学习这个,我正在探索制作它的过程。我迷路了。我不知道问题出在哪里,是电路板和其他组件的结构还是代码本身。也许你可以帮我解决这个问题。这将是一个巨大的帮助。

1 个答案:

答案 0 :(得分:1)

您的 Arduino UNO 内置 LED 位于引脚 13,因此您可以使用 LED_BUILTIN 常量引用它。

至于按钮,添加内部 PULLUP 会更好(您可以在许多帖子中阅读)。

还要注意 buttonState 使用 bool 而不是 int,我认为更合适。

int pushButton = 2;

void setup() {
  Serial.begin(9600);
  pinMode(pushButton, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  bool buttonState = digitalRead(pushButton);
  if (buttonState == LOW) {
    digitalWrite(LED_BUILTIN, HIGH);
  } else {
    digitalWrite(LED_BUILTIN, LOW);
  }
  Serial.println(buttonState);
  delay(1000); // Delay the blink for a second
}