前回はラズベリーパイの設定を簡単にご紹介しました。今回は、ラズベリーパイの醍醐味と言える簡単な電子回路の制御を行います。ラズベリーパイと電子回路は、メイン基板上に用意されたGPIOポートに電子回路を接続するだけでよく、特別なインターフェイスは必要ありません。前編、中編、後編の三回に分けてもっとも基本的なLEDをチカチカ点滅させる制御、略して「Lチカ」をしてみましょう。
電子回路のお話
前回コラムはこちらから。
まずは、電子回路の部分のお話をします。LEDを点灯させる回路はどのように回路を組んだらよいでしょうか。
まず、思いつくのは以下のような回路ですね。
図1. 奥: “Raspberry Pi Model B”(旧式)
手前: “Raspberry Pi2 ModelB”
さて、ここで実際の電圧、定格電流が記載されています。まずは、電圧ですがGPIOポートから出力される電圧(VCC)は 3.3[V]です。また、今回使用するLED(LED1)の定格を確認すると「2[V], 20[mA] 」となっています。(部品のスペックは必ず確認しましょう)
このまま電源とLEDを直接接続してしまうとLEDを破損させてしまうので、抵抗器(R1)を入れて、規定内の電圧/電流に抑える必要があります。LEDにこの定格電流を流す時には、何オームの抵抗を接続すればよいでしょうか。
まず、LED1にかかる電圧を3.3[V]から2[V]に落とすので、3.3[V]-2[V]=1.3[V]がR1の両端にかかるようにすればよいことになります。また、電流をLED1に20[mA]流したいわけですから、抵抗(R1)も直列接続なので同じ20[mA]となります。
つまり、R1にかかる電圧、電流はそれぞれ 電圧(V) = 1.3[V], 電流(I) = 20[mA] となればよいわけですね。(電流はミリアンペア( 1/1000 [A] )であることに注意)
後は、昔学校で習った「オームの法則」 R=V/I の公式に当てはめると
R = V/I = 1.3/(20/1000) = 1.3/20×1000 = 65[Ω]
というわけで、65[Ω]の抵抗を入れればよいことになります。ギリギリで攻める必要はないのでそれ以上の抵抗を入れてあげればLEDを破損させずに済みます。ただし、抵抗が大きければ大きいほどLEDの輝度は下がります。
これで電子回路部分の基本設計は完成です。
電気回路について非常にわかりやすく以下のサイトに記載されておりますので、苦手な方や遥か昔に学校で習ったけれど忘れてしまった方はご参照ください。
「電気の資格とお勉強」
https://eleking.net/k21/k21t/k21t-ohm.html
しかしながら・・・もうひとつの考慮事項
これで完了かと思いきや、LEDを保護するという意味で、抵抗値を決めましたがもうひとつ考えないといけないことがあり、それはラズベリーパイ本体のことです。
https://www.raspberrypi.org/documentation/hardware/raspberrypi/power/README.md
こちらに記載されているように、GPIO全体で50[mA], ピン毎では16[mA]が安全な電流値であると記載されています。先ほどの回路は、LEDの定格に合わせて20[mA]を流すことを想定していますので、これではラズベリーパイの寿命を縮めたり、最悪の場合壊れてしまうかもれしれません。
そこで、電流を16[mA]として再計算すると、
R= V/I = 1.3/(16/1000) = 1.3/16 x1000=81.25[Ω]
となります。いずれにしても、キリが良い100[Ω]程度を用意しておくとよいでしょう。
ラズベリーパイ GPIOポートとの接続
本記事は、日本サード・パーティ株式会社(JTP)にて、執筆しています。
JTPは約30年に渡り、様々なベンダーのサポートを行う企業です。 設計、構築、開発、運用、ヘルプデスク、トレーニングなど、ITのライフサイクルを通して技術サービスを提供しています。
中でも、JTP の IT教育サービスでは、クラウド、Hadoop関連技術など、OSS の最新技術 トレーニングを数多く実施しています。
JTPでは、経験豊富なエンジニア、講師陣により、多くの技術記事を公開しております。
▼JTPの情報メディア「JTP Technology Port」はこちらから!