PMWで出力を調節する(analogWrite) LED#03

LEDの光の強さを調節する

PMWモード

先程はdigitalWrite(2,HIGHorLOW)を使いましたが今度はanalogWrite(3,0-255) を使います。Arduino UNOのpinでanalogWriteを使えるのは3、5、6、9、10、11pinです。

どうでしょう?3段階で光りましたか?これでとりあえずLEDの基本はマスターできましたね。0から255までだんだん強くなっていきます。digitalWriteはスイッチのオンオフだけですが、これで細かな調整ができます。

PMWで細かく調整する

0から255まで段階的に光を強くしてみましょう。こんなことしてたら恐ろしいほどの時間がかかりますね。途中でミスってバグを出してしまうかもしれません。そんなときはfor文を使いましょう。こんなめんどうなこともかんたんにこなしてくれるのです。255行x2行のプログラムを書かずにすんでしまうのです。

for文は私達を救う

for(初期化;条件式;加算){繰り返す}という構造になっています。なのでまずは変数iを0にします。iが255以下ならiに1を足した数をiにします。iが255を越えるとブレース{}を抜けて次の処理に入ります。この場合は、2つめの閉じブレース}に行って、またloop(){の先頭にもどります。このようにたったの3行かくだけで510行分の仕事をしてくれます。余った時間は他のことをして遊びましょう。

変数とはなにか?

このiが変数です。iはコップのようなものと思ってください。iには0から255までの数字が順番に入ります。そしてつぎつぎに自動的に処理をしてくれるのです。最後に次第に明るくなってそして消えていくプログラムを考えてみましょう。

(i=i+1)は変数iにもともとのiに1を足したものをiにするということです。これは(i++)に書き換えられます。(i=i-1)は(i- -)になります。また条件式は<=で以下、>=以上、<はより小さい。>はより大きい。==は等しいです。=は1つにしてしまうと代入してしまうので注意が必要です。

シェアするにはこちらからShare on FacebookShare on Google+Tweet about this on Twitter

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です