信号の入力って? |
前回のサーボに信号を送る時は、PICで勝手に電気を流したり止めたりすれば良いだけだったので、プログラムは簡単だったけど、受信機からの信号を受け取るには、受信機と繋いだPICの足を常に監視し、いつONになるか、OFFになるかを調べ続けなければいけないのでちょっと面倒..(^^ゞ |
パルスの幅は? |
受信機から電気が流れてきて、ONになってから、電気が切れるOFFになるまでの間カウントし、時間を計らなければならない。 時間の計り方は、前回のサーボを動かした時と同様、1サイクル時間(PICが1命令を実行する時間)で計る。 実際の受信機から送られてくる信号の長さは、1mS〜2mSで、サイクルになおすと、2500〜5000になって数字が大きくなるので、前回同様、25サイクルで1とカウントする。(100カウント〜200カウント) |
プログラミング開始! |
|
ちゃんと計れた?? |
さて、受信機から来る信号の長さを計るプログラムを作ったが、計っただけじゃなんにも起こらない...(^^;; と、言う訳で、計った長さ(100カウント〜200カウント)をそのままサーボに出力してみて、ちゃんとサーボが動くかどうかのテストプログラムに改良! 実際に作ったプログラムはこれ→「savo2.asm」(ダウンロードして、エディタか、メモ帳等で開いてください....って、こんなしょうもないプログラムは誰も見ないかぁ(笑)) これで、プロポのスティックを動かすと、その通りサーボが動けばOK!!....(って、PICを使う意味無いジャン(^^;;) |
ちょっと心配!? |
さて、受信機から電気が来てる時間を計る時に、ONの途中から計り始めて、実際より短くなってしまったら?? 受信機から来る信号は、ONの長さよりOFFの長さの方が、10倍くらい長いので、計り始めがONになってる事は、あまりないのと、仮に1回ぐらい間違っても、すぐに正しい値を送れば、サーボはほとんど気付かない!? と、言っても心配なので、一応計った値が極端に短い時は、もう一度計りなおすようにプログラムしてます。(^^ゞ これでも心配性の人は、計る時に信号がいきなりONになってたら、一度OFFになるまで待ってるループを追加すれば間違い無いんだけど、実際にサーボの動きを比べてみたら、全然変わらなかった(笑) |
チャンネル数が増えたら.. |
例えば、4CH受信機で4CHとも繋がってる時は、1CHから4CHまで、順番に長さを計って、それぞれの処理をすれば良いんだけど、仮に4CH用に作ったプログラムを4CHは使わないからと、3CH受信機に繋げて動かすと、プログラムは4CHの信号を見に行ったままONになるのを待ってるので、結局いつまでたってもONにならずプログラムはそこで停止したままになってしまう。(^^;; と、言う事は、しばらく待ってもONにならない時は、そのチャンネルは使ってないものと判断する様に、プログラムを改造しないといけないかも.....(まぁ、その時はその時で考えよう(^^ゞ) |
更新日2000.7.17