STM32F103C8T6 ロータリーエンコーダのテスト
2018.2.6 JH7UBC
STM32F103C8T6ボードで、ロータリーエンコーダを使うテストです。
STM32F103C8T6には、様々な割り込みがありますが、ここでは、外部割込みのピン状態変化割り込みを使います。
STM32F103C8T6では、全てのピンが利用できることから、Arduinoより、自由度が増します。
割り込みを使う関数は、Arduinoと同じ attachInterrupt()で、書式は、
attachInterrupt(pin,function,mode);で次のように設定します。
pin | GPIOのピン番号(例 PB12) | |
function(handler) | 割り込み発生時に呼び出す関数 | |
mode | RISING | ピンの状態が、LOWからHIGHに変わったときに発生 |
FALLING | ピンの状態が、HIGHからLOWに変わったときに発生 | |
CHANGE | ピンの状態が変わった時に発生 |
今回は、秋月電子で販売しているロータリーエンコーダをPB12とPB13に接続して、テストします。
スケッチです。
ここで使用するライブラリrotary.hは、BuxtronixというWebサイト
またはJA2GQP局のダウンロードサイトのAD9850 DDSの項目からダウンロードできます。
ロータリーエンコーダを接続するピンのpinModeは、INPUT_PULLUPに設定します。
ロータリーエンコーダを時計回り(右回り)に回すと、Arduino IDEのシリアルモニタにRightと表示され、
反時計回り(左回り)に回すとLeftと表示されます。