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と表示されます。

inserted by FC2 system