マイコンから電圧を変化させてモータの速度を変えるのは非常に効率が悪い。そこで周期的なパルス信号を発生させるPWMの登場となる。
前回の「ステッピングモータの仕組みと制御のコツ」からH8マイコンでのモータ制御についての解説を始めました。モータを制御するためには、モータがどのような仕組みで動いているかを知っていることが望ましいといえるでしょう。そこで今回は、本連載で使用しているターゲットボード(仕様は第6回を参照)に接続できるDCモータとステッピングモータを制御するための技術、PWM制御について解説いたします。
PWMはPulse Width Modulationの略で、パルス波のデューティー比を変化させて変調する変調方法です。そして、デューティー比とは周期的なパルス波を出したときの周期とパルス幅の比のことで、以下の式で表されます。
式の各項目の関係を図で表すと図1のようになります。例えば周期Tが4μs、パルス幅τが1μsとすると、デューティー比Dは0.25(25%)となります。
H8/3048F-ONEで行うPWM制御とは、つまるところ「周期Tとデューティー比Dをいくつにするかを決め、その決められた値に応じた幅のパルスを各種モータに与える制御方法」ということになります。DCモータ、サーボモータを制御する際には、DCモータならプラス側、サーボモータなら制御線注1にこの周期的なパルス信号を連続して与えます。
DCモータは、2本の端子から電流を流せば回転するという至ってシンプルなモータです。前回でも簡単に書きましたが、モータに印加する電圧を高くすれば速く、低くすれば遅く回転します。小学校の工作などで乾電池とモータを使ったことがあれば、そのあたりは直感的に理解できると思います。
しかしマイコンからDCモータを制御するとなると、電圧を上下させてモータの速度を変えることは少々面倒になります。主にハードウェア的な理由からですが、マイコンからの出力は基本的にHigh(例えば3.3Vや5Vといった固定値)を出力するか、Lowを出力するかのどちらかなので、電圧の強さを変えるとなると専用の回路を用意する必要があるうえに、電圧の上昇/下降による無駄な熱が出たりして効率が非常に悪いのです。
そこでPWM制御が役に立ちます。PWMは一定の時間内でどの程度Highを出力するかをコントロールする制御方式です。デューティー比が小さいときはHighの時間が短いので、モータは少しだけ回転して止まろうとします。逆にデューティー比が大きいときは、モータは長時間回転します。H8/3048F-ONE上のプログラムがこの比率を調節することで、見た目上モータがゆっくり回転するか速く回転するかを調節できるようになるわけです(図2)。
ここで周期を何秒にするか、ということが非常に大事になってきます。DCモータには慣性がありますので、電圧をLowにすればすぐに止まるというわけではありません。ですが、あまりに周期を長く取ってしまうと、デューティー比によってはモータがスムーズに回転しない(例えば少し回転して止まるということを繰り返す)という状態になってしまいます。周期をどうするかは、実際にターゲットシステムを動かしながら調節することになるでしょう。
本連載のターゲットボードに接続できるサーボモータは一般にラジコン用サーボモータと呼ばれるもので、制御信号に与えられたパルスの幅によって決められた角度に回転するモータです。ラジコン用サーボモータはラジコンカーのステアリングやホビーロボットの関節によく使われたりしますが、例えば右に曲がる、関節を何度曲げる、といったときの位置決めがパルス幅で決まるということです(図3)。
回転の仕組みを簡単に説明すると以上のようになりますが、これはPWM制御の特徴そのものといえるでしょう。つまり、パルス波の周期T注2をあらかじめ決めておけば、後はデューティー比を決めることでパルス幅を計算することができ、サーボモータはそのパルス幅で決められた位置まで回転します。
Copyright © ITmedia, Inc. All Rights Reserved.