PWMとは、DCモータの制御には不可欠な方法です。
まず、PWMとは(Pulse Width Modulation)の略で
パスル幅変調、と訳されます。
どういうことかというと
例えば、赤と青の色を右半分、左半分にそれぞれ塗ったコマを回すと
紫色に見えるのは判ると思います。
でも、とまっているときは赤と青です。
なぜ紫に見えるのかと言うと、人間の目の性能では、コマの回転速度に
付いていけないからです。
色が切り替わるのが早すぎるわけです。
ここで、目をDCモータ、赤を0V,青を5Vとすると
0V、5Vを高速で、つまりモーターの応答速度が追いつかないほどの速度で
切り替えたとすると、モータからすると、まるで2.5Vがかかっているかのような状態になります。
例えば、0Vにしている時間と5Vにしている時間の比を1:1ではなく、4:1にすると、まるで1Vかかっているかのような状態になります。
DCモータは
電圧に対し回転数が直線的に比例する
電流に対しトルクが直線的に比例する
という特性があるので、電圧が下がれば回転数が落ちます。
つまり、PWMで擬似的に電圧を下げることによって
色々な回転数でモータを回すことができます。
で、これはLEDにも応用することが出来ます。
人間の目には判らないような速度でON,OFFを切り替えると、
LEDは暗く光っているように見えます。
最初の点滅のときにこの状況になった人もいるのではないでしょうか?
ただ、LEDは結構明るいので、
OFFの時間を長めに取らないと体感できないかもしれません。(少なくとも1:1だと無理だと思う)
では、ここで
LEDを暗く光らせてみましょう
点滅のときのプログラムの待ち時間を短くするだけなので余裕だと思います。
それが出来たら、
タイマーを使ってLEDを暗く光らせてみましょう。
例えば、タイマー割り込みが入るたびに変数を+1していき、
10になると0に戻すような文を書いておきます。
さらにその変数が0~7の間はLEDは消えていて、8~9の間は光っているような
プログラムを書けば、8:3の時間でON,OFFが繰り返されます。
それができたら、
モータをゆっくり回してみましょう
PWMは、出来るだけタイマーで作ったほうが将来性があります。
理由は、きっと、そのうちわかるはずです。