DIPマイコンLPC1114FNでmbed入門 <3>サーボ・テスタの製作 ~その2~
■サーボ・テスタの製作 ~その2~
前回ハードウェアが完成したので、後半は、サーボ・テスタのプログラミングを楽しみます。
●mbedプログラミング
◆メインのソ-ス・プログラム
I2Cライブラリは、Publishしてあるプログラムからそのまま取り込んでください。
// Servo Tester #include "mbed.h" I2cLCD lcd(dp5,dp27,dp26); //sda scl reset double vr1,pduty1; #define ON 1 int main() { lcd.cls(); |
◆プログラムの説明
マイコンに内蔵されたA-Dコンバータによりボリュームの電圧を読み込み、0~1.0の値に変換します。この変換値を1.0~2.0msのパルス幅に変換して、PWMとして出力し、サーボを駆動するプログラムです。パルス幅の値はLCDに表示します。
I2cLCD lcd(dp5,dp27,dp26); sda scl reset端子の設定 dp26には何も接続しない。 PwmOut servo1(dp18); サーボ接続用PWM端子の設定 AnalogIn vr1_adc(dp9); アナログ入力端子の設定 vr1=vr1_adc.read(); ボリュームの電圧をA-D変換により読み込む 0~1.0 pduty1=(vr1+1.0)/1000; vr1の値をms単位に変換 servo1.pulsewidth(pduty1); pulsewidthを設定し、サーボを駆動する。 |
◆Publish
次のmbed URLでパブリッシュしています。
https://developer.mbed.org/users/takeuchi/code/20160301_Servo_Tester/
●動作確認
プログラムが完成後、書き込みアダプタなどを使用して、1114FNにbinファイルを書き込みます。それでは動作確認を行います。
◆ニュートラル
サーボ・ホーンは取り付けない状態とします。電源をONし、ボリュームを回します。ボリュームの回転に合わせてサーボの軸が回転すれば正常に動作しています。1.5msに合わせて、サーボ・ホーンを写真を参考にして水平に取り付けます。
◆パルス幅最小
ボリュームを回して1.00msに合わせます。これがパルス幅最小値です。サーボ・ホーンはこの位置になります。
◆パルス幅最大
ボリュームを回して2.00msに合わせます。これがパルス幅最大値です。サーボ・ホーンはこの位置になります。
ボリュームを連続回転して、サーボ・ホーンがスムーズに回転することを確認してください。このサーボ・テスタがあればサーボのニュートラルを簡単に出すことができます。また、サーボと同じ様にパルス幅で制御しているラジコン用モータ・コントローラ(ESC)なども同じように動作確認できます。
サーボをロボットやラジコン飛行機に取り付ける際にニュートラルを出すのにサーボ・テスタはとても便利に使えます。かわいがってあげてください。
竹内浩一