Raspberry Pi PicoによるLEDの点灯制御

Raspberry Pi

はじめに

RaspberryPi Picoを使ってLEDの点灯制御を行います。

Picoを電池として使う?

以下のような回路を作ります。Picoの36番ピンからは3.3Vの電圧を取得できます。そこから、LEDのアノード→カソード→抵抗→GNDと電流が流れます。すなわち、LEDが点灯します。その様子を、下の写真に示します。

デジタル出力でLEDの点灯/消灯を切り替える

以下の回路を作ります。上の回路との違いは、LEDのアノードが34番ピン(GPIO28)に接続されていることです。GPIO28から3.3Vが出力されるとLEDが点灯、0.0Vが出力されるとLEDが消灯します。

では、LEDを点灯させるだけのプログラムを書きます(Thonyyを使っています)。

1行目:machineライブラリにあるPinクラスを使います
2行目:LEDを28ピンに接続します
3行目:28ピンを出力モードにします
4行目:28ピンからHIGH(3.3V)を出力します

なお、LEDを消灯させるためには、5行目のhighをlowに書き換えます。

次のようなプログラムでも、LEDを点灯させることができます。

先ほどと違うのは、5行目です。high()の代わりにvalue()を用いて数値により出力電圧を設定します。0のときは0.0V、0以外のときは3.3Vが出力される。これを使えば、演算結果をLEDの点灯・消灯に反映させることができそうです。

では、high()とlow()を組み合わせて、LEDを点滅させましょう。以下のプログラムを作ってください。

プログラムは変更部分だけを説明します。
2行目:timeクラスを使用します。後のtime.sleep()を用いるためです。
7行目:以下の行を繰り返す
8行目:LEDを点灯させる
9行目:1秒間待機する
10行目:LEDを消灯させる
11行目:1秒間待機する

Arduinoユーザーは注意が必要です。sleep()の引数の単位は秒です。動作の様子を以下に示します。

青色LEDを点滅させる

青色LEDを用意しました。順方向電圧が2.9-3.6V、順方向電流が20mA前後流れるものです。これをPicoで制御するときに気を付けなければいけないのが、PicoのGPIOに流せる電流が4mA(デフォルト)だということです。また、順方向電圧の値が大きいので、3.3V出力ではだめです。このままでは、青色LEDを制御できません。そこで、トランジスタスイッチを使います。以下の回路を、作ってください。

この回路では、トランジスタスイッチの働きにより、ベースにHIGH(3.3V)が加わるとトランジスタがONになるためLEDが点灯します。ベースにLOW(0.0V)が加わったときはトランジスタがOFFですのでLEDは消灯します。さて、この回路が組めたら、青色LEDが無事に点滅します。なお、プログラムはそのままです。動作の様子を以下に示します。

まとめ

Picoを用いて、Lチカを作りました。なお、トランジスタスイッチを用いた制御方法も説明しました。

コメント

タイトルとURLをコピーしました