制御の基本的な仕組みについては、モーター速度(回転数)制御を参照してください。
モーターの回転を検出するセンサーには、シャープのフォトインタラプタ(GP1A53HRJ00F)を使用しました。
モーターの軸に検出用の羽を付けるので、1回転では2パルスが発生することになります。
<GP1A53HRJ00Fの概要と特長>
フォトダイオードやフォトトランジスタの出力をマイコンに入力するには、これらの受光素子に増幅回路や波形整形回路などの信号処理回路を付加する必要があるため、回路設計に伴う煩雑さや、実装面積の増加の問題がありました。
GP1A53HRJ00Fは、マイコンに直結できる受光素子として、フォトダイオードと信号処理回路を1チップ上に集積したOPIC受光素子(Optical IC)です。
回路設計が容易
マイコンに直結可能
電磁ノイズ、電源ラインのノイズの影響を受けにくい
小型、高信頼性
高機能、高性能化の実現
<GP1A53HRJ00Fの概観>
<GP1A53HRJ00Fのブロックダイアグラム>
<回転数を求める方法>
パルスの幅を測定し、そこから回転数を求めます。
検出用の羽の枚数が2枚の場合には、次式で回転数を求めることが出来ます。
1秒間の回転数=1秒÷(パルスの幅×羽の枚数)
回転数(RPM)=1秒間の回転数×60
<処理の流れ>
信号のHigh(1)レベルを検出します。
信号の立ち下がりを検出します。検出できたら、タイマーを開始します。
内部クロック8MHz、TIMER1(1:1のプリスケール値)を使用します。
従って、1カウントは、0.5usecになります。
0.5usec=(1÷8MHz)×4
TIMER1は16ビットなので、最大33msecまでのカウントが可能です。
33msec≒65536×0.5usec
信号の立ち上がりを検出します。
信号の立ち上がりを検出します。検出できたら、タイマーを停止します。(カウント値)
回転数(RPM)を求めます。
回転数=(1秒÷(カウント値×0.5usec×2枚羽))×60秒
回転数が、目標設定値(1500回転)の±50回転の範囲であれば、ロック状態とみなしLEDを点灯、
そうでなければLEDを消灯します。
回転数が、1450(1500-50)以下であれば、PWMのデューティ比をプラスし、速度を上げます。
回転数が、1550(1500+50)以上であれば、PWMのデューティ比をマイナスし、速度を下げます。
1.に戻ります。