- - PR -
前回の「ステッピングモータの仕組みと制御のコツ」からH8マイコンでのモータ制御についての解説を始めました。モータを制御するためには、モータがどのような仕組みで動いているかを知っていることが望ましいといえるでしょう。そこで今回は、本連載で使用しているターゲットボード(仕様は第6回を参照)に接続できるDCモータとステッピングモータを制御するための技術、PWM制御について解説いたします。
PWMとは?
PWMはPulse Width Modulationの略で、パルス波のデューティー比を変化させて変調する変調方法です。そして、デューティー比とは周期的なパルス波を出したときの周期とパルス幅の比のことで、以下の式で表されます。
式の各項目の関係を図で表すと図1のようになります。例えば周期Tが4μs、パルス幅τが1μsとすると、デューティー比Dは0.25(25%)となります。
![]() |
| 図1 デューティー比のイメージ |
H8/3048F-ONEで行うPWM制御とは、つまるところ「周期Tとデューティー比Dをいくつにするかを決め、その決められた値に応じた幅のパルスを各種モータに与える制御方法」ということになります。DCモータ、サーボモータを制御する際には、DCモータならプラス側、サーボモータなら制御線注1にこの周期的なパルス信号を連続して与えます。
| 注1:本連載で使用しているサーボモータは制御信号が1本のみです。 |
モータ制御にPWMを使うと何がうれしいのか
DCモータの場合
DCモータは、2本の端子から電流を流せば回転するという至ってシンプルなモータです。前回でも簡単に書きましたが、モータに印加する電圧を高くすれば速く、低くすれば遅く回転します。小学校の工作などで乾電池とモータを使ったことがあれば、そのあたりは直感的に理解できると思います。
しかしマイコンからDCモータを制御するとなると、電圧を上下させてモータの速度を変えることは少々面倒になります。主にハードウェア的な理由からですが、マイコンからの出力は基本的にHigh(例えば3.3Vや5Vといった固定値)を出力するか、Lowを出力するかのどちらかなので、電圧の強さを変えるとなると専用の回路を用意する必要があるうえに、電圧の上昇/下降による無駄な熱が出たりして効率が非常に悪いのです。
そこでPWM制御が役に立ちます。PWMは一定の時間内でどの程度Highを出力するかをコントロールする制御方式です。デューティー比が小さいときはHighの時間が短いので、モータは少しだけ回転して止まろうとします。逆にデューティー比が大きいときは、モータは長時間回転します。H8/3048F-ONE上のプログラムがこの比率を調節することで、見た目上モータがゆっくり回転するか速く回転するかを調節できるようになるわけです(図2)。
![]() |
| 図2 デューティー比とDCモータの速度の関係 |
ここで周期を何秒にするか、ということが非常に大事になってきます。DCモータには慣性がありますので、電圧をLowにすればすぐに止まるというわけではありません。ですが、あまりに周期を長く取ってしまうと、デューティー比によってはモータがスムーズに回転しない(例えば少し回転して止まるということを繰り返す)という状態になってしまいます。周期をどうするかは、実際にターゲットシステムを動かしながら調節することになるでしょう。
サーボモータの場合
本連載のターゲットボードに接続できるサーボモータは一般にラジコン用サーボモータと呼ばれるもので、制御信号に与えられたパルスの幅によって決められた角度に回転するモータです。ラジコン用サーボモータはラジコンカーのステアリングやホビーロボットの関節によく使われたりしますが、例えば右に曲がる、関節を何度曲げる、といったときの位置決めがパルス幅で決まるということです(図3)。
![]() |
| 図3 サーボモータの回転イメージ |
回転の仕組みを簡単に説明すると以上のようになりますが、これはPWM制御の特徴そのものといえるでしょう。つまり、パルス波の周期T注2をあらかじめ決めておけば、後はデューティー比を決めることでパルス幅を計算することができ、サーボモータはそのパルス幅で決められた位置まで回転します。
| 注2:一般的に周期Tは10〜20msのようです。 |
関連記事 半導体/エレクトロニクス
- 連載:イチから作って丸ごと学ぶ! H8マイコン道
- 特集:組み込みシステムに吹く“仮想化”の風
- 連載:組み込みマルチコア進化論(連載中)
- 連載:必修! FPGAタイミング解析の基礎(全5回)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:S08ではじめるマイコン制御プログラミング(全6回)
- 連載:マイコン制御基礎の次(連載中)
- 連載:マイコン制御基礎の基礎(全10回)
- 連載:マイコン制御基礎以前(全10回)
- 連載:H8で学ぶマイコン開発入門(全13回)
- 連載:触って学ぼう FPGA開発入門(全6回)
- 連載:FPGA開発テクニック、チューニングの心得(全6回)
- 特集:いまさら聞けない FPGA入門
- 連載:バラして納得! 電子部品入門(全18回)
- 連載:完全マスター! 電子回路ドリル III(全14回)
- 連載:完全マスター! 電子回路ドリル II(全25回)
- 連載:完全マスター! 電子回路ドリル(全25回)
- 目指せ! 電子回路マスターへの道
- 目指せ! 電子回路マスターへの道 Part2
- 分かっておきたい、IP活用の落とし穴
ホワイトペーパー(TechTargetジャパン)
組み込み開発フォーラム 新着記事
- ブロック定義図の基礎(2010/2/8)
- 微細化を超える革新が見えたアルテラ28nm FPGA(2010/2/5)
- OESFとJASAが提携、Android技術認定制度の構築へ(2010/2/5)
- ないと困る!? ファイルシステムのありがたみ(2010/2/4)
- カーエレの進化を支える組み込みソフトウェア開発(2010/2/2)
- アルテラ、28nm FPGAに向けた最先端技術を発表(2010/2/2)
- 【問題6】 高速化技術「パイプライン制御」について(2010/2/1)
- AndroidのカーネルをLinux以外のOSに置き換える(2010/2/1)
- いま振り返るFPGA普及・発展の歴史(2010/1/27)
- 割り込みテクニックでタイマを使おう(2010/1/26)
- Silverlight for Windows Embeddedの実装方法(2010/1/25)
- 【問題5】 ページング方式の「仮想記憶」について(2010/1/20)















