社会人二年目
前回、PWM Inputを使って自分で出したPWM信号を受信しました
mozyanari.hatenablog.com
このコードで実際のプロポを接続してサーボ信号を受信しようとしたのですが、
信号の周期、Duty比を計算したところ少し汚い数字が出てきました
b=55000、クロックの8Mhzなので
8*10^6 / 55000 =145Hz
なので、実際にプロポのサーボ信号をロジアナで確認してみました
見てみると、
周期15ms=66Hz、Duty比10%の信号が出ていました
計算と異なります
よく考えてみると、前回の記事でも言及しましたが現在の設定では
8Mhzのクロックでカウンタが動き、Max 65535カウントしかできないので、
8*10^6/65535=122Hz
以上の周期しか正しくカウントできません
そりゃ計算の結果がおかしくなるわ
という訳で、以下のようにプリスケーラの設定を0→7に変更して
カウンタクロックを8Mhzから1MHzに変更しました
こうすることで
1*10^6/65535=15Hz
以上のサーボ信号を受信できます
やってみた結果は以下のようになり
b=15000、クロック1Mhzなので
1*10^6 / 15000 =66Hz
となり、想定していた通りの結果が出ました
(c、dの値は変更する前の値を表示しています)
また、余談ですがプロポのサーボ信号の上限、下限、ニュートラルは意外と狭く
今回の設定ではカウンタが2000(13%)→1000(6%)→1500(10%)これぐらいの変化量です
結局言いたかったのは、プロポの信号は意外と遅いので設定をしないと値が取れないということです
次はモータを動かします