2016-08-24 61 views
0

我有我的代碼設置,以便當我按下某個按鈕時,具體的值被添加到:int finalVal = 0;但是當我看看Seral Monitor時,它將finalVal表示爲0.我的目標是創建一種類似密碼的系統,如果按正確順序按下右按鈕,則按鈕將點亮。int對Arduino的值不變

我的代碼:

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

您還沒有更新finalVal變量。

您的finalVal + buttonxVal不會做你想做的,你可能在尋找finalVal += buttonxVal

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

對於其它測試你需要改變button1Stbutton2Stbutton3St

而且int代表整數,你在存儲整數浮點值。

0

finalVal + button1Val;實際上並沒有改變finalVal變量的值。

您必須使用=符號爲finalVal分配新值。

在你的情況,你會怎麼做:

finalVal = finalVal + button1Val; 

如果只是增加一個額外的價值的原始變量值,可以使用下面的快捷鍵,這在本質上是相同的代碼上面的行:

finalVal += button1Val; 

您需要爲所有3個按鈕實施此修復。