RCサーボの利用

PIC24F-MOD-GA002Uには小さなモジュール基板上に、タクトスイッチ、外部装置の接続端子などが実装されているため、ブレッドボードなどを使用しなくても、いろいろな実験を行うことができます。

サーボモータが要求する電流容量などに注意する必要がありますが、PIC24F-MOD-GA002Uではブレッドボードなどを用いずモジュール基板だけで、CN3に2個、CN5に1個の計3個のRCサーボを接続して制御することができます。

PICSYS24では、4個までのRCサーボを任意のI/Oピンに接続し、制御することができます。
RCサーボの制御は、基本的に2つの操作で行います。例えばRB0ポートにRCサーボを接続した場合、以下の2つの操作を行います。

  • pinMode(RB(0), OUT_SERVO1):RB0にRCサーボ出力機能の1番目を割り当てる
  • digitalWrite(RB(0), 50):RB0のサーボの回転角を最大値の50%に設定する

RCサーボの制御に必要な継続的なPWMパルスの出力処理は、PICSYS24が自動的に行います。

exservo1.c: 1個のRCサーボの制御



#include "picsys24.h" void setup() { pinMode(CN4, OUT_SERVO1) ; // RCサーボ制御出力の割り付け pinMode(SW2, INPUT_PU) ; pinMode(SW3, INPUT_PU) ; } int pos = 0 ; void loop() { delayMilliseconds(20) ; if (digitalRead(SW2) == LOW) pos += 1 ; if (digitalRead(SW3) == LOW) pos -= 1 ; /* 値は-100(%)から100(%) */ if (pos > 100) pos = 100 ; if (pos < -100) pos = -100 ; digitalWrite(CN4, pos) ; // サーボの回転制御値の設定 }

CN4はPIC24F-MOD-GA002UのRCサーボ用のコネクタで、コネクタのVCCには、USBバスから得た5Vの電源電圧が供給されており、RCサーボを駆動できるようになっています。なお、CN4のI/Oピンは具体的にはpic24f-mod-ga002u.hで、#defineによりRB(8)と定義されています。