Arduinoの外部割り込みについて調べている。UNOは2つ、Pro MicroやLeonardoは5つの割込が使えるそうだ。
今回使っているのはPro Micro(の互換ボード)。5つ使えるということになっているが、実際はうまくいかないらしい。
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ライブラリの動作が確認できた。
コメント