可変ブログ

色々メモとか。とりあえず自分が分かるように。その後、なるべく人が見て分かるように。可変。

Arduinoで外部割込みとシリアル割り込み

・外部割込み

簡単なスケッチを

#define INT_PIN 2

void gpio_isr(){
  Serial.println("warikomi");
}


void setup() {
    Serial.begin(115200);
    
    pinMode(INT_PIN, INPUT); // 割り込みのためのピンを設定
    attachInterrupt(digitalPinToInterrupt(INT_PIN), gpio_isr, FALLING);  // 割り込み開始
}

void loop(){
}

pinMode()で割り込みに使うピンを入力に設定
attachInterrupt() で割り込みに使うピンとコールバック関数とピンの状態がどういうときに割り込みを発生させるかを設定。
ピンは普通のピン番号と割り込みに使うピン番号は違うらしいのでdigitalPinToInterrupt() で変換



・シリアル割り込み
void serialEvent() { } という名前でやりたい処理の関数を定義します。
ただ、割り込みと言っても loop()関数が一周したあとにserialEvent() が実行されているだけなので、割り込みっぽくないです。