我设置了代码,以便当我按下某个按钮时,特定值会添加到:int finalVal = 0;但是当我看到Seral Monitor时,它说finalVal为0.我的目标是创建一种类似密码的系统,如果你按正确的顺序按下正确的按钮,那么按钮就会亮起。
我的代码:
const int button1 = 2;
const int button2 = 3;
const int button3 = 4;
const int led = 13;
int button1Val = 5.43678;
int button2Val = 1.287953156;
int button3Val = 3.141592;
int finalVal = 0;
void setup()
{
Serial.begin(9600);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(led, OUTPUT);
}
void loop()
{
Serial.println(finalVal);
int button1St, button2St, button3St;
button1St = digitalRead(button1);
button2St = digitalRead(button2);
button3St = digitalRead(button3);
if ((button1St == LOW))
{
finalVal + button1Val;
}
else
{
digitalWrite(led, HIGH);
delay(300);
}
if ((button1St == LOW))
{
finalVal + button2Val;
}
else
{
digitalWrite(led, HIGH);
delay(300);
}
if ((button1St == LOW))
{
finalVal + button3Val;
}
else
{
digitalWrite(led, HIGH);
delay(300);
}
if ((finalVal == 25.169430312))
{
digitalWrite(led, LOW);
}
else
{
digitalWrite(led, HIGH);
delay(300);
}
}
答案 0 :(得分:0)
您没有更新finalVal
变量。
您的finalVal + buttonxVal
没有做您想做的事情,您可能正在寻找finalVal += buttonxVal
。
if ((button1St == LOW))
{
finalVal + button3Val;
}
对于其他测试,您需要将button1St
更改为button2St
和button3St
并且int
代表Integer,您将浮点值存储为整数。
答案 1 :(得分:0)
finalVal + button1Val;
实际上并未更改finalVal
变量的值。
您必须使用finalVal
符号为=
分配新值。
在你的情况下,你会这样做:
finalVal = finalVal + button1Val;
当只是向原始变量值添加附加值时,您可以使用以下快捷方式,该快捷方式与上面的代码行基本相同:
finalVal += button1Val;
您需要为所有3个按钮实施此修复程序。