옵션 |
|
int led1=6; int led2=7; int key1=12; int key2=13; int val1=0; int val2=0; //digitaRead(key2)값 저장 int old_val1=0; int old_val2=0; //이전의 digitaRead(key2)값 저장 int state1=0; int state2=0; void setup(){ pinMode(led1,OUTPUT); pinMode(led2,OUTPUT); pinMode(key1,INPUT); pinMode(key2,INPUT); } void loop(){ val1=digitalRead(key1); val2=digitalRead(key2); if((val1==HIGH)&&(old_val1==LOW)){ //현재의 버튼값과 이전의 버튼값을 비교했을 때 값이 달라졌나? state1=1-state1; //0=1-0 >1 delay(10); } if((val2==HIGH)&&(old_val2==LOW)){ state2=1-state2; //0=1-0>1 delay(10); } if(state1==HIGH){ digitalWrite(led1,HIGH); }else{ digitalWrite(led1,LOW); } if(state2==HIGH){ digitalWrite(led2,HIGH); }else{ digitalWrite(led2,LOW); } } 위에 적은 것 처럼 버튼 2개와led2개를 이용한 코드가 이건데요. 작동은 잘 됬는는데 코드중에서 잘 이해가 안가는 부분이 있어서요 if((val1==HIGH)&&(old_val1==LOW)){ //현재의 버튼값과 이전의 버튼값을 비교했을 때 값이 달라졌나? state1=1-state1; //0=1-0 >1 delay(10); 이부분에서 state값이 원래 0이였는데 1로 변해서 if(state1==HIGH){ <<여기서 state1이 아니라 '1'이 들어가야된다고 생각했거든요 digitalWrite(led1,HIGH); }else{ digitalWrite(led1,LOW); } 처음에는 1을 넣었는데 오류가 나서 state1로 바꿔 넣은건데 왜 1은 안되고 state1인지 잘 모르겠어요 ㅠㅠ 버튼 하나로 할때는 1이 맞았는데 왜 버튼 두개일때는 아닌가욤.... ㅠㅠ? 너무 길죠 ㅠㅠㅠ 죄송합니다. 너무 장황하게 써놔서 이해가 가실지 모르겠네요 ㅠㅠㅠ.... |