alchemistarkの日記

やったことのメモ

ターンテーブル制作 失敗→成功?

あちこちから先人の知恵を拝借してみたものの、うまくいかなかった。動いた!!
とりあえず記録だけ残す。

引用元は多々あるが、まず偉大なる先人としてこちらの方。

フルシロコン

見つけられなかっただけかもしれないが、私の知る限り専用コントローラーの基板を使わずに基板製作をし、記録に残しているのはこの方だけです。
他にいらっしゃったら参考にするので教えて下さい。

上記サイトでは74HC423を使っているのだが、私には残念ながらデータシートを眺めても74HC423を使う(のとその下段に74HC123を使う)理由が分からなかった。
一応公開されている回路図通りに制作すれば動作はするのだが、ワンショットの時間が非常に短い。計算してみると0.116秒程度。個人的にはその3倍は必要じゃないかと思う。
74HC123について調べてみると、ワンショットの時間はt(s)=R(Ω)C(F)らしいので220kΩ*1.5μF=330000μsec(=0.33s)といったところだろうか?*1


と、それだけ試してみればよかったのかもしれないが、他の方法を探してみた。
どうも423と123が多段になってるのが気になる。
恐らく変化状態の保持だとは思うのだけど。


変化状態の保持ならフリップフロップだろと思って調べたら結構あっさり見つかった。

デジタル・ダイアル 回路説明

こちらのページのアップ・ダウン判定回路がロータリーエンコーダの回転方向検出回路だ。
情けないが動作がよく理解できなかったのでこちらの回路をそのまま使わせて頂くことにする。
丸パクリなら423を使う回路と同じだが、こちらの方が外部部品を使わなくて済む。

あとこのアップ・ダウン判定回路はパルスの立ち上がりでしか回転方向を検知しないので、同じ回路をもう1つ準備して立ち下がりでも検出するように変更する。
後は両方の出力をORでまとめておく。*2

ここまでは簡易回路シミュレータで動作を確認した。
f:id:alchemistark:20140208001532p:plain

この出力は検知した回数分のパルスを出してしまうので、これをそのままボタン入力にするとパルス分連打したことになってしまう。灼熱も余裕だ。
それでは困るので74HC123を通す。つまりこれ以降はみんな同じ。

このクソ長い前振りからできた回路図がこちら。
言うまでもないとは思うけどA、B入力にはロータリーエンコーダのパルス出力をそれぞれ接続。

f:id:alchemistark:20140207022453p:plain

石5個もあるしたすき掛けばかりでジャンプ配線が捗る。
そして冒頭の通り動作しなかった。

修正点求む。

配線ミスを多々発見したので直したらそれっぽい動作した。
ただ回路図にミスがあります。最終的な出力が逆転しているっぽいので、74HC123の出力を隣のピンに変えてください。*3

*1:0.5sぐらいの方がいいかも?

*2:なお、ロータリエンコーダの分解能が十分にある場合は不要。秋月のロータリーエンコーダとかみたいに24パルスしか無いとかだと必要かもしれないと思って追加した。不要の場合は石3個になる。

*3:5→4 13→12