3.6. 電子工学の基礎

GPIOピンから外部のものを駆動するには、ピンの反対側に回路が必要です。基礎的な電子工学の3つの考え方(電圧、電流、そして抵抗を介したそれらの関係)は、こうした回路のすべてに登場します。

3.6.1. 電圧、電流、抵抗

  • 電圧(ボルト、V)は、回路内の2点間の電位差です。チップの電源レールはグラウンドに対して3.3 Vであり、Highに駆動されたGPIOピンも同じ3.3 Vになります。

  • 電流(アンペア、A、またはミリアンペア、mA)は、ワイヤを流れる電荷の流れです。電流は常に出発点に戻ってくるため、電流が流れるには、回路が電源からグラウンドへと戻る完全なループを形成していなければなりません。

  • 抵抗(オーム、Ω)は、その流れに対して経路がどれだけ抵抗するかを表します。抵抗の役割は、既知の電圧において電流を既知の値に設定することです。

オームの法則がこれらを結びつけます:

三角形が3つの領域に分けられ、上部にV、下部にIとRと ラベルが付けられている。並べ替えた形である V = IR、I = V/R、R = V/I がその周囲に示されている。

オームの法則の3つの形。

言葉で表すと、抵抗の両端の電圧は、それを流れる電流と抵抗の積に等しいということです。3つのうち2つが分かれば、代数によって3つ目が求まります。

3.6.2. ダイオード

ダイオードは、電流を一方向(アノード から カソード へ)にのみ流し、逆方向には流さない2端子の部品です。

ダイオードの回路記号 -- 縦棒に向かって右を指す三角形 -- で、左側にアノード、右側にカソードが記されている。 LEDのバリエーションでは、記号の隣に発せられる光を示す 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の間に 直列抵抗 を入れることで、電流が安全な値に設定されます。

回路:GPIOピンが抵抗Rを介してLEDのアノードに接続され、 LEDのカソードはグラウンドに接続されている。ラベルは、 ピンのVsupply、抵抗の両端のV_R、LEDの両端のVf、そして ループを流れる電流Ifを示している。

直列抵抗が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のフィルタリング、モーター駆動の背後に再び現れます。