我是Arduino编程的新手。我正在尝试获得两个按钮来照亮两个LED,就像这样。按button1打开指示灯1关闭指示灯2,按button2打开指示灯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。它是void loop(1)和void loop(2)之后的行。
发布于 2020-10-28 17:24:13
void loop(1)和void loop(2)没有任何意义。
您只需实现void loop()并处理该函数中的两个按钮。
Arduino将一遍又一遍地在无限循环中调用loop()。拥有两个循环函数是没有意义的,并且会导致编译器错误。
如果您希望在两个不同函数中实现它们,请使用不同的名称来实现它们,并在loop()中同时调用它们
发布于 2020-10-28 17:30:34
我从未见过有人同时使用两个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()之后打印;
https://stackoverflow.com/questions/64568061
复制相似问题