const
1const int BUTTON=7; 2int val=0; 3int old_val=0; 4int state=0; //LEDの状態(0ならオフ、1ならオン)。 5 6void setup(){ 7 pinMode(LED,OUTPUT); 8 pinMode(BUTTON,INPUT); 9} 10void loop(){ 11 val=digitalRead(BUTTON); 12 if((val==HIGH)&&(old_val==LOW)){ 13 state=1-state; 14 delay(10); 15 } 16 old_val=val; 17 if(state==1){ 18 digitalWrite(LED,HIGH); 19 } 20 else{ 21 digitalWrite(LED,LOW); 22 } 23 24} 25 26例えば一回目にBUTTONが押されたらvalがHIGHになるので state=1-state;の中は1になるのでLEDは点灯するのは分かります。 27もう一度押すとvalがLOWになるのでif((val==HIGH)&&(old_val==LOW)) state=1-state;はスルーされて、(stateは1のまま)で 28 if(state==1){ digitalWrite(LED,HIGH)このif文に入っいきstateは1なのでLEDは点灯してると思うのですが? 29 30 31
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。