今回の目標
前回、DCサーボモータをとりあえず動かすことが出来ました。
今回は、どうやって制御しているのかを確認することにします。
前回の記事→DCサーボモータをArduinoで動かす①とにかく動かす
DCサーボモータ「SG-90」を分解
前回の「SG-90」の中身を調べます。
裏ブタ側からねじ4本をめがね用プラスドライバーで外しました。
SG-90の外部配線3本は中の基板端に直付けされ、基板の反対側に位置するポテンショメータ(回転角度を抵抗値としてとらえる素子。原理は可変抵抗器)らしきものに直付けで固定されております(ポテンショメータをケースから取り出せず、細かく写せませんでした)。
基板とポテンショメータの隣にはモータがあり、基板から赤の配線2本がつながっております。
モータ軸の回転がギアでポジションメータに伝わっており、モータ軸の回転角度はポジションメータからの出力としてSG-90内部の基板にフィードバックされるようです。
DCサーボモータ内部のモータ入力電圧波形を見た
どうやって制御しているのか見るため、モータの端子の電圧波形をオシロスコープで見てみました。
モータの動きと波形とを眺めること数十分。動きとの関係を理解できたように思えます。
CH1側のパルス入力が連続⇒モータ左回転(0°、90°)。
CH2側のパルス入力が連続⇒モータ右回転(180°)。
CH1側のパルス入力直後にCH2側にも短くパルス入力⇒モータ左回転の行き過ぎを右回転で修正。
DCサーボモータの制御まとめ
Arduinoから電源、GND、信号がDCサーボモータ内部の基板に入力されます。その基板はポテンショメータでモータ軸の回転をとらえつつ、モータが狙った角度に回転するようモータに入力している構造のようです。
モータ自体はDC整流子モータ(2入力)。入力はPWM(Pulse Width Modulation)。パルスをいずれ側に入力するか(電流をどちら向きに流すか)で回転方向は決まります。
回転を必要とする期間、回転方向に応じた側にPWM入力して逆側の入力はGND。指定した角度まで回転したらPWM入力を停止。もし角度が行き過ぎたら逆側からPWM入力。回転しない期間はモータ入力は両方GND。
そういう制御でDCサーボモータはモータを動かしているようです。
0 件のコメント:
コメントを投稿