ロータリーエンコーダー。
半固定抵抗のような形をしていますが、ツマミを制限なく回転させることができるパーツです。
ロータリーエンコーダーの仕様
A系統/B系統のHigh/Lowを読み取ることでどちら方向に回っているか判断します。
サンプルプログラム
左回転(反時計回り)につまみを回すと左向きの矢印が表示、右回転(時計回り)につまみを回すと右向きの矢印が表示されます
A系統B系統どちらが先にHighになっているかでどちら回転か判断しています。
(P0に端子A、P1に端子B、GNDに端子Cを接続)
https://makecode.microbit.org/S12274-30254-75696-23098
となっています。
課題
個体差もあるのかもしれませんがスペックシート通りに波形が出ていません。
時計回りの時はきれいにAにHighが出てからBにHighが出る流れですが、半時計回りの際にはAとB同時にHighとなっています。
連続回転したときもうまく数値を拾えていことがあります。
micro:bitの限界かもしれません。
先達たちの記録
先達たちの記録を見るとロータリーエンコーダーの利用は過去と現在の値を見て判断するのがよさそうです。次回のチャレンジ!
https://wave.hatenablog.com/entry/2017/03/14/191000