Arduino 日本語リファレンス



【パラメータ】

interrupt: 割り込み番号 0または1
function: 割り込み発生時に呼び出す関数
mode: 割り込みを発生させるトリガ

LOW ピンがLOWのとき発生
CHANGE ピンの状態が変化したときに発生
RISING ピンの状態がLOWからHIGHに変わったときに発生
FALLING ピンの状態がHIGHからLOWに変わったときに発生

【戻り値】

なし

【補足】

attachInterruptで指定した関数のなかでは次の点に気をつけてください。

・delay関数は機能しません
・millis関数の戻り値は増加しません
・シリアル通信により受信したデータは、失われる可能性があります。
・割り当てた関数のなかで値が変化する変数にはvolatileをつけて宣言します

【割り込みの使い方】

割り込みはプログラムのなかで物事が自動的に発生するようにしたいときに便利です。また、タイミングの問題を解決してくれます。割り込みに適したタスクは、ロータリエンコーダの読み取りやユーザーの入力の監視などです。

割り込みを使うことで、ロータリエンコーダからのパルスを漏らさず受け取ったり、サウンドセンサでクリック音を検知したり、フォトインタラプタでコインが落ちるのを検出したりといった処理を、他の処理をしながらでも行えます。

【例】

ピン2の状態の変化に合わせてLEDを点滅させます。

int pin = 13;
volatile int state = LOW;

void setup() {
  pinMode(pin, OUTPUT);
  attachInterrupt(0, blink, CHANGE);
}

void loop() {
  digitalWrite(pin, state);
}

void blink() {
  state = !state;
}



[目次へ戻る]

Creative Commons Attribution-ShareAlike 3.0 License.
このドキュメントはArduino Teamにより執筆され、Takumi Funadaが翻訳し、一部加筆修正したものです
ご意見はtf at musashinodenpa.comまでお送りください [Arduino wiki]