2016-08-24 3 views
0

특정 버튼을 누를 때 특정 값을 추가하도록 코드를 설정했습니다. int finalVal = 0; 하지만 Seral Monitor를 보면 finalVal은 0입니다. 내 목표는 올바른 순서로 오른쪽 버튼을 누르면 버튼이 켜지는 것과 같은 일종의 비밀번호와 같은 시스템을 만드는 것입니다.Arduino의 int 값이 변하지 않습니다.

내 코드 :

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 개의 단추 모두에 대해이 수정 프로그램을 구현해야합니다.

관련 문제