3.6. 電子工学の基礎¶
GPIOピンから外部のものを駆動するには、ピンの反対側に回路が必要です。基礎的な電子工学の3つの考え方(電圧、電流、そして抵抗を介したそれらの関係)は、こうした回路のすべてに登場します。
3.6.1. 電圧、電流、抵抗¶
電圧(ボルト、V)は、回路内の2点間の電位差です。チップの電源レールはグラウンドに対して3.3 Vであり、Highに駆動されたGPIOピンも同じ3.3 Vになります。
電流(アンペア、A、またはミリアンペア、mA)は、ワイヤを流れる電荷の流れです。電流は常に出発点に戻ってくるため、電流が流れるには、回路が電源からグラウンドへと戻る完全なループを形成していなければなりません。
抵抗(オーム、Ω)は、その流れに対して経路がどれだけ抵抗するかを表します。抵抗の役割は、既知の電圧において電流を既知の値に設定することです。
オームの法則がこれらを結びつけます:
オームの法則の3つの形。¶
言葉で表すと、抵抗の両端の電圧は、それを流れる電流と抵抗の積に等しいということです。3つのうち2つが分かれば、代数によって3つ目が求まります。
3.6.2. ダイオード¶
ダイオードは、電流を一方向(アノード から カソード へ)にのみ流し、逆方向には流さない2端子の部品です。
ダイオードはアノードからカソードへの方向にのみ電流を流します。LEDは、導通している間に光を発するダイオードです。¶
ダイオードには 順方向電圧(Vf)もあります。これは、導通方向に電流が流れるときにダイオードの両端に生じる電圧降下です。印加電圧が Vf に達すると、ダイオードはおおよそワイヤのように振る舞い、それを下回るとほとんど電流が流れません。
3.6.3. LED¶
発光ダイオード(LED)は、その導通電流を可視光または赤外光に変換するダイオードです。明るさは電流に比例し、色はLEDの化学組成によって決まり、駆動方法では決まりません。
代表的なLEDの順方向電圧:
赤:1.8 -- 2.2 V
緑または黄:2.0 -- 2.4 V
青または白:2.8 -- 3.4 V
インジケータ用LEDの実用的な動作電流は5 -- 20 mAです。電流が大きいほど明るくなりますが、LEDの寿命を縮め、GPIOピンの駆動限界を超える場合があります。
3.6.4. 電流制限抵抗¶
LEDをGPIOピンとグラウンドの間に直接接続すると、ほぼ無制限の電流が流れてしまいます。順方向電圧に達すると、LEDはほぼ短絡回路のように見えるからです。ピンとLEDの間に 直列抵抗 を入れることで、電流が安全な値に設定されます。
直列抵抗がLEDの電流を設定します。¶
電源電圧は抵抗とLEDで分割されます。LEDはその順方向電圧を降下させ、抵抗は残りを降下させます。オームの法則により:
R = (Vsupply - Vf) / If
3.3 VのGPIOピンから10 mAで駆動される赤色LED(Vf ≈ 2.0 V)の場合:
R = (3.3 - 2.0) / 0.010 = 130 Ω
実際には、最も近い大きめの標準値(150 Ωまたは220 Ω)を選びます。その結果、LEDはわずかに暗くなりますが、より健全な安全マージンが得られます。正確な明るさが問題にならない場合は、妥当なデフォルトとして200 -- 470 Ωを使うとよいでしょう。
3.6.5. 各要素が重要な理由¶
あらゆるGPIO出力回路の形は、上記の4つの考え方から導かれます:
電圧 はピンで利用できるエネルギーを決めます。3.3 VのGPIOは、それとグラウンドの間に配線されたものに対して3.3 Vを使えます。
ダイオード(この場合はLED)は、その電圧の一部を順方向降下として消費し、誤った方向には導通しません。つまり どちらの向き かと 固定された取り分 を決めます。
電流制限抵抗 は残りの電圧を消費し、残った余裕を制御された 電流 に変換します。これがなければ、LEDはピンが供給できるだけの電流を引き込み、たいていは片方または両方を破壊するほどになります。
オームの法則 によって、抵抗値が計算可能になります。残りの電圧と希望する電流が分かれば、代数によって
Rが求まります。
電圧、電流、抵抗、ダイオード、そして並べ替えた1つの方程式があれば、あらゆる基本的なGPIO出力段を設計できます。
同じ部品が、ずっとオンボードLEDの背後に隠れていました。machine.LED("LED_RED").on() がLEDを点灯させるのは、カメラのボードがすでにその周囲のすべて(電流制限抵抗、グラウンドへのワイヤ、LEDそのもの)を備えており、クラスはそれらの背後にあるシリコンのGPIOを切り替えているだけだからです。「1行でLEDを点灯させる」という見方は正しく、それは単に「その回路を駆動する」を短く言い表したものにすぎません。抽象化を剥がせば、残るのはまさに上記の回路です。
machine.Pin は、周囲の部品なしで露出された同じシリコンです。スクリプトはピンの電圧を直接制御し、抵抗(オームの法則でサイズを決める)、LED、そしてグラウンドへの戻り経路はあなたが用意します。同じ4つの考え方が、少し異なる組み合わせで、スイッチのデバウンス、PWMのフィルタリング、モーター駆動の背後に再び現れます。