PICによる直流モータのPWM制御

3E学生実験資料
最終更新日:2004.12.03
by M.Yanaka

更新情報(上の方が新しい)

2004.12.03 3E学生実験用「センサとPICを用いた自律走行ロボットの実験」に改編.
2003.03.12 説明図掲載.
2003.03.11 プログラム掲載.
2003.03.10 掲載開始.

解説

PICによる制御の一例として,直流モータの回転速度制御を取り上げる.

1.PWM(パルス幅変調)を用いた直流モータの速度制御の原理

ポートの出力データを書き替える速さが違う点を除けば,LEDの点滅と同一のソフトウェアで実現できる.
2.キー入力の処理
電源電圧へのプルアップ
チャタリング防止
3.リアルタイム処理:割込みの利用.

割込みとは
4.I/Oポートの詳細な仕様:ポートAとポートBの相違.

内部プルアップ
ピン変化による割込み

例題

例題1.一定周期で回転・停止を繰り返す(回転速度は一定).
実体配線図
インターフェース回路

例題1の発展

課題1ー1.回転・停止の周期を増減させてみよ.
課題1ー2.周期は一定にして,回転している期間を増減させてみよ.

繰り返しの周期を短くし,その内の回転している時間を増減させることで,回転速度を制御できる.
これをPWM(pulse width modulation)制御という.

例題2.2個のスイッチで回転速度を切り替える(高速と低速).

スイッチ1(RA0):高速
スイッチ2(RA1):低速

例題2の発展

例題2a.I/Oポートの入力・出力の役割を変更する.

ポートBの上位4bit(RB7 - RB4):入力(プルアップ付き).
ポートBの上位4bit(RB3 - RB0):出力

課題2.1個のスイッチを用いて,回転速度を切り替えよ(高速と低速).

例題3.3個のスイッチを用いて,回転速度を連続可変させる(加速,減速,初期化).
スイッチ1(RB4):加速
スイッチ2(RB5):減速
スイッチ3(RB6):初期化(初めの速度に戻す)

例題3の発展

例題3a.加速・減速の2個のスイッチを用いる.2個のスイッチが同時に押されたときに,初めの速度に戻す.
例題3b.一定の割合での加減速させる(8/7倍,8/9倍;シフト演算を利用した乗除算).

タイマカウンタを8/7倍や8/9倍に変更する方法は,等比級数的な加速になる.
等加速度にしたい場合には、整数の逆数を表にしてEEPROM内に置いておくと良い.
例題3c.スイッチがオフからオンへと切り替わったときのみに,加速や減速をする(スイッチは3個用いる).
考え方(フローチャート)
例題3d.チャタリング防止機能付きにして,スイッチ切替時のみに加減速する.
例題4.リアルタイム処理:割込みの利用1(タイマ割込みを利用).
改良版
例題5.リアルタイム処理:割込みの利用2(I/Oポート割込みをスイッチ切替検出に利用).
例題6.リアルタイム処理:割込みの利用3(複数種類の割込を同時利用).

Web上の参考資料

○PICの利用例

内蔵モジュールの使い方 (http://www.picfun.com/moduleframe.html)
PIC活用製作例 (http://www.picfun.com/appframe.html)
電子工作の実験室」内にある「PICの活用」から.
(後閑 哲也さんのWebページ)

○その他