ラジコン用サーボモーター(以下サーボ)は、マイコンからの信号で手軽に位置決め制御をさせることができ、小型ロボットの部品として重宝されています。
サーボの信号線をマイコンの出力ポートに繋げば動かすことが出来るのですが、回路構成によっては電源投入時に一瞬だけ勝手に動いてしまいます。この現象について調査した内容を公開します。
調査はFutabaのS3003、GWSのMicroについて行いましたが、大抵のアナログサーボに共通するのではないかと考えています。
電源投入時にサーボが勝手に動くという問題は、 電源投入後にサーボをフリーにしようとしているときに起こります。電源投入後直ちに位置信号を送っている場合には問題になりません。
先に結論を述べます。
このようにサーボの信号線をマイコン電源でプルアップします。 また、電源投入後のマイコンの当該出力ポートは、Highレベルを出力するか、入力にするかのいずれかにします。
一瞬だけ動く方向は、信号のパルス幅を短くしたときの方向でした。標準のS3003やMicroの場合は時計回りです。
余談ですが、サーボを改造してモーターとポテンショを逆に繋ぎなおすと回転方向が逆になったサーボが作れます。
プルアップの代わりにプルダウンでは駄目でした。プルアップしてあっても、マイコンがLowを出力するようになっていると一瞬動いてしまいました。
マイコンを使わず、サーボに直接電源だけを繋ぐ実験を行いました。信号線はそのまま開放にした場合、予めサーボの+端子にショートさておいた場合、−端子とショートさせておいた場合の3種類を試しました。結果、信号線を+とショートさせた場合のみ、一瞬だけ動く現象が起きませんでした。
以上の事実より、次のような仕組みになっているものと考えると説明がつきます。