2017/12/31(SUN) 【Nチビ】SPD2:年末なのにマイコンと格闘中
スピードメーターの第2弾ね。
完成まで辿り着くか不明ですが・・・
7セグでなくてアナログ表示しようかと
で、なぜか
サーボモーターをPICのPWMで制御しようと・・・
という構想までは前回。
PICマイコンが今まで使ってた
PIC16F627では期待するパルスが作れないので
マイコン探しから・・・
で、内部クロック数とかPWMの対応とか
スペックを比べて
PIC12F1822を使うことに決定!
んで、足の数も違うので
プログラムの焼くブレッドボードも用意
フォト

PIC16F627は18本足でした。
PIC12F1822は8本足。
でね。
足が減ったからプログラムも楽だろうと思ったら
いや〜レジスタのBANKが32枚もある。
高性能過ぎてわけわからん・・・
あと焼くのにPICKIT2を使っているんだが
デバイスファイルを更新しないと対応してなかった・・・
で、もろもろで挫折しかかるが
なんとか踏みとどまり
とりあえずは、GPIOでLEDを光らせてみる
フォト

手前のLEDは確認用で、オンにしていない
GPIOがオンになってないか?の確認用です。

で、次にPWMを使ってみる
上がパルスを入れているので若干暗い。
手前は普通にオンです。比較してみました。
フォト

四苦八苦しましたが、パルスを作るのに成功。

で、サーボモーターへパルスを入れてみますか?
モーターのスペックでは以下のようになってます。
フォト

つまり20ms周期のパルスを作らないといけない
で、デューティーは0.5msから2.4msの範囲だそうだ。
ここでも四苦八苦。
まずはクロック数を2MHzにして
TMR2のプリスケーラーは64倍
で、期待するパルスを作ってみる
0.5msのパルスで-90°
フォト

1.45msのパルスで0°
フォト

2.4msのパルスで90°
フォト

はい。とりあえず、ここまで制御できました。
あとは、またホールICで速度を測定して
それに合わせてサーボを回すと。

ん?A/D変換使えば、
YPVSインジケータのアナログ版も作れるかも?
そこは努力目標で・・・

んじゃ、よいお年を・・・