さてさて、週末の台風は南へ外れ何事もなくホッとしてます。
今回はPICのプログラムがメインのお話です。
受信機からのパルス信号をPICマイコンで計測するのですが、いろいろアプローチはあると思います。
パッと思いついた方法はサンプリングですね。
つまり、割込みタイマーを使ってパルス信号がONしている時間を計測するという方法です。
今回のPICマイコンは内部クロックを最大32MHzまで設定できます。Tosc=31.25nsとなりナノ時間の世界ですが、実際の動作クロックは1/4に分周されFosc=125nsとなります。さらに割込みはプリスケーラという設定に依存するので動作クロックは1/x(x=1,2,4,8...)となります。
あまり処理速度を上げても消費電力が多くなるので、予選落ちしないように動作クロックは抑え目にしたいと思います。
ではどのくらいが適切かというと、内部クロック:8MHz で プリスケーラ:1/4、割込みタイマーは50µsの設定で行こうと思います。
つまり、パルス幅は約1.5ms=1500μsなので50μsで割ると"30"カウントとなるはずですね。
とまぁ、簡単に書いてますけど、この設定を見つけるのにExcel使って計算が結構大変でした〜…
I2C通信のライブラリは、「きむ茶工房ガレージハウス」さんのライブラリを使用させていただきました。
多分、自作してたら今年中には終わらないくらいのシロモノです。
お陰様で、プログラム修正やデバッグはスムーズに行えるようになり、ブレッドボード上で動くようになりました。
パルスは実際の受信機に接続し、そこからPICマイクロのボードに引き込みます。
プロポの設定で、スロットルのチャンネル2をチャンネル3とミキシングします。これにより、スロットルが2,3チャンネル同じ動き、すなわち受信機側で同じパルス幅の信号を出力することができます。
計測したパルス幅は約1.5ms=1500μsなので、先ほどの計算値とほぼ同じ30前後なのでヨシとします。
取り合えず、ブレッドボードをクルマに乗せるわけにはいかないので基板を作ります。
PICはプログラムをまだまだ変更すると思うので、取り外し可能とします。
LEDも破損しても交換できるようにコネクタにしておきます。
テスタで配線チェックをした後、受信機の3チャンネル目にコネクタを接続します。
おぉ、見事に動きました~‼️
送信機のスロットルの動きに連動してます。
まぁ、ブレッドボード上で動いていたので動いて当然なんですが、作ったプログラムが動くと嬉しいものですね。ちょっとエアインテークLEDの光量が他のLEDとのバランスが悪いので調整します。
それではまた‼️
























