3.6. Fundamentos de electrónica¶
Controlar cualquier dispositivo externo desde un pin GPIO requiere un circuito al otro lado del pin. Tres conceptos de electrónica básica – la tensión, la corriente y la relación entre ambas a través de una resistencia – aparecen en todos estos circuitos.
3.6.1. Tensión, corriente, resistencia¶
La tensión (voltios, V) es la diferencia de potencial entre dos puntos de un circuito. El riel de alimentación del chip puede estar a 3,3 V respecto a tierra; un pin GPIO puesto a nivel alto se sitúa en esos mismos 3,3 V.
La corriente (amperios, A, o miliamperios, mA) es el flujo de carga a través de un cable. La corriente siempre regresa a donde se originó, así que para que circule cualquier corriente el circuito debe formar un bucle completo desde la alimentación de vuelta a tierra.
La resistencia (ohmios, Ω) es cuánto se opone el camino a ese flujo. La finalidad de una resistencia es fijar la corriente a un valor conocido para una tensión conocida.
La ley de Ohm las relaciona entre sí:
La ley de Ohm en sus tres formas.¶
En palabras: la tensión a través de una resistencia es igual a la corriente que la atraviesa multiplicada por la resistencia. Conociendo dos cualesquiera de las tres se obtiene la tercera mediante álgebra.
3.6.2. Diodos¶
Un diodo es un componente de dos terminales que conduce corriente en un sentido (del ánodo al cátodo) y la bloquea en el otro.
Un diodo conduce solo del ánodo al cátodo. Un LED es un diodo que emite luz mientras conduce.¶
Un diodo también tiene una tensión directa (Vf) – la caída de tensión que se produce en él cuando la corriente fluye en el sentido de conducción. Una vez que la tensión aplicada alcanza Vf, el diodo se comporta aproximadamente como un cable; por debajo de ella, apenas circula corriente.
3.6.3. LEDs¶
Un diodo emisor de luz (LED) es un diodo que convierte su corriente de conducción en luz visible o infrarroja. El brillo varía con la corriente; el color lo determina la química del LED, no la excitación.
Tensiones directas típicas de los LED:
Rojo: 1,8 – 2,2 V
Verde o amarillo: 2,0 – 2,4 V
Azul o blanco: 2,8 – 3,4 V
Una corriente de funcionamiento útil para un LED indicador es de 5 – 20 mA. Las corrientes mayores dan más brillo, pero acortan la vida del LED y pueden superar el límite de excitación del pin GPIO.
3.6.4. La resistencia limitadora de corriente¶
Conectar un LED directamente entre un pin GPIO y tierra dejaría circular una corriente casi ilimitada: una vez alcanzada la tensión directa, el LED se comporta como un cortocircuito casi total. Una resistencia en serie entre el pin y el LED fija la corriente a un valor seguro.
Una resistencia en serie fija la corriente del LED.¶
La tensión de alimentación se reparte entre la resistencia y el LED: el LED cae su tensión directa y la resistencia cae el resto. Por la ley de Ohm:
R = (Vsupply - Vf) / If
Para un LED rojo (Vf ≈ 2.0 V) excitado desde un pin GPIO de 3,3 V a 10 mA:
R = (3.3 - 2.0) / 0.010 = 130 Ω
En la práctica, elige el valor estándar inmediatamente superior (150 Ω o 220 Ω). El resultado es un LED ligeramente menos brillante con un margen de seguridad más holgado. Recurre a 200 – 470 Ω como valor por defecto sensato cuando el brillo exacto no importe.
3.6.5. Por qué importa cada parte¶
La forma de todo circuito de salida GPIO surge de las cuatro ideas anteriores:
La tensión fija la energía disponible en el pin. Un GPIO de 3,3 V dispone de 3,3 V para repartir entre lo que se conecte entre él y tierra.
Un diodo (un LED, en este caso) consume parte de esa tensión como su caída directa y se niega a conducir en el sentido equivocado – determina el en qué sentido y la parte fija.
Una resistencia limitadora de corriente consume la tensión restante y convierte el presupuesto sobrante en una corriente controlada. Sin ella, el LED absorbería toda la corriente que el pin pueda suministrar – normalmente suficiente para destruir uno de los dos o ambos.
La ley de Ohm es lo que hace calculable el valor de la resistencia: dadas la tensión sobrante y la corriente deseada,
Rse despeja mediante álgebra.
La tensión, la corriente, la resistencia, los diodos y una sola ecuación reordenada bastan para diseñar cualquier etapa básica de salida GPIO.
Las mismas piezas han estado ocultas tras el LED integrado todo este tiempo. machine.LED("LED_RED").on() enciende el LED porque la placa de la cámara ya proporciona todo lo que lo rodea – la resistencia limitadora de corriente, el cable a tierra, el propio LED – y la clase simplemente conmuta el GPIO del silicio que hay detrás. La idea de que «una línea enciende un LED» es cierta; es solo una forma breve de decir «controlar ese circuito». Si se quita la abstracción, lo que queda es exactamente el circuito anterior.
machine.Pin es ese mismo silicio expuesto sin las piezas circundantes. El script controla la tensión del pin directamente; tú aportas la resistencia (dimensionada por la ley de Ohm), el LED y el camino de retorno a tierra. Las mismas cuatro ideas reaparecen, en combinaciones algo distintas, detrás del antirrebote de interruptores, el filtrado de PWM y el control de motores.