自作デジポット(デジタルポテンショメーター)---(1)

 ーーーグレイコード(1)---
 縁あって,X9C,AD5220というデジタルポテンショメーター
 を弄る機会に恵まれました。
 存在は,たまに見かけて知っていましたが,スピンドルの
 DCモーターのコントロールもなんとかできました。
 そこで,同じような原理で,自作してみようかなと思いたち
 ました。
 構想として,ロータリーエンコーダーや,タクトスイッチ等で
 アップ・ダウンができること。
 7セグLEDかLCDでモニターできること等,できればいいなと
 思ってます。
 そこで,いろいろ調べ始めました。手始めに,
 ロータリーエンコーターをあたりました。
 以前,自作のMPGを作成した時に,ちょっと,調べたのですが
 調べるといくつか分からないことがでてきました。
 まず目にとまったのが◯月の,
  http://akizukidenshi.com/catalog/g/gK-00083/
 の取説の記事で,
  現在の値をf(t1),一つ前の値をf(t0)とし,記号”<”を
  左ビットシフト,”+”を ex-or をそれぞれ表すものとし
  て,
    D=f(t0<1)+f(t1)
  という回転判別式を定義します。
  (1)時計回りの場合
     入力系列が 00,01,11,10・・・・・・であるので,
    D0=(00<1)+01=01     D1=(01<1)+11=01     D2=(11<1)+10=00     D3=(10<1)+00=00  の記述があり,演算結果の2ビットめを見ると,回転方向  を判別できると記載がありました。  ここで,なぜ,シフトするのか,なぜ,ex-orをするのか,  釈然としませんでした。  いろいろHPをあさりましたが,どうやら,グレイコードに  関係がありそうだということが諸兄のHPで分かりました。   ロータリー・エンコーダの使い方
  ロータリーエンコーダの使い方
  
 等を見て,シフトやex-or グレイコードに関係する
 ということがなんとなく分かりました。
 グレイコードについて,調べて見ます。

“自作デジポット(デジタルポテンショメーター)---(1)” への2件の返信

  1. AGENT: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
    猛牛ロックさん,こんばんは。
    書き込み並びに情報ありがとうございます。
    使う予定は,インクリメンタル,秋月の安い物の予定です。
    当初,割り込みとDFFを使おうかなと考えました。
    以前,これで,MPG関連のもの作ったので。
    ただ,秋月のものにあった記載が気になって,調べ始めた次第です。

  2. AGENT: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36
    グレイコードの事は知りませんでした。
    でも使う予定なのはインクリメントタイプですよね?
    それなら、ChaNさんのが役に立ちます。
    基本的には、片側の相が変化(↑又は↓)の瞬間にもう一方を読めば回転方向は判ります。
    つまり、片側の↑で、外部割り込みをかけて、もう一方を読んでHIGHなら正転、LOWなら反転、みたいな
    感じなのですけど、それで通用するのはチャタリングの無い光学式のやつです。
    機械式のおもちゃエンコーダはより難しいです。
    私も最初は上記のように割り込みでやったと思います。で、取得後にはチャタリング対策として、短時間
    時間をおいてから再取得させるようなやり方だったと思います。
    でもそれだと高速回転だったりすると結構きついです。
    ChaNさんの方法だと、チャタリング対策が既に入っているので、簡単かつ正確に読み取れます。
    最近のものは、(例えば、疑似手パなども)殆どこの手法を使っています。
    ※簡単に言えば、両相の変化を2回分(前回と今回)とって、あるパターンなら正転、反転とするものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA