- Arduino初心者熱烈大歓迎質問スレ part10
866 :774ワット発電中さん[sage]:2014/02/20(木) 21:00:15.75 ID:mpBGTHaj - >>865
一回押すとON もう一回押すとOFFの関数を作ると 後の処理が簡単になる 例えば、 // オルタネートスイッチとして7PINを読む // チャタリングは無視(読む間隔が10msec以上空いていればとりあえず問題ない) int altSw7() { static int alternate=0; static int prevSw=0; int sw; sw = digitalRead(7)==HIGH ? 0 : 1; //負論理 LOでスイッチプッシュ alternate ^= (prevSw ^ sw) & sw; // 反転 prevSw = sw; return alternate==1 ? HIGH : LO; } loopは、こんなかんじ setup()の中にでもi=0;を入れて初期化しておく void loop(){ if(altSw7()==HIGH) { if(i<255) { i++; analogWrite(11,i); } } else { if(i>0) { i--; analogWrite(11,i); } } delay(10); }
|