bool Pushed_Flag=false; //bool型の変数Pushed_Flagを用意
void setup() {
Serial.begin(9600); //シリアル通信の初期化処理
pinMode(2,INPUT_PULLUP); //2番ピンをプルアップ付きの入力ピンとして設定
//2番ピンが押された瞬間に関数Pushed()が実行されるように設定
attachInterrupt(digitalPinToInterrupt(2),Pushed,FALLING);
}
void loop() {
//1秒置きにPushed_Flagの中身を切り替える
Pushed_Flag=false;
delay(10000);
Pushed_Flag=true;
delay(10000);
}
void Pushed(){
//Pushed_Flagの中身をシリアルモニタに表示(true:1,false:0)
Serial.println(Pushed_Flag);
}
/*http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=3069
attachInterruptで指定した関数のなかでは次の点に気をつけてください。
・delay関数は機能しません
・millis関数の戻り値は増加しません
・シリアル通信により受信したデータは、失われる可能性があります
・割り当てた関数のなかで値が変化する変数にはvolatileをつけて宣言すべきです
*/
//外部割り込みに使用できるピンはボードごとに決められており、
//「Arduino Uno R3」では、2番ピンと3番ピンが対応。