【问题标题】:running two LEDs with two buttons用两个按钮运行两个 LED
【发布时间】:2020-10-28 07:16:31
【问题描述】:

我是 Arduino 编程新手。我试图让两个按钮像这样点亮两个 LED。按下按钮1打开灯1关闭灯2,按钮2打开灯1和2。类似速度选择的指示灯。

这是我目前的代码。

const int BUTTON1 = 2;
const int BUTTON2 = 3;
const int LED1 = 9;
const int LED2 = 10;
int BUTTONstate1 = 0;
int BUTTONstate2 = 0;


void setup()
{
pinMode(BUTTON1, INPUT);
pinMode(BUTTON2, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);

}

void loop(1)
{
BUTTONstate1 = digitalRead(BUTTON1);
if (BUTTONstate1 == HIGH);

digitalWrite(LED1, HIGH);
digitalwrite(LED2, low);
} 

void loop(2)
{
BUTTONstate2 = digitalRead(BUTTON2);
if (BUTTONstate2 == HIGH)

digitalWrite(LED1, HIGH);
digitalwrite(led2, HIGH);
}
    

当我运行代码时,我得到 ERROR 19:10 错误:变量或字段“循环”声明为无效。它是 void loop(1) 和 void loop(2) 之后的行。

【问题讨论】:

  • 请正确标记您的问题!
  • 我是新手,您是什么意思以及如何使用
  • 您添加了标签“python”,这会导致混淆。请删除它并添加标签“arduino”,“led”例如。点击“编辑”按钮。
  • 我想我修好了
  • 欢迎来到 StackOverflow。如果已修复,您可以提供有关如何修复的答案。明白这不是一个解决方案库,而是... 不断研究和交流准确的信息。含糊的陈述使重现变得困难......而且这个解决方案必须已经在我们的数据库中......谷歌也是一个解决方案。现在认为这是一个编程错误。请报告详细错误。

标签: arduino led


【解决方案1】:

void loop(1)void loop(2) 没有意义。

您只需实现 void loop() 并处理该函数中的两个按钮。

Arduino 将在无限循环中一遍又一遍地调用loop()。拥有两个循环函数没有意义,会导致编译器错误。

如果您想在两个不同的函数中使用该功能,请使用不同的名称实现它们并在 loop() 中调用它们

【讨论】:

  • 我知道我让它变得比我需要的更复杂。谢谢
【解决方案2】:

我从未见过有人同时使用两个 void 循环。您只能使用一个void loop()。这是一个例子:

void loop() {
    BUTTONstate1 = digitalRead(BUTTON1);
    BUTTONstate2 = digitalRead(BUTTON2);
    if (BUTTONstate1 == HIGH) {
        digitalWrite(LED1, HIGH);
        digitalwrite(LED2, LOW);
    }
    if (BUTTONstate2 == HIGH) {
        digitalWrite(LED1, HIGH);
        digitalwrite(LED2, HIGH);
    }
}

您还在这里犯了另一个错误。永远不要在if() 之后打印;

【讨论】:

  • 谢谢。这成功了,解释了很多。这个概念可以扩展到三个或四个 LED/按钮
  • 是的,您可以扩展更多。但是使用 switch case 而不是 if else 以使您的代码更易于理解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-04
  • 1970-01-01
  • 2022-07-16
  • 2011-06-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多