目次

サーボモータの動かし方

 1個のサーボモータは、電源、GND、制御信号端子の3ピン構成である。  制御信号に、20msごとに1ms〜2msのHパルスを与えると、パルス幅  に比例した角度分、軸を回転させる。これをPWM(Pulse Width Modulation)  と呼ぶ。  マイコンを利用する場合、1個のサーボモータならば、0.1mごとにカウント  アップする変数stateとパルス幅を制御する変数pwmを用意して、タイマー割込み  でPWM制御信号を生成する。  タイマー割込みが0.1msの場合は、変数stateにより次のようにサーボモータ  に信号を送ればよい。   state 0 -> 9 H出力   state 10 -> 19 (state-10) <= pwm H出力 それ以外は L出力   state 20 -> 199 L出力  タイマー割込み処理のコードは、次のようにする。   void timer_hanlder(void)   {    UBYTE tmp ;    /* 割込み関係の始末 */    /* PWM信号判定 */    if ( state > 20 ) {    tmp = OFF ;    } else {    if ( state > 10 ) {    tmp = OFF ;    if ( (state - 10) <= pwm ) {    tmp = ON ; }    } else {    tmp = ON ;    }    }    /* PWM信号出力 */    SERVO_BIT = tmp ;    /* カウンタ更新 */    state++ ;    if ( state == 200 ) {    state = 0 ;    }   }
目次

inserted by FC2 system