前へ | 目次 | 次へ |
PWM制御を行う | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DCモータやRCサーボモータなど、 各種制御の場面でPWM信号が必要になることがあります。 ここでは、PWM信号とはどういうものなのか、 AKI-H8/3664Fではどのようにプログラムすれば良いのかを見ていきましょう。 PWM出力は、タイマーVを用いてもできますが、 2本分出力する必要があるので、タイマーWを使うことにしました。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PWM信号 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
DCモータの速度を変える方法として、 つなぐ電池の本数を変えるということが考えられます。 つまり、1本(1.5V)よりも2本(3V)のほうがモータは早く回り、 2本(3V)よりも3本(4.5V)のほうが早くまわるというわけです。 マイコンのI/OポートはHigh(5V)とLow(0V)の二つの状態しかありませんから、 そのままでは中間の電圧を作ることはできません。 つまり、流れる電流の量が最大量と0のどちらかしかとりえないということになります。 しかし、このHighとLowをすばやく切りかえることで、 中間量の電流が流れているときと同じ状態を作ることができます。 これがPWM(Pulse Width Modulation)信号です。 1周期に対する、High時間の比をデューティー比といいます。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
サンプルプログラム | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
プログラム解説 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TW.TMRW.BYTE=0x49 タイマモードレジスタW(TMRW)
ここで関係があるのは、CTSを0としてカウントを停止していることと、 FTIOB端子をPWM出力にしているところです。 後は全てデフォルト値を代入しておきました(良く分からないところは無視しましょう(@@)/)。 FTIOC端子もPWM出力に設定する場合には、 PWMCも1にする必要があります。 TW.TCRW.BYTE=0xB2 タイマコントロールレジスタW(TCRW)
CCLRはTW.GRAの値とTCNTの値が一致したとき、 TCNTの値を0に戻すかどうかの設定です。 ここでは、TW.GRAをPWM信号の周期として使うために、 0に戻す設定にしました。 CKSはTCNTを1増やすまでの時間の設定です。 AKI-H8/3664 QFP版の内部クロックは16MHzですから、 1/8すると2MHzとなり、TCNTが1増えるまでの時間は1/2MHz=0.5uSということになります。 TOBはTW.GRBの値とTCNTの値が一致するまでに、 FTIOB端子に0を出力するのか、1を出力するのかを設定します。 ここでは最初は1を出力し、TW.GRBの値とTCNTの値が一致したら0にすることにしました。 TW.TIERW.BYTE=0x70 タイマインタラプトイネーブルレジスタW(TIERW)
ここでは、全ての割込みを禁止しておきました。 デフォルト値のままなので、この行は無くても同じです。 TW.TCNT=0x0000 TCNTを0に初期化しています。 TW.GRA=4000 TCNTの1ステップが0.5uSなので、周期が0.5uSX4000=2mSになるように設定したことになります。 TW.GRB=2000 TCNTの1ステップが0.5uSなので、Highの時間がが0.5uSX2000=1mSになるように設定したことになります。 デューティー比は0.5になります。 FTIOC端子のデューティー比を設定するためには、 TW.GRCを設定します。 FTIOD端子ならTW.GRDになります。 周期は、TW.GRAの設定が共通に使われます。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
実行結果 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
やって見よう | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2003/06/08(Sun) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
AKI-H8/3664 QFP版のトップページへ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
トップページへ |
SEO | [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送 | ||