2016-08-24 3 views
0

Ich habe meinen Code eingerichtet, so dass, wenn ich eine bestimmte Taste drücken, spezifische Werte hinzugefügt werden: int finalVal = 0; Aber wenn ich mir den Seral Monitor anschaue, heißt das finalVal bei 0. Mein Ziel ist es, eine Art passwortähnliches System zu erstellen, bei dem, wenn man die richtigen Tasten in der richtigen Reihenfolge drückt, eine Taste aufleuchtet.Wert von int auf Arduino nicht ändern

Mein Code:

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); 
     } 
} 

Antwort

0

Sie sind nicht Ihre finalVal Variable zu aktualisieren.

Ihre finalVal + buttonxVal nicht tun, was Sie wollen, suchen Sie wahrscheinlich nach finalVal += buttonxVal.

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

Für weitere Tests benötigen Sie button1St-button2St und button3St

Und int steht für Integer ändern zu können, Float-Werte in ganzen Zahlen sind zu speichern.

0

finalVal + button1Val; ändert nicht wirklich den Wert der finalVal Variable.

Sie müssen finalVal einen neuen Wert zuweisen, indem Sie ein = Zeichen verwenden.

In Ihrem Fall würden Sie tun:

finalVal = finalVal + button1Val; 

Wenn nur einen zusätzlichen Wert zu einem ursprünglichen Variablenwert hinzufügen, können Sie die folgende Abkürzung verwenden, die im Wesentlichen das gleiche ist wie die obige Codezeile :

finalVal += button1Val; 

Sie müssen diesen Fix für alle 3 Ihrer Schaltflächen implementieren.