3.6. 电子学基础

要用 GPIO 引脚驱动任何外部器件,都需要在引脚的另一侧搭建一个电路。基础电子学中的三个概念——电压、电流,以及它们通过电阻建立的关系——会出现在每一个这样的电路中。

3.6.1. 电压、电流、电阻

  • 电压(伏特,V)是电路中两点之间的电位差。芯片的供电轨相对于地可能为 3.3 V;被拉高的 GPIO 引脚同样处于 3.3 V。

  • 电流(安培,A,或毫安,mA)是电荷通过导线的流动。电流总会回流到它的起点,因此要让任何电流流动,电路都必须从电源到地形成一个完整的回路。

  • 电阻(欧姆,Ω)表示路径对这种流动的阻碍程度。电阻的作用是在已知电压下把电流设定为一个已知的值。

欧姆定律把它们联系在一起:

一个被分为三个区域的三角形,顶部标记 V, 底部标记 I 和 R;其周围列出了变换后的形式 V = IR、I = V/R、R = V/I。

欧姆定律的三种形式。

用文字表述:电阻两端的电压等于流过它的电流乘以电阻。已知三者中的任意两个,便可通过代数运算求出第三个。

3.6.2. 二极管

二极管是一种双端器件,它只在一个方向(从阳极阴极)导通电流,而在另一个方向阻断电流。

一个二极管的电路符号——一个指向右侧、 顶在一条竖线上的三角形——左侧标记为阳极, 右侧标记为阴极。LED 变体在符号旁增加了两个 向外的箭头,表示发出的光。

二极管只能从阳极向阴极导通。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 输出电路的形态都源自上面的四个概念:

  • 电压决定了引脚处可用的能量。一个 3.3 V 的 GPIO 拥有 3.3 V 的电压,可分配给接在它与地之间的任何器件。

  • 二极管(本例中是 LED)以其正向压降的形式消耗掉一部分电压,并拒绝沿错误方向导通——它决定了导通方向固定的分担份额

  • 限流电阻消耗掉剩余的电压,把剩下的预算转化为受控的电流。如果没有它,LED 会汲取引脚所能提供的全部电流——通常足以毁掉其中之一或两者。

  • 欧姆定律使得电阻的阻值可以计算:给定剩余电压和期望电流,R 便可通过代数运算得出。

电压、电流、电阻、二极管,再加上一个变换后的方程,就足以设计出所有基本的 GPIO 输出级电路。

这些相同的部件一直都隐藏在板载 LED 的背后。machine.LED("LED_RED").on() 之所以能点亮 LED,是因为摄像头的电路板已经提供了它周围的一切——限流电阻、通往地的导线、LED 本身——而该类只是切换它们背后硅片的 GPIO。“一行代码点亮一个 LED”的说法是正确的;它只是“驱动那个电路”的简短说法而已。剥去这层抽象,剩下的正是上面那个电路。

machine.Pin 是同一块硅片,只是去掉了周围的部件后暴露出来。脚本直接控制引脚的电压;电阻(按欧姆定律取值)、LED 以及通往地的回流路径都由你来提供。这同样的四个概念会以略有不同的组合,重新出现在按键去抖、PWM 滤波和电机驱动的背后。