株式会社ジーテック

制御機器を小ロット多品種で設計製作

マイクロサーボ(SG92R)を使ってみる

マイクロサーボを試してみました。サーボが動いたときに電源がドロップしてしまうので、VCCは5Vを供給し、サーボの電源も5Vが供給されるように配線しています。マイコン自体は3.3Vを使用していますので、1.7Vぐらいドロップしてしまっても大丈夫です。

サーボへの制御信号は3.3Vでも問題無いようです。このテストでは10kのボリュームにあわせてサーボが連動するようにしています。

使用機器

使用機器は下記のとおり。他、パソコンや電源、PICKIT2も当然ながら必要です。

マイクロサーボ Tower Pro Pte Ltd SG92R
マイコンボード(PIC16F1947搭載)
ZEATEC co.,ltd. ZT-PIC16F194701(3.3V仕様)

接続

接続は配線図と写真を参考にして下さい。

ちょっと解説

ライブラリを作るまでも無いと思ったのでメインループに下記のソースを記載しているところがメインの制御ソースです。ちなみにPWMも使っていません。PWMを使うとサーボの接続数が制限されると思うので使ったこと無いです。 counttimer_servo_oneという関数は20msec単位で0以外が割り当てされ、20msec単位でサーボの処理をしています。 0.5msec+アナログ値の時間分を1とし、終わったら0にする。それを20msec単位でループしています。同じ要領で複数用意すればいくつかのサーボが同時に制御できると思います。 また、サーボの制御でdelayを多用してしまうのでシリアルポートはusart1では無く、シリアル信号の割り込みによってサーボへの信号のタイミングが変わってしまうため、usart2のほうがいいと思います。

if(counttimer_servo_one != 0){
    counttimer_servo_one = 0;
    servo_angle = analog_value * 0.176;
    output_bit(PIN_E0,1);
    delay_us(500);
    for(tmp1=0;tmp1<servo_angle;tmp1++){
        delay_us(9);
        delay_cycles(2);//10.5us
    }
    output_bit(PIN_E0,0);
}

©ZEATEC co.,ltd.