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インジケータのアナログ版も作れるかも? そこは努力目標で・・・ んじゃ、よいお年を・・・ |