Arduinoの外部割り込み

電子工作

 Arduinoの外部割り込みについて調べている。UNOは2つ、Pro MicroやLeonardoは5つの割込が使えるそうだ。

 今回使っているのはPro Micro(の互換ボード)。5つ使えるということになっているが、実際はうまくいかないらしい。

 Pro Micro Interrupt problems

 int 0、int 1はピン3と2に関連付けられているが、int 2から4がうまく使えないとか書いてある。int 2と3はシリアルを無効にした場合のみ使用可能ともある。
 さらに以下のURLが示されている。

 The Problem ( and Solutions ) With Arduino Interrupts

 ここには、ピン3、2、0、1がそれぞれint 0、int 1、int 2、int 3 に対応するとある。int 4はどこいった?

 とりあえず、このへんをメモしつつ、作業をすすめる。まだ、ピンも立ててないし。

 と、ここまで書いて2週間。下書きにしたままだった。その後の展開。

 以前、試したコードは、外部割り込みを使ったもの。

 ロータリーエンコーダを使う part 1 : 外部割込みとチャタリング対策

 この方が、割り込みを使わない、複数のロータリーエンコーダーを使うバージョンを紹介していた。

 ロータリーエンコーダを使う part 3 : “Dual Encoder”

 これを試したらすんなり動いたので、これでよしとした。ありがとうございました。

追記

 さらにESP32でもいろいろテスト。ESP32でRotaryEncoderライブラリの動作が確認できた。

 ロータリーエンコーダーをESP32で使う

コメント