QUIMAT製格安サーボQKY66
こんにちは、くろべこです。
今回は電子工作の時に活躍するRCサーボモーターを紹介します。
一般的にはSG-90(Tower Pro)が有名で、使っている人も一番多いのではないでしょうか?
しかし、1個1000円弱と結構値が張るもので頻繁に購入が難しい懐事情の人もいるかと思います。
という事情から今回はSG-90の1/4程度で購入可能な格安中華製サーボモーターQKY66(QUIMAT)の紹介です。制御はArduino-nanoでServoライブラリを使用していきたいと思います。
また、内部構造の理解として手元にあったQKY66を分解したいと思います。
QKY66の仕様
- 動作電圧:4.2V~6V
- トルク:1.5kg/cm
- 動作速度:0.3sec/60deg
- 信号線:茶GND/赤VCC/橙Signal
- 制御角度:0~160deg
- PWM周期:20ms
- 制御パルス:0.6~2.05ms
赤文字の個所については私の個人的な検証による実験値になります。その際の記事は以下になります。
QKY66を分解してみる
内部構造の理解として、サーボモーターを分解してみます。
ケースの固定は2本のネジによって留められており、ケースに貼られているシールに切り込みを入れることで簡単に外すことが可能です。
下記写真は裏面の蓋を外した写真です。
左のモーターは駆動用のマイクロDCモーターです。
右にある基板はポテンシャルメーターの値をフィードバックする基板でしょう。
次に上面蓋を外してみます。
こちらはギアボックスのようになっているようです。
駆動軸の回転を4個のピニオンギアによりポテンシャルメーターに伝えているようです。
駆動用の1段目のピニオンギアにはメカストッパーが付いており、サーボモーターが一定以上の回転角度に行かないような仕組みになっています。なので、制御指令を誤ると壊れる可能性ありです。
動かしてみる
まずはServoライブラリを使用して以下のようなコードで動かしてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
#include <Servo.h> Servo sv; void setup() { sv.attach(9); } void loop() { sv.write(0); // 0度に設定 delay(500); sv.write(90); // 90度に設定 delay(500); sv.write(180);// 180度に設定 delay(500); } |
恐らく、動かしたとき「カチッ、カチッ」と音がすると思います。これは、サーボギア内のメカストッパーで駆動角度のリミットがかかっていると推測します。
Servo.hライブラリでは***.attach(a,b,c)関数において第二第三引数を指定しないと、パルス範囲が0.5ms~2.5msに設定されてしまいます。SG-90であれば問題ないと思いますが、今回のような得体のしれないサーボに対してはパルス範囲を設定する必要があります。
そのパルス範囲が第二(最小)第三(最大)引数に該当します。
という事で、使用の所に書いたパルス範囲を指定しましょう。attach関数を下記のように書き換えます。
1 |
sv.attach(9,650,2050); |
※音がする場合はパルス範囲を微調整してください
おわりに
今回は中華の格安サーボQKY66の紹介と動作確認をしてみました。
標準ライブラリではちょっと工夫をしなくてはいけないので注意が必要です。
このQKY66以外にも格安サーボはいろいろあると思いますが、びみょーーにパルス範囲が異なってくると思うので使う際には確認してみた方がいいと思います。
では、今回はこんなところで失礼します。
ばいばい
>>本記事で使用した制御マイコン
コメント