Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 使用两个按钮运行两个LED_Arduino_Led - Fatal编程技术网

Arduino 使用两个按钮运行两个LED

Arduino 使用两个按钮运行两个LED,arduino,led,Arduino,Led,我不熟悉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, IN

我不熟悉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);
}
    
当我运行代码时,我得到错误19:10错误:变量或字段“loop”声明为void。它是无效循环(1)和无效循环(2)之后的行。

无效循环(1)和
无效循环(2)
没有意义

您只能实现
void loop()
,并在该函数中处理两个按钮

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

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

void loop(1)
void loop(2)
中调用这两个函数

您只能实现
void loop()
,并在该函数中处理两个按钮

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


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

中调用这两个函数。我从未见过有人同时使用两个空循环。您只需使用一个
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()

之后我从未见过有人同时使用两个空循环。您只需使用一个
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()之后

请正确标记您的问题!我不知道这是什么意思,你是如何添加标记“python”的,这会导致混乱。请将其移除并添加标签“arduino”、“led”等。点击“编辑”按钮。我想我修正了它。欢迎来到StackOverflow。如果它是固定的,您可以提供关于它是如何固定的答案。了解这不是一个解决方案库,而是。。。不断研究和交流准确信息。含糊不清的陈述很难再现。。。这个解决方案必须已经在我们的数据库中。。。谷歌也是一个解决方案。现在认为这是一个编程错误。请报告详细错误。请正确标记您的问题!我不知道这是什么意思,你是如何添加标记“python”的,这会导致混乱。请将其移除并添加标签“arduino”、“led”等。点击“编辑”按钮。我想我修正了它。欢迎来到StackOverflow。如果它是固定的,您可以提供关于它是如何固定的答案。了解这不是一个解决方案库,而是。。。不断研究和交流准确信息。含糊不清的陈述很难再现。。。这个解决方案必须已经在我们的数据库中。。。谷歌也是一个解决方案。现在认为这是一个编程错误。请报告详细的错误。我知道我让它变得比我需要的更复杂。谢谢,我知道我把事情弄得比我需要的更复杂了。谢谢,谢谢。这就成功了,解释了很多。这个概念可以扩展到三个或四个led/按钮吗?是的,您可以扩展更多。但是使用switch-case而不是if-else可以使您的代码更容易理解。谢谢。这就成功了,解释了很多。这个概念可以扩展到三个或四个led/按钮吗?是的,您可以扩展更多。但是使用switch-case而不是if-else可以使代码更容易理解。