点滅などのloopをしている最中でも、スイッチで割り込みをして、違うプログラムを動かすような仕組みをつくりたいのです。試行錯誤を自分なりにして、以下のようなプログラムを作りました。
スイッチが押される毎に、aに-1をかける事で、1と-1を判定して動作を切り替えています。
質問なのですが、
割り込みの仕組みについて、「小学生でも理解できるようなしかけのプログラム」で実現できればと考えております。
-1をかける方法以外で、良い方法があれば、ご教授頂きたいのですがアイデアありますでしょうか?(−1は中学生で習うので)
皆様、お知恵をお願いいたします。
- コード: 全て選択
int a;
void setup() {
pinMode(9, OUTPUT);
attachInterrupt(0, blink, FALLING);
Serial.begin(9600);
a=1;
}
void loop() {
Serial.println(a); //aの値をシリアルモニタでチェック
if(a==-1){ //-1の時は点滅が長い
digitalWrite(9,HIGH);
delay(800);
digitalWrite(9,LOW);
delay(100);
}
if(a==1){ //1の時は消灯が長い
digitalWrite(9,HIGH);
delay(100);
digitalWrite(9,LOW);
delay(800);
}
}
void blink() { //スイッチが押される毎に aに-1をかける
a=a*(-1);
}