2017年12月11日月曜日

PIC16F1705 サーボモータの設定

PIC16F1705を使用して、サーボモータの制御を試みています。


後閑哲也先生のPIC16F1モジュールの使用説明を参考にさせていただき、CLC機能の設定をする事で、PWM出力でサーボモータを制御する事ができます。

PWMのパルス幅は、2.4msなのに対して、サーボモータの制御信号の周期が20msと長いので工夫が必要です。 Timer1,2 及び SRラッチ,Dフリップフロップを組み合わせて 2.048ms-ON / 20.48ms-周期 のパルスを生成し、制御用のPWMとANDを取って出力をするといった設定となります。



実際この設定を行った所、どうもmTouchの処理(Timer6の割込み処理)が重いようでサーボ側へ出力信号が不安定でした。 そこでCPUのクロックを 8Mhzから32Mhzに上げてなんとか不安定を解消できました。
(※手持ちのUSBオシロの性能が低く、Timer1のオーバーフロー信号を捕まえる事ができずに手間取って時間がかかったのはまた別な話。)20171210+6.0h









0 件のコメント:

コメントを投稿

pic16F18326のNCO1の機能を使った信号発生器

pic16F18326のNCO1の機能を使った、信号発生器をテストしました。 8Mhzのセラクロックを内部PLLで4倍し、FOSC 32Mhzを基に動いています。 pic16FのNOC1の仕様上は上限16MHz程度まで発信できるようですが、試していません。 ロータリーエンコーダー...