首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用两个按钮运行两个LED

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

Stack Overflow用户
提问于 2020-10-28 15:16:32
回答 2查看 138关注 0票数 0

我是Arduino编程的新手。我正在尝试获得两个按钮来照亮两个LED,就像这样。按button1打开指示灯1关闭指示灯2,按button2打开指示灯1和2。类似于选择速度指示器。

这就是我到目前为止所拥有的代码。

代码语言:javascript
复制
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。它是void loop(1)和void loop(2)之后的行。

EN

回答 2

Stack Overflow用户

发布于 2020-10-28 17:24:13

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

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

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

如果您希望在两个不同函数中实现它们,请使用不同的名称来实现它们,并在loop()中同时调用它们

票数 1
EN

Stack Overflow用户

发布于 2020-10-28 17:30:34

我从未见过有人同时使用两个void循环。您只需使用一个void loop()。下面是一个示例:

代码语言:javascript
复制
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()之后打印;

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64568061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档