786 IXY210F レンズエラー(さらに逸脱)
考え方としては、4ビットでコントロールできるのですが、実際問題として
考えた場合、ビットの1と0はおおまかに考えてTTLレベルだと電圧5Vとして
2V以上がH、0.8V以下がL、普通は抵抗を介して5VがH:1、GNDがL:0という感じで
使います。
この考え方が通用するのは信号のON/OFFで1ステップ動かす、
すなわちユニポーラのステッピングモーターだけなのです。
バイポーラのステッピングモーターは正負の極性切り替えなので
それぞれ4個のトランジスタが必要であることがわかりました。
あるいはモーターの正逆を切り替えるフルブリッジドライバが必要です。
「メカトロアイデア」より孫引させていただきました
ところで、世の中には「バイポーラステッピングモータードライバー」という
便利そうなICが存在します。秋月で一番安いのは一個100円のTA7774PGです。
このICを見るとA,Bのコイルの極性をAin、Binに信号があるたびに
切り替えて出力するものです。2個100円のSOPパッケージの
TA7774FGしかなかったので、とりあえずこれを入手し
φ0.55mmの足をつけてブレッドボード仕様のDIPパッケージもどきにしました。
(DIPパッケージは互換のTB6674PGが一本200円で売られています)
これには2つのコイル端子とその電源端子が用意されています。
AinとBinの入力端子にH/L信号でコイルの極性が逆転します。
ということは Ain:H Bin:H → Ain:L Bin:H → Ain:L Bin:L → Ain:H Bin:L
で1ループということになります。つまり2ビットでコントロールできます。
例のBASCOM-AVRで書くと
do
Portb = &B00000000
Waitms 50
Portb = &B00000001
Waitms 50
Portb = &B00000011
Waitms 50
Portb = &B00000010
Waitms 50
loop
と、こんな感じのコードでいいことになります。
久々にHIDaspxというAVRライターで、一本100円のATtiny2313に
簡単なコードを書きこんでLEDで試しているところです。
このライターそのものもATtiny2313でできています。
このライターをUSBに接続したままで、右側の評価ボードを使います。
これはATtiny2313専用の評価ボードで、DポートとBポートに
LEDやスイッチを差し込めるようにピンソケットと抵抗がつないであります。
この状態でBASCOM-AVRでコードを書いて、コンパイル、書き込み、
動作チェック、デバッグ、再書き込みと、何も着脱せずに繰り返せます。
内部に発振器があるし、USBの電源で動作しますから、
ISP(In-System Programming)回路上で書き込みできるだけでなく、
ライターをつけたままで動作検証もできるという簡単さです。
PICより絶対にとっつきやすいと思うんですがいまいち流行りませんでしたねえ。
毎回非常に恥ずかしいプログラムですが、
右回りスタート、左回りスタート、ストップ、遅く、速く、の5つのスイッチで
2つのビットが交互に反転するドライバーができました。
LEDで動作を確かめています。