Quantcast
Channel: JH7UBCブログ
Viewing all articles
Browse latest Browse all 440

Arduinoでロータリーエンコーダ

$
0
0
 今日は、Arduinoでロータリーエンコーダを使うスケッチを試しました。
 
 Arduinoでロータリーエンコーダを使うスケッチは、以前にPICでロータリーエンコーダを使う時にwsnakのブログのスケッチを参考にさせていただきました。
 
 今回は、JA2GQPさんのダウンロードサイトからダウンロードしたライブラリを試しました。(Arduino AD9850 DDSの中にあります)
 
 ライブラリは、rotary.hを使いました。原典は、Ben Buxton氏の「Buxtronix」というウェブサイトにあります。
 
スケッチは、次のとおりです。
 
イメージ 1
 
 Arduinoとロータリーエンコーダを接続して動作をチェック。たいへんよく動作します。
 
 ロータリーエンコーダのA,B端子をArduinoの2,3番ピンに接続しました。
 
 ロータリーエンコーダは、秋月電子で販売しているRE-160F-40E3-20A-24Pです。(200円)
 
イメージ 2
 スケッチをArduinoに書き込み、RUNするとエンコーダの回転方向によって、「Right」「Left」をシリアルモニタに表示します。
 
イメージ 3
 このスケッチは、Arduinoの割り込み処理を利用しています。
 
 ピンの状態が変化した時に割り込みが生じ、ISR(Interrupt Service Routine)で処理を行った後、再びメインルーチンに戻ります。
 
 ロータリーエンコーダの動きに応じてかなり確実に動作しますが、Right と Leftが逆?
 
 AとBの接続を逆にすると正常。
 
 実際にどのようにエンコーダの信号を処理しているのか、プルアップは必要ないのか、など分からないところも多いです。
 
 とにかく、このライブラリとスケッチでロータリーエンコーダの処理ができます。
 
 ついでに、Arduinoの割り込み処理について、ちょっと勉強しておこうと思います。
 
 10/10追記
 
 プルアップは、ライブラリの中で行われるので、外付けのプルアップ抵抗は必要ありません。
 
 秋月のロータイr-エンコーダーでは、Right と Leftが逆になるようです。
 
 aitendoのエンコーダでは、スケッチのとおりになるようです。
 

Viewing all articles
Browse latest Browse all 440

Trending Articles