PICSYS18-XBEEでRCサーボを動かそう

PICSYS18では、4個までのRCサーボを簡単に制御することができます。また、PICSYS18-XBEEには、RCサーボの接続を想定したコネクタ/ピンヘッダーを2個用意しています。ただし、PICSYS18-XBEEでRCサーボをご利用の際には、以下の点にご注意ください。

  • PICSYS18-XBEEは大きな動作電流をRCサーボに供給することを想定して作られていませんので、実験には、動作電流の少ない小さめのRCサーボをご利用ください。特にUSBパワーでの利用時には、RCサーボの動作電流に十分ご注意ください。また、動作電流の大きなRCサーボを利用する場合には、RCサーボ用の電源を別途確保し、そこからRCサーボに電力を供給してください。
  • PICSYS18-XBEEの動作電圧は3.3VでHレベルの信号の電圧も高々3.3Vなので、利用するRCサーボによっては、うまく制御できないことがあるかもしれません。

PICSYS18でのRCサーボの制御はきわめて簡単で、以下の2ステップで利用できます。

  • pinMode関数を利用してI/OピンにRCサーボの制御機能を割り当てる。
  • digitalWrite関数を利用して、RCサーボに割り当てられたピンに、-100から100の数値を書き込む。


#include "picsys18.h" void setup() {     pinMode(CN4, OUT_SERVO1) ; // RCサーボ制御出力の割り付け     pinMode(SW2, INPUT) ; // 左     pinMode(SW3, INPUT) ; // 右     pinMode(SW4, INPUT) ; // 下:ニュートラルへ     pinMode(SW5, INPUT) ; // 選択:動作確認用にLEDを光らせる     pinMode(LED1, OUTPUT) ; } int pos = 0 ; void loop() {     if (digitalRead(SW4) == LOW)         pos = 0 ;     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) ; // サーボの回転制御値の設定     digitalWrite(LED1, !digitalRead(SW5)) ; // 動いているよ     delayMilliseconds(20) ; }