まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

2014年12月

ロータリーエンコーダ実験

 半年くらいまえにちょっとやってうまくいかず放置していたロータリーエンコーダの実験、うまくできたので整理。

環境:MacOSX 10.10 / Arduino IDE 1.0.6 / Seeeduino Lite(Arduino Leonardo互換)

ロータリーエンコーダはA相とB相の状態を見て回転方向を調べる。C端子はGND、AとBは10KΩでプルアップすることになっているが、ピンのプルアップ設定でよい。

2014rot1

コードは以下を参考に少し変えた。A相の変化で割り込みを使ってBの変化を読み方向を決める方式。
Leonardo系はpin2の割り込み番号がUNO系の0と違って1なので注意。

ロータリーエンコーダーを使ってみる(忘れないページ)
arduinoでロータリーエンコーダを使う (創ったり投げたり。)

https://gist.github.com/houmei/6524d5254652c7460a6e

私の環境では大量のテキストを連続してArduino IDEのシリアルモニタに送るとArduino IDEが応答なしになってしまう現象があった。なので、適当にdelay()を入れ、数値も変化した場合のみ送ることにした。
元のソースでは回転方向を'R'、'L'でいったん記録し、続くif文で++または--している。'R'を+1、'L'を-1にして続きでそのまま加算してやれば簡単になると思って改変したら'R'方向(ClockWise)の動きが渋くなってしまった。なんでプラス方向だけスッポ抜けることがあるのか不明だが調査保留とした。

追記:
Arduino IDE1.0.6の最新ファームを純正Arduino Leonardoに書き込んで実験→再現。Arduino UNOでも再現。

 さて以前やったときなぜうまくいかなかったか。ひとつはロータリーエンコーダの理解不足でカチカチと動かした時にA相B相の状態が固定になると思っていた。しかしクリックできる所で止まるとA,BともCとの接続はOFFになる。
 もうひとつはロータリーエンコーダによる端子配列の違い。

 これは上からC,B,Aの順。秋月電子のキットから流用したもの。
2014rot2

 これは上からB,C,Aの順。どこで買ったか忘れた。最近見かけるLED内蔵の透明な軸のタイプもこれ。
2014rot3

 これを間違って配線すると、片方向にしか回らないという現象が発生する。


秋月の超小型USBシリアル変換モジュールとMacOSXでのはまり所

 秋月電子の超小型USBシリアル変換モジュールAE-FT234Xとstrawberry-linuxの7セグメント汎用ディスプレイを接続してみた。

超小型USBシリアル変換モジュール(秋月電子)
汎用ディスプレイモジュール(strawberry-linux)

 5V/GND/Tx/Rxだけと割りきった仕様で超小型。
2014AEFT234X1

こんなかんじ

 CB0パッドは設定変更が可能。
2014AEFT234X02

 パイロットランプの青色はやめよう。まぶしい。
2014AEFT234X04


 7セグ8桁の汎用モジュールとつなぐのは簡単。電流も100mA以内で問題ない。
2014AEFT234X


 FTDIのドライバは以下からダウンロードできる。
Virtual COM Port Drivers

・Windows7(64bit) OK
・MacOSX 10.9 (2.2.18-x86 64bit) OK

 MacOSX 10.10(Yosemite)でデバイスは認識するがシリアルポートが見えないという問題があった。

 以下を参考にした。
Yosemite(Mavericks)でFTDIが動かない件

 私の環境ではすでにAppleのFTDIドライバは殺してある。それでも動作しなかったのはYosemiteからドライバの認証が変わっているかららしい。念のためシステム環境設定の「セキュリティとプライバシー」を確認してみると、”ダウンロードしたアプリケーションの実行許可”のチェックボックスが以前設定した”すべてのアプリケーションを許可”が戻っている。30日以上経ったので戻したよとのメッセージが出た。
 ということであらためて設定しなおしてから再度ドライバをインストールし、以下を実行した。

cd /System/Library/Extensions
sudo chmod -R 755 FTDIUSBSerialDriver.kext
sudo kextload FTDIUSBSerialDriver.kext

 これでYosemiteでも動作した。

 ついでだが私はMacOSX上ではSerialToolsを使っているがAppStoreに対応したらしいので更新した。
SerialTools(Mac App Store)

記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ