PIC24F-MOD-GA002UにはUSB通信チップが実装されており、PCと簡単に通信することができます。ここでは、Windowsのハイパーターミナルなどを利用してキーボードから入力した数値でRCサーボの回転角を制御するプログラムを示します。
usbservo1.c: USB経由のRCサーボ制御
#include "picsys24.h"
#include "stdlib.h"
void setup()
{
pinMode(CN4, OUT_SERVO1) ;
Serial1_begin(19200) ; // USBの初期化、COMポート的には19200ボーに設定
}
int ang1 = 0 ;
int idx = 0 ;
char buf[20] ;
void loop()
{
char c ;
if (Serial1_available()) {
c = Serial1_getc();
Serial1_putc(c);
if (c == '\r') { // 行の最後でサーボの操作
Serial1_putc('\n') ;
buf[idx] = '\0' ;
ang1 = atol(buf) ; // 文字列を数値に変換
digitalWrite(CN4, ang1) ;
idx = 0 ;
} else { // 文字の蓄積
buf[idx++] = c ;
}
}
}
ハイパーターミナルなどでの通信線の設定は、19200ボー、8ビット、パリティなし、ハンドシェイクなしで設定してください。