LEDをぼわっと点滅させる【電子蛍】

micro:bitを使った電子工作のファーストステップ第三弾としてLEDをぼわっと点滅させる、通称電子蛍(電子ホタル)を紹介します。PWM(パルス幅変調/Pulse width modulation)を使った作品例です。
3-3-1.できること
「3-2.LEDを点滅させる【Lチカ】」と同じく、「3-1.LEDを点灯させる【Lピカ】」で作成した電子回路をそのまま使って、LEDをぼわっと点滅させます。その光るようすがホタルの発光に似ていることから通称電子蛍(電子ホタル)といいます。
3-3-2.用意するもの~作り方
「3-1.LEDを点灯させる【Lピカ】」と同じ電子回路を使います。はじめての人は、先に「3-1.LEDを点灯させる【Lピカ】」を作りましょう。
3-3-3.プログラミング(ブロック)
3-3-4.プログラミング(Javascript)
Javascript(テキスト)のサンプルプログラムです。
3-3-5.動かしてみよう
プログラムが完成したら動かしてみましょう。LEDがぼわっと点滅すれば成功です。
3-3-6.解説【PWM(パルス幅変調)】
LEDが光る原理は「3-1.LEDを点灯させる【Lピカ】」で述べた解説の通りです。ここでは、端子P0にアナログ信号を変化させながら出力することで、LEDがゆっくり点滅して見えます。
PWM(パルス幅変調/Pulse width modulation)
micro:bitでは、その端子の状態を「0Vに接地(プルダウン)」または「3.3Vの電圧を出力」することはできますが、電圧そのものを、連続的(0V~3.3Vの間)に変化させて出力することはできません。では、どうやってLEDを弱い光から強い光へ変化させたり、逆に強い光から弱い光へ変化させているのでしょうか。それが、電圧の出力を高速にオンオフしながら、そのオンオフ時間の比率(オン時の時間幅)を制御する「PWM(パルス幅変調/Pulse width modulation)」という技術です。
図3-3-6-1は、PWM(パルス幅変調)の出力のようすを表したもので、一定の周期でオン状態(3.3V)とオフ状態(0V)がスイッチングされる矩形波となります。micro:bitの周期は、初期状態で20ミリ秒(周波数50Hz)です。
PWM(パルス幅変調)では、オレンジ色で示された1周期の内、赤色で示されたオン状態の時間幅の割合をデューティー比といい、図3-3-6-1では50%となります。LEDは、このデューティー比で示された割合で点滅します。
図3-3-6-2は、同じ周期でデューティー比が25%のPWM(パルス幅変調)の波形です。
図3-3-6-3は、同様に75%の波形です。
デューティー比に応じて、LEDは点滅を繰り返しますが、その比率が高いほどLEDの光る時間幅が長くなります。そのため、比率が高くなるとLEDが明るく感じられます。上記の例では、75%が最も明るく、25%が最も暗くなります。なお、LEDのオンとオフが繰り返される周期は、初期状態で20ミリ秒(50Hz)となり、これは人にとって高速なため、ちらつきはほとんど判別できません。
「アナログで出力する」ブロック
プログラムでは、「アナログで出力する」ブロックを使い、出力先となる端子とデューティー比の元になる値を指定します。設定できる値は0~1023で、0がデューティー比0%、1023が100%となります。電子蛍(電子ホタル)のプログラムでは、この値を0→1→3→7→15→31→63→127→255→511→1023と変化させることで徐々に明るくし、逆に値を小さくすることで徐々に暗くしています。
3-3-7.バージョンアップ
バージョンアップしたJavascript(テキスト)のサンプルプログラムです。
micro:bit関連のおすすめ品
micro:bitのエッジコネクターをピンヘッダーに変換するエッジコネクターピッチ変換基板と、ブレッドボードが一つになった製品です。付属のジャンパーワイヤーを使用することで、手軽に回路の実験ができます。