int对Arduino的价值没有变化

时间:2016-08-24 23:48:53

标签: arduino

我设置了代码,以便当我按下某个按钮时,特定值会添加到: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);
      }
}

2 个答案:

答案 0 :(得分:0)

您没有更新finalVal变量。

您的finalVal + buttonxVal没有做您想做的事情,您可能正在寻找finalVal += buttonxVal

if ((button1St == LOW))
{
        finalVal + button3Val;
}

对于其他测试,您需要将button1St更改为button2Stbutton3St

并且int代表Integer,您将浮点值存储为整数。

答案 1 :(得分:0)

finalVal + button1Val;实际上并未更改finalVal变量的值。

您必须使用finalVal符号为=分配新值。

在你的情况下,你会这样做:

finalVal = finalVal + button1Val;

当只是向原始变量值添加附加值时,您可以使用以下快捷方式,该快捷方式与上面的代码行基本相同:

finalVal += button1Val;

您需要为所有3个按钮实施此修复程序。