Fundamentos de electricidad para robótica: carga, voltaje, corriente y medición
Fundamentos de electricidad para robótica: carga, voltaje, corriente y medición
En el capítulo 1 revisamos cómo la robótica pasó de autómatas mecánicos a sistemas distribuidos con microcontroladores conectados a la red, y por qué un lenguaje concurrente como Elixir encaja bien en ese escenario. Ese recorrido histórico dejó una deuda: todos esos sistemas, desde el telar de Jacquard hasta un enjambre de sensores ESP32 hablando MQTT, funcionan porque hay cargas eléctricas moviéndose por conductores. Antes de escribir una línea de código que encienda un LED o lea un sensor, hay que entender qué está pasando en el cobre.
Este capítulo cubre esa base. No es un curso de física: es el conjunto mínimo de conceptos que necesitas para dimensionar una fuente, elegir una resistencia, calcular cuánto dura una batería, no quemar un microcontrolador y no lastimarte. Al final vas a poder tomar un multímetro, medir cualquier punto de un circuito y saber si el número que aparece en pantalla tiene sentido.
De qué está hecha la electricidad
La materia está formada por átomos, y los átomos tienen tres partículas relevantes para nosotros: protones (carga positiva), neutrones (sin carga) y electrones (carga negativa). Los protones y neutrones están apretados en el núcleo y no se mueven. Los electrones orbitan alrededor, y en ciertos materiales los que están en la capa exterior están tan débilmente ligados que basta un empujón para que salten de un átomo al siguiente.
La carga eléctrica es una propiedad fundamental de la materia, igual que la masa. Se mide en coulombs (C). Un solo electrón tiene una carga de aproximadamente 1,602 × 10⁻¹⁹ C, un número absurdamente pequeño: hacen falta unos 6,24 × 10¹⁸ electrones para juntar un coulomb.
Cuando hablamos de “electricidad” nos referimos al flujo de carga eléctrica a través de un material. En un cable de cobre, ese flujo son electrones saltando de átomo en átomo.
Los materiales según cómo tratan a los electrones
| Tipo | Comportamiento | Ejemplos | Uso típico en robótica |
|---|---|---|---|
| Conductor | Electrones libres abundantes, casi no oponen resistencia | Cobre, aluminio, plata, oro | Cables, pistas de PCB, pines |
| Semiconductor | Conduce o no según se lo dopa y polariza | Silicio, germanio | Transistores, diodos, chips |
| Aislante | Prácticamente sin electrones libres | Plástico, vidrio, caucho, aire seco | Recubrimiento de cables, carcasas |
| Superconductor | Resistencia exactamente cero bajo cierta temperatura | Niobio-titanio | Resonancia magnética, no en hobby |
La distinción conductor/aislante no es absoluta: el aire es aislante hasta que aplicas unos 3 kV por milímetro, momento en que se ioniza y salta un arco. Tu piel seca es bastante aislante, tu piel húmeda mucho menos. Ninguno de estos límites es una barrera mágica, son valores que se pueden superar.
Un detalle contraintuitivo: la velocidad
Cuando accionas un interruptor, la ampolleta se enciende de inmediato. Es tentador concluir que los electrones viajan a velocidades enormes. No es así.
Los electrones individuales en un conductor se mueven con una velocidad de deriva ridículamente lenta: del orden de un centímetro por segundo en un cable típico con corriente moderada. Lo que viaja rápido es la señal, el campo electromagnético que empuja a todos los electrones a la vez, y eso sí se propaga a una fracción importante de la velocidad de la luz.
La analogía útil es un tubo lleno de pelotas de ping-pong. Si empujas una pelota por un extremo, sale otra por el otro extremo casi instantáneamente, aunque ninguna pelota recorrió el tubo completo. Ese “casi instantáneamente” es la propagación de la señal; el desplazamiento lento de cada pelota es la velocidad de deriva.
flowchart LR
subgraph Cable["Conductor de cobre"]
direction LR
A(("e⁻")) -->|salto| B(("e⁻"))
B -->|salto| C(("e⁻"))
C -->|salto| D(("e⁻"))
D -->|salto| E(("e⁻"))
end
F["Campo eléctrico<br/>se propaga a ~0,7c"] -.->|empuja a todos<br/>simultáneamente| Cable
G["Cada electrón:<br/>~1 cm/s de deriva"] -.-> Cable
Esto importa en la práctica: en un bus I2C a 400 kHz el retardo de propagación en 20 cm de cable es despreciable, pero en una línea de reloj a 100 MHz esos mismos 20 cm ya introducen desfases que hay que considerar. Por ahora basta con recordar que la señal es rápida y los electrones son lentos.
La analogía hidráulica
Casi todo lo que sigue se entiende mejor con un sistema de agua. Imagina un estanque elevado conectado por una cañería a un estanque más bajo, con una válvula en medio.
flowchart TD
T1["Estanque alto<br/>(potencial alto)"] -->|cañería| V{"Válvula<br/>parcialmente cerrada"}
V -->|caudal reducido| T2["Estanque bajo<br/>(potencial bajo)"]
T2 -->|bomba| T1
subgraph Equivalencia
E1["Diferencia de altura = VOLTAJE (V)"]
E2["Caudal de agua = CORRIENTE (I)"]
E3["Estrechez de la válvula = RESISTENCIA (R)"]
E4["Bomba = FUENTE / BATERÍA"]
end
La analogía sostiene bastante peso:
- Si subes el estanque (más voltaje) con la misma válvula, pasa más agua (más corriente).
- Si cierras la válvula (más resistencia) con la misma altura, pasa menos agua.
- Sin diferencia de altura no hay caudal, aunque los estanques estén llenos. Una batería desconectada tiene voltaje pero no entrega corriente.
- El agua no se consume, circula. Los electrones tampoco se gastan: se gasta la energía que llevan.
Donde la analogía se rompe: el agua puede derramarse fuera de la cañería, los electrones no salen del circuito salvo situaciones extremas. Y el “caudal” eléctrico es idéntico en todo el lazo cerrado, cosa que en hidráulica no siempre ocurre.
Voltaje: la diferencia que empuja
El voltaje o tensión es la diferencia de energía potencial eléctrica entre dos puntos, dividida por la carga. Se mide en volts (V). Un volt es un joule por coulomb: si mueves un coulomb de carga entre dos puntos separados por un volt, se transfiere un joule de energía.
Tres ideas que se olvidan seguido:
El voltaje es siempre relativo. No existe “el voltaje de este pin”, existe “el voltaje de este pin respecto de GND”. Cuando dices que un pin está a 3,3 V, estás diciendo que hay 3,3 V entre ese pin y la referencia que llamaste tierra. Si mides con la punta negra en otro lugar, obtienes otro número, y ninguno de los dos está mal.
GND es una convención, no un lugar físico. En un circuito a baterías, “tierra” es simplemente el nodo que decidimos llamar cero. Puede estar flotando respecto del suelo real.
Voltaje en vacío vs voltaje bajo carga. Una pila alcalina nueva marca 1,6 V con el multímetro y nada conectado. Al conectarle un motor puede caer a 1,2 V. La diferencia se debe a la resistencia interna de la pila: parte del voltaje se “pierde” adentro de ella. Medir sin carga miente sistemáticamente sobre el estado real de una batería.
Voltajes que vas a encontrar
| Fuente | Voltaje nominal | Notas |
|---|---|---|
| Pila alcalina AA/AAA | 1,5 V | 1,6 V nueva, se considera agotada bajo 1,0 V |
| Recargable NiMH AA | 1,2 V | Curva de descarga muy plana |
| Celda litio-ion / LiPo | 3,7 V nominal | 4,2 V cargada, 3,0 V mínimo seguro |
| Celda LiFePO4 | 3,2 V nominal | Más segura, menos densidad energética |
| Pila botón CR2032 | 3,0 V | Corriente máxima muy baja (pocos mA) |
| Lógica de microcontroladores modernos | 3,3 V | ESP32, Raspberry Pi, STM32 |
| Lógica Arduino Uno clásica | 5 V | Fuente frecuente de daños al mezclar con 3,3 V |
| USB | 5 V | USB-PD negocia 9, 12, 15, 20 V |
| Batería de auto / robots grandes | 12 V | Plomo-ácido, 12,6 V a plena carga |
| Red domiciliaria Chile | 220 V AC, 50 Hz | Peligrosa, ver sección de seguridad |
| Red domiciliaria EE.UU. | 120 V AC, 60 Hz | También peligrosa |
Un error habitual en robótica es asumir que “3,3 V es 3,3 V”. Los pines de un ESP32 toleran hasta 3,6 V; alimentarlos con los 5 V de un Arduino los destruye. Esa incompatibilidad se resuelve con conversores de nivel, que veremos en el capítulo de circuitos.
Corriente: cuánta carga pasa por segundo
La corriente eléctrica es la cantidad de carga que atraviesa una sección del conductor por unidad de tiempo. Se mide en amperes (A):
I = Q / t
donde Q es carga en coulombs y t tiempo en segundos. Un ampere es un coulomb por segundo, o sea 6,24 × 10¹⁸ electrones pasando por un punto cada segundo.
Corriente convencional vs corriente electrónica
Aquí hay una trampa histórica. Benjamin Franklin definió el sentido de la corriente antes de que se descubriera el electrón, y le asignó el sentido “del positivo al negativo”. Cuando se descubrió que los portadores en un metal son electrones con carga negativa, resultó que se mueven al revés: del negativo al positivo.
La convención nunca se cambió. Todo el análisis de circuitos, los símbolos de diodos y transistores, y las flechas en los esquemáticos usan la corriente convencional: positivo → negativo. Los electrones van al revés, y no pasa nada, porque una carga positiva moviéndose hacia la derecha es matemáticamente equivalente a una negativa moviéndose hacia la izquierda.
Usa siempre corriente convencional cuando analices circuitos. Menciona los electrones solo cuando expliques física de semiconductores.
flowchart LR
Bat["Batería<br/>terminal + / terminal −"]
R["Carga<br/>(LED, motor,<br/>resistencia)"]
Bat -->|"corriente convencional I<br/>(+ hacia −)"| R
R -->|"retorno"| Bat
R -.->|"electrones e⁻<br/>(− hacia +)"| Bat
Órdenes de magnitud de corriente
| Consumidor | Corriente típica |
|---|---|
| Entrada digital de un microcontrolador | menos de 1 µA |
| ESP32 en deep sleep | 10 a 150 µA |
| Sensor DHT22 midiendo | 1 a 1,5 mA |
| LED indicador estándar | 5 a 20 mA |
| Pin GPIO de Arduino (máximo absoluto) | 40 mA, recomendado 20 mA |
| ESP32 transmitiendo WiFi | picos de 250 a 500 mA |
| Servo SG90 sin carga | 100 a 200 mA |
| Servo SG90 bloqueado | 700 mA o más |
| Motor DC pequeño arrancando | 1 a 3 A |
| Raspberry Pi 4 bajo carga | 1,2 a 3 A |
La columna derecha explica por qué tantos proyectos “funcionan en el escritorio y fallan armados”: el pico de corriente al arrancar un motor hunde el voltaje de la fuente y el microcontrolador se reinicia. Ese fenómeno se llama brownout y es una de las fallas más comunes en robótica amateur.
Resistencia: la oposición al paso
La resistencia mide cuánto se opone un material al flujo de corriente. Se mide en ohms (Ω). Físicamente, los electrones chocan con la red cristalina del material, pierden energía y esa energía se disipa como calor.
La resistencia de un trozo de material depende de tres cosas:
R = ρ × L / A
ρ(rho): resistividad, propiedad del material en Ω·mL: longitud del conductorA: área de la sección transversal
Más largo, más resistencia. Más grueso, menos resistencia. Esto explica por qué un cable delgado y largo alimentando un motor produce caídas de voltaje notorias, y por qué los cables de alta corriente son gruesos.
| Material | Resistividad aproximada (Ω·m a 20 °C) |
|---|---|
| Plata | 1,59 × 10⁻⁸ |
| Cobre | 1,68 × 10⁻⁸ |
| Aluminio | 2,65 × 10⁻⁸ |
| Nicromo (resistencias de calor) | 1,10 × 10⁻⁶ |
| Silicio puro | 640 |
| Vidrio | 10¹⁰ a 10¹⁴ |
La resistencia también depende de la temperatura. En metales sube con el calor; en semiconductores y termistores NTC baja. Ese comportamiento es exactamente lo que aprovecha un termistor para medir temperatura, y es lo que hace que un motor caliente consuma distinto que uno frío.
Código de colores de resistencias
Las resistencias de through-hole vienen marcadas con bandas de color. Vale la pena poder leerlas sin buscar la tabla cada vez.
| Color | Dígito | Multiplicador | Tolerancia |
|---|---|---|---|
| Negro | 0 | ×1 | — |
| Café | 1 | ×10 | ±1 % |
| Rojo | 2 | ×100 | ±2 % |
| Naranjo | 3 | ×1 000 | — |
| Amarillo | 4 | ×10 000 | — |
| Verde | 5 | ×100 000 | ±0,5 % |
| Azul | 6 | ×1 000 000 | ±0,25 % |
| Violeta | 7 | ×10 000 000 | ±0,1 % |
| Gris | 8 | — | ±0,05 % |
| Blanco | 9 | — | — |
| Dorado | — | ×0,1 | ±5 % |
| Plateado | — | ×0,01 | ±10 % |
En una resistencia de 4 bandas: dos dígitos, multiplicador, tolerancia. Café-Negro-Rojo-Dorado es 1, 0, ×100 = 1 000 Ω ±5 %, es decir 1 kΩ. Café-Negro-Naranjo-Dorado es 10 kΩ.
Vamos a escribir esto en Elixir, porque leer bandas a ojo con luz mala es una de las causas frecuentes de circuitos que no funcionan.
defmodule Electronica.CodigoColores do
@moduledoc """
Decodifica el código de colores de resistencias axiales de 4 y 5 bandas.
"""
@digitos %{
negro: 0,
cafe: 1,
rojo: 2,
naranjo: 3,
amarillo: 4,
verde: 5,
azul: 6,
violeta: 7,
gris: 8,
blanco: 9
}
@multiplicadores %{
negro: 1,
cafe: 10,
rojo: 100,
naranjo: 1_000,
amarillo: 10_000,
verde: 100_000,
azul: 1_000_000,
violeta: 10_000_000,
dorado: 0.1,
plateado: 0.01
}
@tolerancias %{
cafe: 1.0,
rojo: 2.0,
verde: 0.5,
azul: 0.25,
violeta: 0.1,
gris: 0.05,
dorado: 5.0,
plateado: 10.0
}
@doc """
Decodifica una lista de 4 o 5 bandas.
iex> Electronica.CodigoColores.decodificar([:cafe, :negro, :rojo, :dorado])
{:ok, %{ohms: 1000.0, tolerancia_pct: 5.0, minimo: 950.0, maximo: 1050.0}}
"""
def decodificar([d1, d2, mult, tol]) do
with {:ok, a} <- digito(d1),
{:ok, b} <- digito(d2),
{:ok, m} <- multiplicador(mult),
{:ok, t} <- tolerancia(tol) do
construir((a * 10 + b) * m, t)
end
end
def decodificar([d1, d2, d3, mult, tol]) do
with {:ok, a} <- digito(d1),
{:ok, b} <- digito(d2),
{:ok, c} <- digito(d3),
{:ok, m} <- multiplicador(mult),
{:ok, t} <- tolerancia(tol) do
construir((a * 100 + b * 10 + c) * m, t)
end
end
def decodificar(_), do: {:error, :cantidad_de_bandas_invalida}
defp construir(ohms, tol) do
ohms = ohms * 1.0
delta = ohms * tol / 100
{:ok,
%{
ohms: ohms,
tolerancia_pct: tol,
minimo: ohms - delta,
maximo: ohms + delta
}}
end
defp digito(color) do
case Map.fetch(@digitos, color) do
{:ok, v} -> {:ok, v}
:error -> {:error, {:color_no_valido_como_digito, color}}
end
end
defp multiplicador(color) do
case Map.fetch(@multiplicadores, color) do
{:ok, v} -> {:ok, v}
:error -> {:error, {:color_no_valido_como_multiplicador, color}}
end
end
defp tolerancia(color) do
case Map.fetch(@tolerancias, color) do
{:ok, v} -> {:ok, v}
:error -> {:error, {:color_no_valido_como_tolerancia, color}}
end
end
end
Prueba en iex:
iex> Electronica.CodigoColores.decodificar([:amarillo, :violeta, :rojo, :dorado])
{:ok, %{ohms: 4700.0, tolerancia_pct: 5.0, minimo: 4465.0, maximo: 4935.0}}
iex> Electronica.CodigoColores.decodificar([:cafe, :negro, :negro, :rojo, :cafe])
{:ok, %{ohms: 10000.0, tolerancia_pct: 1.0, minimo: 9900.0, maximo: 10100.0}}
Fíjate en el rango: una resistencia “de 4,7 kΩ” con 5 % de tolerancia puede medir legítimamente 4 465 Ω. Cuando midas con el multímetro y no te dé el valor exacto, eso es normal.
La ley de Ohm
Georg Ohm publicó en 1827 la relación que gobierna la mayoría de los circuitos que vas a armar:
V = I × R
De ahí salen las otras dos formas:
I = V / R
R = V / I
Es una relación lineal: si duplicas el voltaje sobre una resistencia fija, se duplica la corriente. Si duplicas la resistencia manteniendo el voltaje, la corriente se reduce a la mitad.
flowchart TD
subgraph Conocidos["Lo que ya mediste"]
A["Voltaje V<br/>(punta roja a punta negra,<br/>en paralelo)"]
B["Corriente I<br/>(multímetro en serie)"]
C["Resistencia R<br/>(componente fuera del circuito)"]
end
A --> D{"¿Qué falta?"}
B --> D
C --> D
D -->|"tengo I y R"| E["V = I × R"]
D -->|"tengo V y R"| F["I = V / R"]
D -->|"tengo V e I"| G["R = V / I"]
E --> H["Verifica potencia:<br/>P = V × I"]
F --> H
G --> H
H --> I{"¿P supera el<br/>límite del componente?"}
I -->|sí| J["Cambiar componente<br/>o rediseñar"]
I -->|no| K["Diseño viable"]
Un caso concreto: la resistencia de un LED
Este es el cálculo más usado en electrónica de hobby, y es ley de Ohm pura.
Un LED no es una resistencia. Tiene una caída de voltaje directa (Vf) más o menos fija que depende del color, y si le aplicas voltaje directamente sin limitar la corriente, conduce hasta destruirse. La resistencia en serie existe para absorber la diferencia entre la fuente y esa Vf.
| Color del LED | Vf típica | Corriente recomendada |
|---|---|---|
| Rojo | 1,8 a 2,2 V | 10 a 20 mA |
| Amarillo / Naranjo | 2,0 a 2,2 V | 10 a 20 mA |
| Verde | 2,0 a 3,2 V | 10 a 20 mA |
| Azul | 3,0 a 3,4 V | 10 a 20 mA |
| Blanco | 3,0 a 3,4 V | 10 a 20 mA |
| Infrarrojo | 1,2 a 1,5 V | 20 a 100 mA (pulsos) |
Con una fuente de 5 V, un LED rojo de Vf = 2,0 V y una corriente objetivo de 10 mA:
V_resistencia = 5 V − 2,0 V = 3,0 V
R = 3,0 V / 0,010 A = 300 Ω
En la práctica se usa el valor comercial más cercano hacia arriba: 330 Ω. Eso da una corriente real de 3,0 / 330 = 9,1 mA, perfectamente aceptable.
Ahora lo mismo desde Elixir:
defmodule Electronica.Ohm do
@moduledoc """
Ley de Ohm y cálculos derivados para dimensionar circuitos resistivos.
Todas las funciones trabajan en unidades base: volts, amperes, ohms, watts.
"""
@doc "V = I × R"
def voltaje(corriente_a, resistencia_ohm)
when is_number(corriente_a) and is_number(resistencia_ohm) do
corriente_a * resistencia_ohm
end
@doc "I = V / R"
def corriente(voltaje_v, resistencia_ohm)
when is_number(voltaje_v) and is_number(resistencia_ohm) and resistencia_ohm > 0 do
voltaje_v / resistencia_ohm
end
def corriente(_, 0), do: {:error, :cortocircuito}
@doc "R = V / I"
def resistencia(voltaje_v, corriente_a)
when is_number(voltaje_v) and is_number(corriente_a) and corriente_a > 0 do
voltaje_v / corriente_a
end
def resistencia(_, 0), do: {:error, :circuito_abierto}
@doc """
Resuelve la magnitud faltante a partir de dos conocidas.
iex> Electronica.Ohm.resolver(voltaje: 5.0, resistencia: 220.0)
%{voltaje: 5.0, corriente: 0.022727272727272728, resistencia: 220.0,
potencia: 0.11363636363636364}
"""
def resolver(opts) do
v = Keyword.get(opts, :voltaje)
i = Keyword.get(opts, :corriente)
r = Keyword.get(opts, :resistencia)
{v, i, r} =
cond do
is_nil(v) and i && r -> {voltaje(i, r), i, r}
is_nil(i) and v && r -> {v, corriente(v, r), r}
is_nil(r) and v && i -> {v, i, resistencia(v, i)}
v && i && r -> {v, i, r}
true -> raise ArgumentError, "se necesitan al menos dos de :voltaje, :corriente, :resistencia"
end
%{voltaje: v, corriente: i, resistencia: r, potencia: v * i}
end
@doc """
Calcula la resistencia limitadora para un LED.
Devuelve el valor teórico, el valor comercial de la serie E12 inmediatamente
superior, la corriente real resultante y la potencia disipada.
"""
@serie_e12 [10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82]
def resistencia_led(v_fuente, v_led, corriente_objetivo_a)
when v_fuente > v_led and corriente_objetivo_a > 0 do
v_resistencia = v_fuente - v_led
r_teorica = v_resistencia / corriente_objetivo_a
r_comercial = siguiente_e12(r_teorica)
i_real = v_resistencia / r_comercial
%{
caida_en_resistencia: v_resistencia,
resistencia_teorica: Float.round(r_teorica, 1),
resistencia_comercial: r_comercial,
corriente_real_ma: Float.round(i_real * 1000, 2),
potencia_resistencia_mw: Float.round(v_resistencia * i_real * 1000, 2)
}
end
def resistencia_led(v_fuente, v_led, _) when v_fuente <= v_led do
{:error, :fuente_insuficiente_para_encender_el_led}
end
defp siguiente_e12(valor) do
decadas = 0..6
candidatos =
for d <- decadas, base <- @serie_e12 do
base * :math.pow(10, d) / 10
end
candidatos
|> Enum.sort()
|> Enum.find(List.last(Enum.sort(candidatos)), fn c -> c >= valor end)
end
end
iex> Electronica.Ohm.resistencia_led(5.0, 2.0, 0.010)
%{
caida_en_resistencia: 3.0,
resistencia_teorica: 300.0,
resistencia_comercial: 330.0,
corriente_real_ma: 9.09,
potencia_resistencia_mw: 27.27
}
iex> Electronica.Ohm.resistencia_led(3.3, 3.2, 0.020)
%{caida_en_resistencia: 0.1, resistencia_teorica: 5.0, resistencia_comercial: 5.6,
corriente_real_ma: 17.86, potencia_resistencia_mw: 1.79}
El segundo caso muestra un problema real: alimentar un LED azul de 3,2 V desde 3,3 V deja tan poco margen que cualquier variación de Vf entre unidades cambia drásticamente la corriente. Ese diseño es frágil, y la solución es usar una fuente con más margen o un driver de corriente constante.
Cuándo la ley de Ohm no aplica
La ley de Ohm describe componentes óhmicos: aquellos donde R es constante. No todos lo son.
- Diodos y LEDs: la relación entre voltaje y corriente es exponencial, no lineal.
- Transistores: la corriente de colector depende de la base, no solo del voltaje aplicado.
- Lámparas incandescentes: el filamento cambia de resistencia con la temperatura; en frío puede tener una décima parte de su resistencia en caliente, lo que produce el pico de corriente al encender.
- Termistores y fotorresistencias: su resistencia es la variable que estamos midiendo.
- Baterías: tienen resistencia interna, pero además una curva de voltaje que depende del estado de carga.
Aún así, la ley de Ohm sigue siendo válida localmente: en cualquier punto de operación puedes calcular la resistencia dinámica. Simplemente no puedes extrapolar.
Potencia y energía
La potencia es la rapidez con que se transfiere energía. Se mide en watts (W), y un watt es un joule por segundo.
P = V × I
Combinando con la ley de Ohm salen dos formas equivalentes muy útiles:
P = I² × R (cuando conoces la corriente y la resistencia)
P = V² / R (cuando conoces el voltaje y la resistencia)
La forma P = I² × R explica algo importante: la potencia disipada crece con el cuadrado de la corriente. Duplicar la corriente por un cable cuadruplica el calor que genera. Por eso las pérdidas en cables largos son el enemigo en sistemas de alta corriente, y por eso la transmisión eléctrica de larga distancia usa voltajes altísimos y corrientes bajas.
Energía
La energía es potencia integrada en el tiempo. La unidad del SI es el joule (J), pero en electricidad se usan más:
- Wh (watt-hora): energía de un watt durante una hora = 3 600 J.
- kWh (kilowatt-hora): lo que factura la empresa eléctrica = 3 600 000 J.
- mAh (miliampere-hora): capacidad de carga, no de energía. Para convertir a energía hay que multiplicar por el voltaje nominal.
Esa última distinción confunde a mucha gente. Una batería de 2 000 mAh a 3,7 V almacena 2,0 Ah × 3,7 V = 7,4 Wh. Una de 2 000 mAh a 1,2 V almacena solo 2,4 Wh. Comparar mAh entre químicas distintas no significa nada.
defmodule Electronica.Potencia do
@moduledoc """
Cálculos de potencia, energía y autonomía para sistemas alimentados a batería.
"""
@doc "P = V × I, en watts"
def watts(voltaje_v, corriente_a), do: voltaje_v * corriente_a
@doc "P = I² × R, útil para calcular disipación en una resistencia"
def watts_por_corriente(corriente_a, resistencia_ohm),
do: corriente_a * corriente_a * resistencia_ohm
@doc "P = V² / R"
def watts_por_voltaje(voltaje_v, resistencia_ohm) when resistencia_ohm > 0,
do: voltaje_v * voltaje_v / resistencia_ohm
@doc "Convierte capacidad en mAh a energía en Wh dado el voltaje nominal"
def wh(capacidad_mah, voltaje_nominal_v), do: capacidad_mah / 1000 * voltaje_nominal_v
@doc "Convierte Wh a joules"
def joules(wh), do: wh * 3600
@doc """
Estima autonomía en horas de un dispositivo con consumo constante.
`eficiencia` modela las pérdidas del regulador (0.85 es típico para un
buck converter, 0.4 a 0.6 para un LDO que baja mucho voltaje).
"""
def autonomia_horas(capacidad_mah, consumo_ma, eficiencia \\ 0.85)
when consumo_ma > 0 and eficiencia > 0 and eficiencia <= 1 do
capacidad_mah * eficiencia / consumo_ma
end
@doc """
Autonomía de un dispositivo con ciclo de trabajo: despierta un tiempo,
duerme el resto. Es el patrón de casi todo sensor IoT a batería.
"""
def autonomia_ciclada(capacidad_mah, opts) do
consumo_activo_ma = Keyword.fetch!(opts, :consumo_activo_ma)
consumo_dormido_ua = Keyword.fetch!(opts, :consumo_dormido_ua)
segundos_activo = Keyword.fetch!(opts, :segundos_activo)
periodo_segundos = Keyword.fetch!(opts, :periodo_segundos)
eficiencia = Keyword.get(opts, :eficiencia, 0.85)
segundos_dormido = periodo_segundos - segundos_activo
carga_por_ciclo_mas =
consumo_activo_ma * segundos_activo + consumo_dormido_ua / 1000 * segundos_dormido
consumo_promedio_ma = carga_por_ciclo_mas / periodo_segundos
horas = capacidad_mah * eficiencia / consumo_promedio_ma
%{
consumo_promedio_ma: Float.round(consumo_promedio_ma, 4),
autonomia_horas: Float.round(horas, 1),
autonomia_dias: Float.round(horas / 24, 1),
ciclos_por_dia: Float.round(86400 / periodo_segundos, 1)
}
end
end
# Un ESP32 que despierta 3 segundos cada 10 minutos para publicar por MQTT,
# alimentado con una celda 18650 de 2600 mAh.
iex> Electronica.Potencia.autonomia_ciclada(2600,
...> consumo_activo_ma: 160,
...> consumo_dormido_ua: 20,
...> segundos_activo: 3,
...> periodo_segundos: 600)
%{consumo_promedio_ma: 0.8199, autonomia_horas: 2695.5, autonomia_dias: 112.3,
ciclos_por_dia: 144.0}
# El mismo ESP32 sin deep sleep, siempre despierto:
iex> Electronica.Potencia.autonomia_horas(2600, 160)
13.8125
Casi 4 meses contra menos de 14 horas. Ese salto de tres órdenes de magnitud es la razón por la que el diseño de firmware IoT gira alrededor del ciclo de sueño.
Prefijos del sistema internacional
En electrónica los valores abarcan 20 órdenes de magnitud. Los prefijos no son decoración, son parte del vocabulario.
| Prefijo | Símbolo | Factor | Ejemplo en robótica |
|---|---|---|---|
| Giga | G | 10⁹ | 2,4 GHz (WiFi, Bluetooth) |
| Mega | M | 10⁶ | 10 MΩ (resistencia de aislación) |
| Kilo | k | 10³ | 4,7 kΩ (pull-up de I2C) |
| — | — | 10⁰ | 1 A, 5 V |
| Mili | m | 10⁻³ | 20 mA (LED), 100 mV |
| Micro | µ | 10⁻⁶ | 10 µF (condensador), 50 µA |
| Nano | n | 10⁻⁹ | 100 nF (desacoplo) |
| Pico | p | 10⁻¹² | 22 pF (cristal de reloj) |
Observaciones prácticas: en resistencias se escribe 4k7 en lugar de 4,7 kΩ para evitar que la coma se pierda al imprimir. En condensadores el marcado 104 significa 10 seguido de 4 ceros en picofarads, es decir 100 000 pF = 100 nF = 0,1 µF. Convertir entre nF y µF es el origen de una cantidad notable de errores.
Corriente continua y corriente alterna
Toda señal eléctrica se puede descomponer en una parte constante y una parte que varía en el tiempo. La parte constante se llama componente DC (direct current) y la variable componente AC (alternating current).
DC: corriente continua
El voltaje mantiene la misma polaridad. Una batería entrega DC: el positivo siempre es positivo. Es lo que consumen prácticamente todos los circuitos electrónicos: microcontroladores, sensores, motores DC, LEDs.
AC: corriente alterna
La polaridad se invierte periódicamente. La red domiciliaria en Chile entrega 220 V a 50 Hz: la tensión oscila como una sinusoide, cruzando por cero 100 veces por segundo.
Los parámetros de una señal AC:
- Frecuencia (f): ciclos por segundo, en hertz.
f = 1 / T, dondeTes el período. - Período (T): duración de un ciclo completo, en segundos.
- Amplitud de pico (Vp): máximo valor instantáneo.
- Pico a pico (Vpp): distancia entre máximo y mínimo. Para una sinusoide simétrica,
Vpp = 2 × Vp. - Valor RMS (Vrms): el valor DC equivalente en términos de potencia disipada. Para una sinusoide,
Vrms = Vp / √2 ≈ 0,707 × Vp.
Los “220 V” de la red son un valor RMS. El voltaje de pico real es 220 × √2 ≈ 311 V, y el pico a pico llega a 622 V. Ese detalle importa cuando eliges componentes con especificación de voltaje máximo.
| Aspecto | DC | AC |
|---|---|---|
| Polaridad | Fija | Se invierte periódicamente |
| Fuente típica | Batería, fuente conmutada, panel solar | Red eléctrica, alternador |
| Transformable con transformador | No | Sí |
| Transmisión a larga distancia | Requiere HVDC, costoso | Barata históricamente |
| Uso en electrónica digital | Prácticamente exclusivo | Solo en la entrada de la fuente |
| Medición en multímetro | Modo V⎓ / A⎓ | Modo V∼ / A∼ |
| Peligro para el cuerpo humano | Alto sobre 120 V | Alto sobre 50 V, peor para el corazón |
flowchart LR
A["Red 220 V AC<br/>50 Hz"] --> B["Transformador<br/>o conmutada"]
B --> C["Rectificador<br/>(puente de diodos)"]
C --> D["Filtro<br/>(condensadores)"]
D --> E["Regulador<br/>(lineal o buck)"]
E --> F["5 V DC<br/>estable"]
F --> G["Regulador 3V3"]
G --> H["ESP32<br/>3,3 V"]
F --> I["Servos<br/>5 V"]
style A fill:#c0392b,color:#fff
style F fill:#27ae60,color:#fff
style H fill:#27ae60,color:#fff
Ese diagrama describe lo que hay dentro de cualquier cargador de celular. Cada etapa pierde algo de energía: por eso el cargador se calienta.
PWM: el DC que parece analógico
Hay un tercer caso que se ve constantemente en robótica y que no es ni DC puro ni AC: la modulación por ancho de pulso (PWM). La señal alterna entre 0 V y el voltaje de alimentación a una frecuencia fija, y lo que se varía es el porcentaje de tiempo que está en alto (duty cycle).
Un PWM de 5 V con 25 % de duty cycle tiene un valor promedio de 1,25 V. Si alimentas un LED con eso, brilla aproximadamente a un cuarto de su intensidad, porque el ojo integra los pulsos. Si alimentas un motor, gira más lento por la misma razón.
defmodule Electronica.Senales do
@moduledoc """
Cálculos sobre señales AC, DC y PWM.
"""
@doc "Período en segundos a partir de la frecuencia en hertz"
def periodo(frecuencia_hz) when frecuencia_hz > 0, do: 1 / frecuencia_hz
@doc "Frecuencia en hertz a partir del período en segundos"
def frecuencia(periodo_s) when periodo_s > 0, do: 1 / periodo_s
@doc "Valor RMS de una sinusoide a partir de su amplitud de pico"
def rms_sinusoide(v_pico), do: v_pico / :math.sqrt(2)
@doc "Amplitud de pico a partir del valor RMS de una sinusoide"
def pico_desde_rms(v_rms), do: v_rms * :math.sqrt(2)
@doc """
Valor promedio de una señal PWM ideal entre 0 V y v_alto.
iex> Electronica.Senales.promedio_pwm(5.0, 0.25)
1.25
"""
def promedio_pwm(v_alto, duty) when duty >= 0 and duty <= 1, do: v_alto * duty
@doc """
Valor RMS de una señal PWM ideal. Es lo que determina la potencia real
disipada en una carga resistiva, y no coincide con el promedio.
iex> Electronica.Senales.rms_pwm(5.0, 0.25)
2.5
"""
def rms_pwm(v_alto, duty) when duty >= 0 and duty <= 1, do: v_alto * :math.sqrt(duty)
@doc """
Describe la señal de la red domiciliaria dada su tensión RMS y frecuencia.
"""
def red_domiciliaria(v_rms, f_hz) do
vp = pico_desde_rms(v_rms)
%{
rms: v_rms,
pico: Float.round(vp, 1),
pico_a_pico: Float.round(2 * vp, 1),
periodo_ms: Float.round(periodo(f_hz) * 1000, 2),
cruces_por_cero_por_segundo: f_hz * 2
}
end
end
iex> Electronica.Senales.red_domiciliaria(220.0, 50)
%{rms: 220.0, pico: 311.1, pico_a_pico: 622.3, periodo_ms: 20.0,
cruces_por_cero_por_segundo: 100}
iex> Electronica.Senales.rms_pwm(5.0, 0.5)
3.5355339059327378
Ese último resultado sorprende: un PWM al 50 % desde 5 V no equivale a 2,5 V en términos de calentamiento de una resistencia, sino a 3,54 V. La potencia entregada sí es la mitad, porque P = V²/R y 3,54² = 12,5 = 25/2. Confundir promedio con RMS es un error clásico al dimensionar disipadores.
Almacenamiento de energía: baterías y pilas
Casi todo robot móvil y todo sensor IoT depende de una batería. Elegir mal la química cuesta autonomía, peso o seguridad.
| Química | V nominal | V máximo | V mínimo seguro | Recargable | Notas |
|---|---|---|---|---|---|
| Alcalina (AA, AAA, 9 V) | 1,5 V | 1,6 V | 0,9 V | No | Barata, curva de descarga inclinada, puede sulfatar |
| Zinc-carbón | 1,5 V | 1,55 V | 0,9 V | No | Muy poca corriente, evitar |
| NiMH | 1,2 V | 1,45 V | 1,0 V | Sí | Curva muy plana, autodescarga baja en las “low self-discharge” |
| Li-ion (18650, 21700) | 3,7 V | 4,2 V | 3,0 V | Sí | Alta densidad, requiere BMS |
| LiPo (celdas planas) | 3,7 V | 4,2 V | 3,0 V | Sí | Alta corriente de descarga, sensible a daño mecánico |
| LiFePO4 | 3,2 V | 3,65 V | 2,5 V | Sí | Más segura y duradera, menos densa |
| Plomo-ácido | 12 V (6 celdas) | 12,7 V | 11,8 V | Sí | Pesada, tolera corrientes enormes |
| CR2032 (botón) | 3,0 V | 3,3 V | 2,0 V | No | Solo microamperes, ideal para RTC |
Conceptos que hay que manejar:
Capacidad (mAh o Ah). Cuánta carga entrega. Una batería de 2 600 mAh entrega teóricamente 2 600 mA durante una hora, o 260 mA durante 10 horas. En la práctica la capacidad efectiva baja al aumentar la corriente de descarga (efecto Peukert).
Tasa C. Una descarga a 1 C significa consumir toda la capacidad en una hora. Para una celda de 2 600 mAh, 1 C = 2,6 A. Una LiPo marcada “25 C” puede entregar 25 × capacidad de corriente instantánea. Una celda 18650 estándar no supera 2 C sin dañarse.
Resistencia interna. Toda batería tiene resistencia en serie. Al pedir corriente, el voltaje en los terminales cae según V_terminal = V_interno − I × R_interna. Una celda 18650 sana tiene entre 30 y 80 mΩ; una degradada supera los 200 mΩ y su voltaje se hunde bajo carga.
defmodule Electronica.Bateria do
@moduledoc """
Modelo simple de una batería con resistencia interna.
"""
defstruct [:nombre, :voltaje_nominal, :capacidad_mah, :resistencia_interna_ohm, :celdas]
def nueva(nombre, opts) do
%__MODULE__{
nombre: nombre,
voltaje_nominal: Keyword.fetch!(opts, :voltaje_nominal),
capacidad_mah: Keyword.fetch!(opts, :capacidad_mah),
resistencia_interna_ohm: Keyword.get(opts, :resistencia_interna_ohm, 0.05),
celdas: Keyword.get(opts, :celdas, 1)
}
end
@doc "Voltaje total del pack en serie"
def voltaje_pack(%__MODULE__{} = b), do: b.voltaje_nominal * b.celdas
@doc "Resistencia interna total del pack en serie"
def resistencia_pack(%__MODULE__{} = b), do: b.resistencia_interna_ohm * b.celdas
@doc """
Voltaje en los terminales al entregar cierta corriente, y potencia perdida
dentro de la propia batería en forma de calor.
"""
def bajo_carga(%__MODULE__{} = b, corriente_a) do
v_vacio = voltaje_pack(b)
r = resistencia_pack(b)
caida = corriente_a * r
v_terminal = v_vacio - caida
%{
voltaje_en_vacio: Float.round(v_vacio, 3),
caida_interna: Float.round(caida, 3),
voltaje_terminal: Float.round(v_terminal, 3),
potencia_perdida_w: Float.round(corriente_a * caida, 3),
potencia_util_w: Float.round(corriente_a * v_terminal, 3)
}
end
@doc "Corriente máxima segura según la tasa C declarada"
def corriente_maxima_a(%__MODULE__{} = b, tasa_c), do: b.capacidad_mah / 1000 * tasa_c
@doc "Energía almacenada en watt-hora"
def energia_wh(%__MODULE__{} = b), do: b.capacidad_mah / 1000 * voltaje_pack(b)
end
iex> pack = Electronica.Bateria.nueva("2S 18650",
...> voltaje_nominal: 3.7, capacidad_mah: 2600,
...> resistencia_interna_ohm: 0.05, celdas: 2)
iex> Electronica.Bateria.bajo_carga(pack, 3.0)
%{
voltaje_en_vacio: 7.4,
caida_interna: 0.3,
voltaje_terminal: 7.1,
potencia_perdida_w: 0.9,
potencia_util_w: 21.3
}
iex> Electronica.Bateria.energia_wh(pack)
19.240000000000002
iex> Electronica.Bateria.corriente_maxima_a(pack, 2)
5.2
Casi un watt disipado dentro de la batería al pedir 3 A. Eso es calor que no hace trabajo útil y que degrada la celda. Si el pack estuviera degradado con 200 mΩ por celda, la caída sería de 1,2 V y el voltaje de terminal bajaría a 6,2 V, probablemente por debajo de lo que el regulador necesita.
Seguridad eléctrica
Esta sección no es opcional. Los circuitos de 3,3 V y 5 V de un microcontrolador no representan riesgo eléctrico para una persona, pero hay tres escenarios que sí lo son: la red domiciliaria, las baterías de litio y los cortocircuitos de alta corriente.
Qué hace daño: la corriente, no el voltaje
El daño biológico lo produce la corriente que atraviesa el cuerpo, no el voltaje aplicado. El voltaje importa porque, según la ley de Ohm, determina cuánta corriente circulará dada la resistencia del cuerpo.
La resistencia del cuerpo humano varía enormemente:
| Condición | Resistencia aproximada mano a mano |
|---|---|
| Piel seca, contacto pequeño | 10 000 a 100 000 Ω |
| Piel húmeda | 1 000 a 5 000 Ω |
| Piel mojada o herida, contacto amplio | 300 a 1 000 Ω |
| Tejido interno sin piel de por medio | 300 a 500 Ω |
Con 220 V y piel seca a 50 kΩ, circulan 220 / 50000 = 4,4 mA: desagradable pero probablemente no letal. Con las manos mojadas a 1 kΩ, circulan 220 mA: potencialmente mortal. La misma tensión, dos desenlaces distintos.
Umbrales de corriente por el cuerpo
Estos valores corresponden a corriente alterna de 50/60 Hz recorriendo el torso, y son aproximados. Los umbrales para DC son entre dos y cuatro veces más altos.
| Corriente | Efecto |
|---|---|
| 0,5 a 1 mA | Umbral de percepción, hormigueo apenas notorio |
| 1 a 5 mA | Sensación clara, molesta |
| 5 a 10 mA | Dolor, contracción muscular involuntaria |
| 10 a 20 mA | Umbral de “no soltar”: los músculos se contraen y la persona no puede liberarse |
| 20 a 50 mA | Contracción del diafragma, dificultad respiratoria |
| 50 a 100 mA | Riesgo alto de fibrilación ventricular |
| Sobre 100 mA | Fibrilación probable, quemaduras internas |
| Sobre 1 A | Paro cardíaco, quemaduras graves |
Nota el rango: 20 mA es lo que consume un LED. La cantidad de corriente que hace brillar un indicador es suficiente para impedir que sueltes un cable.
Las normas internacionales fijan como límite de tensión de contacto segura en condiciones normales unos 50 V para AC (RMS) y 120 V para DC. Bajo esos valores se habla de muy baja tensión de seguridad. Sobre ellos, se asume riesgo.
flowchart TD
A["¿Con qué voy a trabajar?"] --> B{"¿El circuito toca<br/>la red eléctrica?"}
B -->|Sí| C["Desenchufar SIEMPRE antes de tocar<br/>Verificar ausencia de tensión con multímetro<br/>Una sola mano, la otra en el bolsillo<br/>Nunca trabajar solo"]
B -->|No| D{"¿Hay batería<br/>de litio?"}
D -->|Sí| E["Nunca cortocircuitar los terminales<br/>No perforar, aplastar ni doblar<br/>Cargar solo con cargador de la química correcta<br/>No descargar bajo el mínimo de celda<br/>Guardar en bolsa ignífuga"]
D -->|No| F{"¿Corriente<br/>sobre 1 A?"}
F -->|Sí| G["Dimensionar el cable<br/>Fusible o limitador en la fuente<br/>Vigilar temperatura de conectores"]
F -->|No| H["Riesgo eléctrico bajo<br/>Cuidar la ESD y la polaridad"]
C --> I["Trabajar"]
E --> I
G --> I
H --> I
style C fill:#c0392b,color:#fff
style E fill:#e67e22,color:#fff
Reglas concretas de banco de trabajo
Con la red domiciliaria. Desconecta antes de tocar. Verifica ausencia de tensión con el multímetro, no con la memoria de haber desenchufado. Trabaja con una sola mano cuando midas circuitos energizados, para que una eventual corriente no cruce el pecho. No trabajes solo. Usa herramientas con mango aislado. Nunca improvises con cables pelados.
Con baterías de litio. Un cortocircuito en una LiPo produce cientos de amperes y puede iniciar fuego en segundos. No dejes los terminales expuestos. No cargues sin supervisión ni con un cargador de otra química. Una celda hinchada se retira de servicio de inmediato. Descargar una celda Li-ion bajo 2,5 V la daña de forma irreversible y la vuelve peligrosa al recargarse.
Con cortocircuitos en general. Una batería de plomo de auto entrega cientos de amperes en un corto: suficiente para fundir una llave inglesa. Quítate anillos, pulseras y reloj metálico antes de trabajar cerca de baterías grandes.
Con descargas electrostáticas (ESD). Tu cuerpo puede acumular miles de volts frotando los pies en una alfombra. Esa descarga no te hace nada, pero destruye la compuerta de un MOSFET o degrada un microcontrolador silenciosamente. Toca una superficie metálica conectada a tierra antes de manipular componentes, o usa pulsera antiestática. Guarda los chips en bolsas conductivas.
Con el cautín. Punta a 350 °C. Nunca lo dejes fuera del soporte. Suelda en lugar ventilado: los vapores de flux no son inofensivos. Y no soples el estaño fundido, se enfría solo.
El multímetro
El multímetro es el instrumento que convierte suposiciones en datos. Un modelo económico de 20 dólares es suficiente para todo lo que haremos en este curso.
Anatomía
Un multímetro digital tiene:
- Pantalla, con indicación de unidad y polaridad.
- Selector rotatorio, para elegir magnitud y rango.
- Bornes de entrada, típicamente tres o cuatro:
COM: común, siempre va la punta negra.VΩmA: punta roja para voltaje, resistencia, continuidad, diodo y corrientes pequeñas.10Ao20A: punta roja solo para corrientes altas, generalmente sin fusible o con fusible de alta capacidad.
- Puntas de prueba: roja y negra. El color es convención, el instrumento no las distingue salvo por el borne.
Los símbolos del selector:
| Símbolo | Función | Cómo se conecta |
|---|---|---|
| V⎓ o DCV | Voltaje continuo | En paralelo con el punto a medir |
| V∼ o ACV | Voltaje alterno | En paralelo |
| A⎓ o DCA | Corriente continua | En serie, cortando el circuito |
| A∼ o ACA | Corriente alterna | En serie |
| Ω | Resistencia | Componente desconectado y sin alimentación |
| Símbolo de sonido | Continuidad | Circuito sin alimentación |
| Símbolo de diodo | Prueba de diodo, mide Vf | Componente polarizado |
| Hz | Frecuencia | En paralelo |
| Símbolo de condensador | Capacitancia | Condensador descargado y fuera del circuito |
Autorango y rango manual
Los multímetros con autorango eligen la escala solos. Los de rango manual requieren que selecciones, por ejemplo, 200 mV, 2 V, 20 V, 200 V o 600 V. La regla con rango manual: empieza siempre por el rango más alto y baja hasta obtener la resolución deseada. Si mides en un rango menor al valor real, la pantalla marca OL (overload) o un 1 solitario a la izquierda.
Medir voltaje
El voltaje se mide en paralelo, sin interrumpir nada. El multímetro en modo voltaje tiene una impedancia de entrada muy alta (típicamente 10 MΩ), así que casi no altera el circuito.
sequenceDiagram
participant O as Operador
participant M as Multímetro
participant C as Circuito
Note over O,C: MEDIR VOLTAJE (en paralelo)
O->>M: Punta negra al borne COM
O->>M: Punta roja al borne VΩmA
O->>M: Selector en V⎓ (rango alto si es manual)
O->>C: Punta negra en GND o en el punto de referencia
O->>C: Punta roja en el punto a medir
C-->>M: Corriente despreciable (entrada de 10 MΩ)
M-->>O: Lectura en volts
Note over O,M: Si sale negativo, las puntas están invertidas.<br/>El valor absoluto sigue siendo correcto.
Procedimiento para una pila AA:
- Selector en
V⎓, rango de 20 V si es manual. - Punta negra en el negativo de la pila, roja en el positivo.
- Lectura sin carga: una pila nueva marca cerca de 1,6 V, una agotada bajo 1,1 V.
- Repite la medición con una resistencia de 10 Ω conectada en paralelo a la pila durante unos segundos: si el voltaje se hunde más de un 20 %, la pila está agotada aunque en vacío marque bien.
Medir resistencia
La resistencia se mide con el componente fuera del circuito y sin alimentación. El multímetro inyecta una corriente conocida y mide la caída resultante. Si el circuito está energizado, esa medición no tiene sentido y puedes dañar el instrumento.
Además, si el componente sigue soldado en la placa, estás midiendo también todo lo que esté en paralelo con él, así que el número será menor al real. Desuelda al menos una pata.
Un detalle: no sujetes ambas puntas con los dedos al medir resistencias altas, porque tu propio cuerpo entra en paralelo y falsea la lectura.
Medir continuidad
Es una prueba de resistencia con umbral: si la resistencia está bajo unos 30 a 50 Ω, el multímetro pita. Sirve para:
- Verificar que un cable no está cortado.
- Confirmar que dos puntos de una PCB están conectados.
- Detectar un cortocircuito entre alimentación y tierra antes de energizar.
Ese último uso es el más valioso. Antes de conectar la fuente a un circuito nuevo, mide continuidad entre VCC y GND. Si pita, hay un corto y encontrarlo ahora cuesta mucho menos que después.
Medir corriente
Aquí es donde se rompen la mayoría de los multímetros. La corriente se mide en serie: hay que abrir el circuito e insertar el instrumento en el camino, de modo que toda la corriente pase por él.
flowchart TD
A["Quiero medir corriente"] --> B["Apagar el circuito"]
B --> C["Elegir el borne correcto:<br/>mA si esperas menos de 200 mA<br/>10A si esperas más"]
C --> D["Selector en A⎓"]
D --> E["Abrir el circuito en un punto<br/>(desconectar un cable)"]
E --> F["Insertar el multímetro<br/>cerrando el lazo"]
F --> G["Energizar y leer"]
G --> H{"¿Marca 0 y el<br/>circuito no funciona?"}
H -->|Sí| I["Fusible interno quemado:<br/>reemplazar"]
H -->|No| J["Lectura válida"]
J --> K["Apagar, retirar el multímetro,<br/>devolver la punta roja al borne VΩmA"]
style C fill:#e67e22,color:#fff
style K fill:#27ae60,color:#fff
El paso final del diagrama es crítico y se olvida siempre: devolver la punta roja al borne de voltaje. Si dejas la punta en el borne de corriente y luego mides voltaje, estás poniendo una resistencia casi nula en paralelo con la fuente. Es un cortocircuito franco. En el mejor caso funde el fusible interno; en el peor daña el instrumento o la fuente.
En modo corriente el multímetro se comporta como un cable, no como una barrera. Nunca lo conectes en paralelo con nada.
Prueba de diodo
En modo diodo, el multímetro aplica una tensión pequeña y muestra la caída directa. Con la punta roja en el ánodo y la negra en el cátodo, un diodo de silicio marca entre 0,5 y 0,7 V, un Schottky entre 0,2 y 0,4 V, un LED rojo cerca de 1,8 V y suele encenderse débilmente. Invirtiendo las puntas debe marcar OL. Si marca lo mismo en ambos sentidos, el diodo está en corto; si marca OL en ambos, está abierto.
Lo que un multímetro no puede hacer
- No muestra la forma de onda. Para eso se necesita un osciloscopio.
- Mide señales AC asumiendo sinusoides puras salvo que sea true RMS. En un PWM o una señal cuadrada, un multímetro no true-RMS da lecturas erróneas.
- Su ancho de banda en AC es limitado, típicamente algunas centenas de hertz a unos pocos kilohertz.
- Promedia: no captura picos transitorios, como el pico de arranque de un motor.
Verificar el diseño completo antes de armar
Poniendo todo junto, un módulo que revisa un circuito LED simple antes de que exista físicamente:
defmodule Electronica.Verificador do
@moduledoc """
Chequeos de diseño previos al armado: corriente, disipación y márgenes.
"""
alias Electronica.Ohm
@limite_gpio_ma 20.0
def revisar_led(opts) do
v_fuente = Keyword.fetch!(opts, :v_fuente)
v_led = Keyword.fetch!(opts, :v_led)
resistencia = Keyword.fetch!(opts, :resistencia)
watts_resistencia = Keyword.get(opts, :watts_resistencia, 0.25)
alimentado_por_gpio = Keyword.get(opts, :alimentado_por_gpio, true)
v_r = v_fuente - v_led
cond do
v_r <= 0 ->
{:error, :fuente_menor_que_vf}
true ->
i = Ohm.corriente(v_r, resistencia)
p_r = v_r * i
i_ma = i * 1000
avisos =
[]
|> agregar_si(
alimentado_por_gpio and i_ma > @limite_gpio_ma,
"Corriente #{Float.round(i_ma, 1)} mA supera los #{@limite_gpio_ma} mA recomendados por GPIO"
)
|> agregar_si(
p_r > watts_resistencia * 0.5,
"La resistencia disipa #{Float.round(p_r, 3)} W, más del 50 % de su nominal de #{watts_resistencia} W"
)
|> agregar_si(
v_r < 0.5,
"Margen de solo #{Float.round(v_r, 2)} V sobre Vf: el diseño es sensible a variaciones entre unidades"
)
|> agregar_si(i_ma < 1.0, "Corriente de #{Float.round(i_ma, 2)} mA: el LED apenas será visible")
{:ok,
%{
corriente_ma: Float.round(i_ma, 2),
potencia_resistencia_w: Float.round(p_r, 4),
potencia_led_w: Float.round(v_led * i, 4),
margen_v: Float.round(v_r, 3),
avisos: avisos,
veredicto: if(avisos == [], do: :ok, else: :revisar)
}}
end
end
defp agregar_si(lista, true, mensaje), do: lista ++ [mensaje]
defp agregar_si(lista, false, _mensaje), do: lista
end
iex> Electronica.Verificador.revisar_led(
...> v_fuente: 3.3, v_led: 2.0, resistencia: 220.0)
{:ok,
%{
corriente_ma: 5.91,
potencia_resistencia_w: 0.0077,
potencia_led_w: 0.0118,
margen_v: 1.3,
avisos: [],
veredicto: :ok
}}
iex> Electronica.Verificador.revisar_led(
...> v_fuente: 5.0, v_led: 2.0, resistencia: 100.0)
{:ok,
%{
corriente_ma: 30.0,
potencia_resistencia_w: 0.09,
potencia_led_w: 0.06,
margen_v: 3.0,
avisos: ["Corriente 30.0 mA supera los 20.0 mA recomendados por GPIO"],
veredicto: :revisar
}}
Práctica guiada
Necesitas: un multímetro, una pila AA, una resistencia de 330 Ω, una de 10 kΩ, un LED y un par de cables.
Ejercicio A: caracterizar una pila.
- Mide el voltaje de la pila sin nada conectado. Anota.
- Conecta la resistencia de 10 kΩ entre los terminales y vuelve a medir el voltaje. Anota.
- Mide la corriente que circula por esa resistencia (multímetro en serie, modo mA).
- Calcula
R = V / Icon tus mediciones y compara con el valor nominal de la resistencia. - Repite con la resistencia de 330 Ω. El voltaje debería caer un poco más, porque la corriente es mayor y la resistencia interna de la pila se hace notar.
Ejercicio B: leer una resistencia de tres maneras.
- Lee el código de colores y anota el valor teórico y la tolerancia.
- Mide con el multímetro en modo Ω.
- Arma un circuito con la pila y esa resistencia, mide voltaje y corriente, y despeja
R. - Compara los tres números. La diferencia entre el segundo y el tercero se debe principalmente a la precisión del multímetro en modo corriente.
Ejercicio C: caída en el LED.
- Arma pila + resistencia de 330 Ω + LED en serie.
- Mide el voltaje entre los extremos del LED. Ese es su
Vfreal. - Mide el voltaje entre los extremos de la resistencia.
- Suma ambos. Debería dar el voltaje de la pila bajo carga. Esa es la ley de tensiones de Kirchhoff, que formalizaremos en el próximo capítulo.
Errores comunes
| Error | Causa | Solución |
|---|---|---|
El multímetro marca OL midiendo 5 V | Rango manual seleccionado demasiado bajo | Subir de rango o usar un modelo con autorango |
| Se quemó el fusible del multímetro | Se midió voltaje con la punta roja aún en el borne de corriente | Devolver siempre la punta al borne VΩmA tras medir corriente; reemplazar el fusible |
| La resistencia medida en la placa no coincide con el código de colores | Hay componentes en paralelo aportando caminos alternativos | Desoldar al menos una pata antes de medir |
| Medir resistencia da un valor errático | El circuito sigue energizado, o los dedos tocan ambas puntas | Cortar la alimentación y sujetar las puntas por el aislante |
| El LED no enciende y todo parece correcto | Polaridad invertida: el LED conduce en un solo sentido | El ánodo (pata larga) va al positivo, el cátodo (pata corta, lado plano) al negativo |
| El LED enciende un instante y muere | Falta la resistencia limitadora en serie | Calcular R = (V_fuente − Vf) / I_objetivo y usar el valor comercial superior |
| El microcontrolador se reinicia al mover un servo | Brownout por caída de tensión durante el pico de corriente | Alimentar los actuadores con una fuente separada, unir los GND, agregar un condensador electrolítico grande cerca del motor |
| Una batería marca bien en vacío pero el robot no arranca | Resistencia interna alta por degradación | Medir el voltaje bajo carga real; reemplazar la celda si cae más del 20 % |
| La lectura de un PWM en el multímetro no calza con lo calculado | El multímetro promedia o no es true RMS | Usar un osciloscopio, o comparar contra el promedio V × duty en lugar del RMS |
| Se destruyó un chip sin causa aparente | Descarga electrostática al manipularlo | Descargarse tocando metal aterrizado, usar pulsera antiestática, guardar en bolsa conductiva |
| Dos módulos se comunican mal aunque el cableado está bien | No comparten GND: no hay referencia común de voltaje | Unir los GND de ambas fuentes con un cable |
| El cable se calienta al alimentar un motor | Sección insuficiente para la corriente: P = I² × R en el cable | Usar cable más grueso o acortar el tramo |
| El regulador lineal quema al alimentar desde 12 V | Disipa (12 − 5) × I en calor, sin disipador | Usar un conversor buck, o agregar disipador dimensionado |
| Al invertir las puntas el voltaje sale negativo | Punta roja en el punto de menor potencial | No es un error: el valor absoluto es correcto, el signo indica polaridad |
Ejercicios propuestos
-
Ley de Ohm a mano. Un ventilador de 12 V consume 250 mA. Calcula su resistencia equivalente y la potencia que disipa. Verifica el resultado con
Electronica.Ohm.resolver/1. -
Diseño de indicador. Tienes una fuente de 3,3 V y un LED verde con
Vf = 2,1 V. Calcula la resistencia para 8 mA, elige el valor comercial y verifica el diseño conElectronica.Verificador.revisar_led/1. -
Decodificador inverso. Extiende
Electronica.CodigoColorescon una funcióncodificar/2que reciba un valor en ohms y una tolerancia y devuelva la lista de bandas de 4 colores correspondiente al valor E12 más cercano. -
Presupuesto de energía. Un nodo IoT tiene un ESP32 (160 mA activo, 20 µA dormido), un sensor BME280 (0,7 mA durante 100 ms) y un LED de estado que parpadea 50 ms por ciclo a 5 mA. Despierta cada 5 minutos y está activo 4 segundos. Calcula la autonomía con una batería de 3 000 mAh y determina cuánto ganarías eliminando el LED.
-
Comparar químicas. Usando
Electronica.Bateria, modela un pack de 4 celdas NiMH (1,2 V, 2 000 mAh, 30 mΩ) y uno de 2 celdas Li-ion (3,7 V, 2 600 mAh, 50 mΩ). Compara voltaje de pack, energía almacenada y voltaje bajo una carga de 2 A. Explica cuál elegirías para un robot con motores de 6 V y por qué. -
RMS vs promedio. Un calefactor resistivo de 10 Ω se controla con PWM desde 12 V. Calcula la potencia disipada con duty cycles de 25 %, 50 % y 75 % usando
rms_pwm/2yP = V²/R. Compara con lo que obtendrías usando erróneamente el valor promedio, y cuantifica el error porcentual. -
Diagnóstico. Un robot con un pack de 7,4 V mide 7,3 V en reposo, pero al arrancar los dos motores el microcontrolador se reinicia y el multímetro alcanza a marcar 5,8 V. Sabiendo que cada motor pide 1,5 A en el arranque, estima la resistencia interna del pack y propone dos soluciones distintas.
-
Banco de mediciones. Escribe un módulo
Electronica.Bancoque reciba una lista de mediciones y un valor esperado, y devuelva mínimo, máximo, promedio, desviación estándar y error porcentual respecto de lo esperado. Pruébalo con estas cinco lecturas de una resistencia nominal de 330 Ω: 327,4; 328,1; 326,9; 329,0; 327,7. Determina si el promedio cae dentro del 5 % de tolerancia. -
Seguridad aplicada. Calcula la corriente que atravesaría a una persona en tres escenarios: 220 V con piel seca (50 kΩ), 220 V con manos húmedas (1,5 kΩ) y 12 V con manos húmedas. Clasifica cada resultado según la tabla de umbrales y explica por qué el tercer caso es inocuo.
-
Caída en el cableado. Un motor de 5 A se alimenta a través de 3 metros de cable de cobre de 1 mm² (ida y vuelta, o sea 6 metros de conductor). Con
ρ = 1,68 × 10⁻⁸ Ω·m, calcula la resistencia del cable, la caída de tensión y la potencia perdida en calor. Determina qué sección haría falta para que la caída no supere 0,2 V.
Lo que viene
Con esto ya tienes el vocabulario y las herramientas para razonar sobre cualquier punto de un circuito: sabes qué es un volt, qué es un ampere, cómo se relacionan a través de una resistencia, cuánta potencia se disipa, en qué se diferencia una señal continua de una alterna y cómo confirmar todo eso con un multímetro sin dañarte ni dañar el instrumento.
Lo que todavía no sabes es qué pasa cuando conectas más de un componente. Un LED con su resistencia es trivial; un divisor de tensión leyendo un sensor, un filtro RC eliminando ruido o una red de pull-ups en un bus I2C requieren analizar cómo se combinan las magnitudes en serie y en paralelo. Eso es exactamente lo que cubre el capítulo 3: las leyes de Kirchhoff, resistencias en serie y en paralelo, divisores de tensión y de corriente, condensadores, constantes de tiempo y la lectura de esquemáticos. Si quieres revisar el mapa completo del curso, está en el índice.