01 · Punto de partida
Un LED, un pin y un número del 0 al 255
Hasta ahora una señal se describió con tres números: cuánto se mueve (Tema 3), qué tan rápido (Tema 4) y con qué forma. Este tema abre la tercera pregunta: la forma. Vamos a ver que unas pocas formas, repetidas, alcanzan para describir casi todo, y que una de ellas (la cuadrada) tiene un parámetro propio que permite regular potencia: el duty.
Una escena típica. En tu placa de desarrollo escribís analogWrite(pin, 64) y el LED conectado se ve tenue. Cambiás a 128 y brilla a la mitad; con 255 brilla a pleno. Parece que el pin entrega «un voltaje intermedio». Pero medís con el osciloscopio y no hay tal cosa: el pin solo salta entre 0 V y 5 V, muy rápido, y lo único que cambia con el número es cuánto tiempo pasa en 5 V.
El brillo no lo da la altura de la señal sino el porcentaje del tiempo en alto. Ese porcentaje se llama duty.
Una señal es periódica si se repite idéntica cada período T: x(t) = x(t + T). Alcanza con conocer un ciclo para conocerla toda, igual que una función que se llama con el mismo resultado cada T segundos. Las cuatro formas periódicas básicas cubren las señales del curso:
- ¿Qué distingue a cada forma y dónde vive cada una?
- ¿Qué es el duty y qué promedio y qué eficaz produce?
- ¿Cómo se convierte un PWM en una tensión realmente continua?
- ¿Qué señales no son periódicas, y qué se hace con ellas?
02 · Formas
Las cuatro formas, con su DNI
Senoide
La «pura»: un solo tono, una sola frecuencia. Curva suave y simétrica. Es la señal de la red, del audio puro y de los osciladores.
Cuadrada
Salta entre dos niveles y se queda quieta en cada uno. Es la señal de los relojes, del PWM y de todo lo digital. Su parámetro propio es el duty.
Triangular y diente de sierra
Rampas lineales. La triangular sube y baja igual (barridos, pruebas); el diente de sierra sube lento y cae de golpe (bases de tiempo, sintetizadores).
| Forma | Seña | Vrms / Vp | Frecuencias que contiene | Vive en |
|---|---|---|---|---|
| Senoide | Curva suave simétrica | 0,707 | Solo la fundamental | Red, audio puro, osciladores |
| Cuadrada | Salta entre dos niveles | 1,000 | f, 3f, 5f… (armónicos impares, caen como 1/n) | Relojes, PWM, digital |
| Triangular | Sube y baja lineal | 0,577 | f, 3f, 5f… (caen como 1/n², mucho más rápido) | Barridos, comparadores de PWM, pruebas |
| Diente de sierra | Sube lento, cae de golpe | 0,577 | f, 2f, 3f… (todos, caen como 1/n) | Bases de tiempo, sintetizadores |
Del cuadro salen dos ideas útiles. Primera: cuanto más abrupto el borde, más armónicos. La triangular, de pendientes suaves, tiene muy pocos y se parece a una senoide; la cuadrada, con saltos instantáneos, tiene muchísimos y pide un ancho de banda grande (Tema 4). Segunda: el diente de sierra es una triangular cuyo flanco de bajada se acortó hasta ser instantáneo. Son la misma familia: una rampa con distinto reparto del tiempo entre subida y bajada.
Rampa simétrica
Triangular (50 %)
Sube la mitad del período y baja la otra mitad, con la misma pendiente. Es simétrica y limpia de armónicos pares.
Rampa asimétrica
Diente de sierra (≈ 100 %)
Sube durante casi todo el período y baja en un instante. Al romper la simetría aparecen los armónicos pares y suena más «áspera».
03 · Duty
Duty: el porcentaje que manda
El ciclo de trabajo o duty cycle (D) de una cuadrada es la fracción del período que pasa en nivel alto:
Un duty de 50 % es la cuadrada «simétrica»: la mitad arriba, la mitad abajo. Un duty de 25 % es un pulso angosto que se repite; uno de 90 %, un nivel casi siempre alto con una muesca. La frecuencia no cambia: el período total es el mismo, solo se reparte distinto entre alto y bajo.
El promedio
El tiempo que la señal pasa arriba pesa en el promedio proporcionalmente. Con nivel bajo en Vbajo y alto en Valto:
El eficaz
Para la potencia importa el eficaz (Tema 3). Como la señal vale Valto durante la fracción D y cero el resto, el promedio de los cuadrados es D × Valto², y el eficaz:
| Duty | Promedio (D·5 V) | Eficaz (5 V·√D) | LED / motor |
|---|---|---|---|
| 10 % | 0,5 V | 1,58 V | Apenas se enciende / muy lento |
| 25 % | 1,25 V | 2,50 V | Tenue / despacio |
| 50 % | 2,5 V | 3,54 V | Brillo medio / velocidad media |
| 75 % | 3,75 V | 4,33 V | Brillante / rápido |
| 90 % | 4,5 V | 4,74 V | Casi pleno |
Notá que el promedio crece linealmente con el duty (el doble de duty, el doble de promedio), pero el eficaz crece con la raíz: al 25 % el promedio es 1,25 V y el eficaz 2,5 V, el doble. Los dos se necesitan: el promedio dice qué ve una carga lenta (un LED con filtro, un motor, el ojo); el eficaz dice cuánto calor se disipa en un resistor.
04 · PWM
PWM: de pulsos a tensión
El PWM (pulse width modulation, modulación por ancho de pulso) es el uso más difundido del duty: una cuadrada de frecuencia fija cuyo duty se cambia a voluntad para regular cuánta energía recibe una carga. Es el «volante» de la electrónica digital para manejar cosas analógicas: la intensidad de un LED, la velocidad de un motor, la temperatura de una resistencia calefactora, el volumen de un tono.
En una placa de desarrollo común, el número que pasás a analogWrite() va de 0 a 255 (8 bits), y se convierte en duty así:
Por eso analogWrite(128) da un duty de 50,2 % y un promedio de 2,51 V: no hay un 2,5 V exacto en 256 pasos. Y por eso el pin sigue siendo digital: en cada instante vale 0 o 5 V.
El promedio es una promesa: hay que cobrarla
Conectar una carga a un PWM no le entrega 2,5 V continuos. Le entrega 5 V durante la mitad del tiempo y 0 V durante la otra. Que el resultado se comporte como 2,5 V depende de qué hace la carga con esa conmutación:
- Carga con inercia
- Un motor tarda milisegundos en acelerar o frenar, y a ritmos de cientos de hertz promedia solo. Un LED a más de ~100 Hz no se ve parpadear (el ojo promedia). Estas cargas «hacen el filtrado».
- Carga sin inercia
- Un circuito electrónico que necesita una tensión estable, o un voltímetro que mide el valor instantáneo, ve los 0 y 5 V crudos. Para ellos hace falta un filtro.
- Filtro RC pasa-bajos
- Un resistor y un capacitor que suavizan los pulsos hasta dejar casi solo el promedio. Queda un pequeño rizado que depende de la frecuencia del PWM y del producto R·C (Tema 23).
Para un filtro RC, con la constante R·C mucho mayor que el período, el rizado pico a pico que queda en la salida es, aproximadamente:
Ejemplo: PWM de 490 Hz, 0–5 V, duty 50 %, con R·C = 10 ms (por ejemplo 1 kΩ y 10 µF): rizado ≈ 5 × 0,25 / (490 × 0,01) ≈ 0,255 V. Con R·C = 100 ms baja diez veces, a 25 mV. La fórmula dice dos cosas útiles: subir la frecuencia del PWM o agrandar el filtro reduce el rizado, y el rizado es máximo al 50 % de duty.
| Carga | Frecuencia razonable | Por qué |
|---|---|---|
| LED (brillo) | ≥ 100 Hz (ideal 500 Hz–1 kHz) | Por debajo, el ojo ve parpadeo (y las cámaras, antes) |
| Motor de continua | 1 a 20 kHz | Por debajo se oye un zumbido; por arriba aumentan las pérdidas de conmutación |
| Fuente de tensión filtrada con RC | Lo más alto posible | El rizado baja con la frecuencia; permite filtros más chicos |
| Servo de modelismo | ≈ 50 Hz (el ancho del pulso es el dato) | Es una señal de control, no de potencia: el ancho de pulso codifica la posición |
05 · No periódicas
Lo que no se repite: voz, ruido y pulsos sueltos
No todo es periódico, y conviene reconocerlo para no aplicar a una señal herramientas que solo valen para las que se repiten.
- Voz y audio real
- Cuasi-periódico por tramos: una vocal sostenida se repite casi igual unos cientos de ciclos, pero cambia con cada sílaba. Se analiza por ventanas cortas, como si fuera periódico en cada una.
- Ruido
- Sin período ni forma predecible: térmico, interferencia de la red, conmutación digital. No se puede anticipar muestra a muestra; se lo describe con estadística (rango, desviación). Es el tema 27.
- Pulso único o escalón
- Un flanco de 0 a 5 V que se queda ahí. Es el caso límite de un duty que pasa de 0 a 100 % una sola vez. La respuesta de un circuito a un escalón (una curva RC) es la base de los filtros del Tema 23.
- Rebotes
- El tren de pulsos irregulares de unos milisegundos cuando se acciona un pulsador mecánico. No es periódico ni predecible; se filtra o se ignora por software (debounce).
Un criterio simple para decidir: ¿puedo predecir el valor dentro de un ciclo conociendo el ciclo anterior? Si sí, es periódica y alcanza con describir un ciclo. Si no, hay que describirla por su rango, su ritmo medio o su contenido estadístico.
| Señal | ¿Periódica? | Cómo se describe |
|---|---|---|
| Red eléctrica (50 Hz) | Sí (casi perfecta) | Senoide: amplitud, frecuencia, fase |
| Reloj de un microcontrolador | Sí | Cuadrada: frecuencia, duty ≈ 50 % |
| Nota de un instrumento sostenida | Casi | Frecuencia fundamental más armónicos |
| Hablar | No (a tramos) | Ventanas cortas, banda de 300 Hz a 3 kHz |
| Rebote de un pulsador | No | Duración y cantidad de repiques |
06 · Simuladores
Dos experimentos: el duty en vivo y el PWM filtrado
El primero te deja probar las cuatro formas con su duty (o simetría) y lee promedio, eficaz y potencia. El segundo conecta un PWM a un filtro RC y muestra cuánto cuesta «cobrar» el promedio.
Forma, duty y promedio
promedio = D × Valto · eficaz = Valto × √D
Recorrido guiado (6 minutos)
- 1Pestaña ①, «PWM 25 %», 5 V.
Promedio 1,25 V, eficaz 2,5 V y 62,5 mW sobre 100 Ω. El brillo relativo es 25 %. Fijate que la potencia (62,5 mW) es el 25 % de la máxima (250 mW), igual que el brillo: sigue al duty, no al cuadrado del promedio.
- 2Subí el duty a 50 % y a 90 %.
El promedio sube en línea recta (2,5 y 4,5 V). El eficaz sube más rápido al principio (3,54 y 4,74 V). Son dos medidas distintas de la misma señal.
- 3Elegí «Triangular» y luego «Diente de sierra».
Es la misma forma «rampa» con otra simetría. En ambas el promedio es la mitad del alto (2,5 V) y el eficaz queda en 2,89 V: el reparto entre subida y bajada no cambia el promedio ni el eficaz de una rampa lineal.
- 4Elegí «Senoide» (0 a 5 V).
Promedio 2,5 V y eficaz 3,06 V. La senoide en este rango es la de ±2,5 V montada sobre un offset de 2,5 V: eficaz = √(2,5² + 1,77²) (Tema 3).
- 5Pestaña ②: 50 %, 490 Hz, R·C = 10 ms.
La salida (turquesa) es una onda casi plana con rizado de ≈ 255 mV alrededor de 2,5 V. Es una tensión «casi continua». Bajá R·C a 1 ms: el filtro casi no filtra y la salida sigue al PWM.
- 6Con R·C = 10 ms, subí la frecuencia del PWM a 5 kHz.
El rizado baja diez veces, a unos 25 mV. Después probá duty 95 % y 5 %: el rizado se achica porque la salida casi no oscila (queda casi siempre arriba o abajo). El peor caso es el 50 %.
Preguntas para pensar
- ¿Por qué en una senoide el duty no existe como parámetro?
- ¿Qué duty da un promedio de 2,5 V sobre 5 V? ¿Y 4 V? ¿Y qué eficaz tiene cada uno?
- ¿Por qué el rizado de un PWM filtrado es máximo al 50 % de duty?
Ver respuestas sugeridas
- Porque el duty reparte el tiempo entre dos niveles que se mantienen, y la senoide no se «queda» en ningún nivel: está siempre cambiando. En su lugar tiene fase y amplitud.
- 50 % y 80 % (D × 5 V). Los eficaces: 5 × √0,5 = 3,54 V y 5 × √0,8 = 4,47 V. Mismo promedio de tester, distinto calor.
- Porque el rizado depende de D·(1 − D), que es máximo en D = 0,5. Cerca de 0 o de 100 %, el pulso es muy corto o la muesca es muy corta y el capacitor casi no se mueve.
07 · En código
Generar formas, traducir analogWrite y simular un RC
Tres bloques que cubren el tema: un generador de las formas con sus estadísticas, el pasaje de un número de 0 a 255 al promedio que produce, y una simulación numérica del filtro RC que verifica la fórmula del rizado.
Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python». La primera vez tarda unos segundos en cargar.
Paso 1: generar las formas y medirlas
Una sola función genera senoide, cuadrada con duty y rampa (triangular o diente según la simetría). Después calculamos promedio y eficaz de cada una:
import math
def generar(forma="senoide", v_alto=5.0, v_bajo=0.0, duty=0.5, n=1000):
# n muestras de un período; la señal va de v_bajo a v_alto
vals = []
for k in range(n):
f = k / n # fase de 0 a 1
if forma == "senoide":
s = (1 + math.sin(2 * math.pi * f)) / 2
elif forma == "cuadrada":
s = 1.0 if f < duty else 0.0
else: # rampa: sube hasta 'duty' y baja; duty=0.5 es triangular, duty=1 es diente de sierra
s = f / duty if f < duty else (1 - f) / (1 - duty)
vals.append(v_bajo + s * (v_alto - v_bajo))
return vals
def stats(nombre, vals):
prom = sum(vals) / len(vals)
rms = math.sqrt(sum(v * v for v in vals) / len(vals))
print(f"{nombre:22s} promedio={prom:.2f} V eficaz={rms:.2f} V min={min(vals):.2f} max={max(vals):.2f}")
return prom, rms
stats("cuadrada 25 %", generar("cuadrada", duty=0.25))
stats("cuadrada 50 %", generar("cuadrada", duty=0.5))
stats("senoide 0-5 V", generar("senoide"))
stats("triangular 0-5 V", generar("rampa", duty=0.5))
stats("diente de sierra 0-5 V", generar("rampa", duty=0.999))
La cuadrada al 25 % da promedio 1,25 V y eficaz 2,50 V. ¿Qué duty necesitás para que el eficaz sea la mitad de 5 V? (Pista: 5·√D = 2,5.)
Paso 2: del número 0–255 al promedio
La conversión de analogWrite() y su inversa: dado el promedio que querés, qué número usar, con el error que deja la resolución de 8 bits:
def analog_write(valor, v_alto=5.0):
duty = valor / 255
print(f"analogWrite({valor:3d}) -> duty {duty * 100:5.1f} % -> promedio {duty * v_alto:.2f} V")
return duty
def valor_para(prom_objetivo, v_alto=5.0):
valor = round(prom_objetivo / v_alto * 255)
real = valor / 255 * v_alto
print(f"Quiero {prom_objetivo} V -> analogWrite({valor}) -> {real:.3f} V reales "
f"(error {abs(real - prom_objetivo) * 1000:.1f} mV)")
return valor
for v in (0, 64, 128, 191, 255):
analog_write(v)
for objetivo in (0.5, 1.25, 2.5, 3.3, 4.5):
valor_para(objetivo)
El error máximo es medio escalón: 5 V / 255 / 2 ≈ 9,8 mV. ¿Cuál sería con un PWM de 10 bits (1023 pasos)?
Paso 3: PWM contra filtro RC
Simulamos la carga y descarga del capacitor paso a paso y medimos el promedio y el rizado de la salida. Los comparamos con la fórmula de la sección 04:
def pwm_rc(duty, f_pwm, rc_s, v_alto=5.0, ciclos=60, pasos=200):
# Simula un filtro RC con paso de Euler y devuelve (promedio, rizado pp) de los últimos ciclos
dt = 1 / f_pwm / pasos
v = 0.0
registro = []
for c in range(ciclos):
for k in range(pasos):
entrada = v_alto if k / pasos < duty else 0.0
v += (entrada - v) * dt / rc_s
if c >= ciclos - 5:
registro.append(v)
return sum(registro) / len(registro), max(registro) - min(registro)
def rizado_formula(duty, f_pwm, rc_s, v_alto=5.0):
return v_alto * duty * (1 - duty) / (f_pwm * rc_s)
for f_pwm, rc in ((490, 0.001), (490, 0.01), (490, 0.1), (5000, 0.01)):
prom, riz = pwm_rc(0.5, f_pwm, rc, ciclos=int(max(60, 8 * rc * f_pwm)))
print(f"PWM {f_pwm:>5} Hz, RC={rc * 1000:6.1f} ms: promedio={prom:.3f} V "
f"rizado={riz * 1000:7.1f} mV (fórmula {rizado_formula(0.5, f_pwm, rc) * 1000:7.1f} mV)")
La fórmula coincide cuando R·C es grande frente al período (filas 2, 3 y 4) y se pasa cuando no lo es (fila 1, RC = 1 ms): ahí el filtro casi no filtra. ¿Qué R·C necesitás a 490 Hz para bajar el rizado a 10 mV?
08 · Analogía de programador
Loops, cuotas y eventos
| En software | En señales periódicas |
|---|---|
Un while(true) con un sleep(T) fijo | Una señal periódica de período T |
| La fracción del tiempo que un hilo pasa ocupado (utilización) | El duty de una cuadrada |
| Un rate limiter que permite el 25 % de la capacidad | Un PWM al 25 %: el promedio respeta la cuota |
| Un promedio móvil de una métrica | Un filtro RC aplicado a un PWM |
Un periodo de muestreo (setInterval) frente a su jitter | La frecuencia del PWM frente al rizado |
| Eventos asíncronos que llegan cuando quieren | Señales no periódicas: voz, ruido, rebotes |
| Cuantizar un porcentaje a 8 bits | analogWrite(0..255): duty con 256 pasos |
La más reveladora es la segunda: el duty es literalmente un factor de utilización. Un pin al 25 % está «ocupado» un cuarto del tiempo, como una CPU al 25 % de carga. Y la lección es la misma: el promedio dice cuánto trabajo hay, pero no si el trabajo llega en ráfagas cortas o repartido; para eso hace falta la frecuencia y el filtro.
09 · Comprensión
Confusiones frecuentes
«Duty es lo mismo que frecuencia»
El duty es una fracción del período (25 %) y la frecuencia es cuántas veces se repite por segundo (1 kHz). Son independientes y se combinan: «PWM de 1 kHz al 25 %» fija las dos cosas.
«El promedio y el eficaz son lo mismo»
En una cuadrada de 0 a 5 V al 25 %: promedio 1,25 V, eficaz 2,5 V. El promedio gobierna el brillo y la velocidad; el eficaz, el calor en resistores. Calcular potencia con el promedio subestima el calor.
«El PWM entrega una tensión analógica»
El pin sigue siendo digital: en cada instante vale 0 o 5 V. Lo analógico es el promedio, y solo si la carga o un filtro lo promedian. Medido con un osciloscopio, un PWM al 50 % es una cuadrada, no 2,5 V.
«Una triangular y una senoide dan igual»
Promedian lo mismo (si son simétricas) pero el eficaz difiere (0,577 contra 0,707 del pico) y también su contenido de armónicos. En filtros y en audio la diferencia se nota.
«Periódica significa predecible muestra a muestra»
Conocer forma y frecuencia no dice en qué punto del ciclo estás: falta la fase. Dos senoides idénticas desfasadas son la misma señal, corrida en el tiempo (Tema 4).
«A más frecuencia de PWM, siempre mejor»
Reduce el rizado, pero aumenta las pérdidas de conmutación, la interferencia y, en un micro, reduce los bits de resolución disponibles. Se elige la más baja que haga invisible el efecto.
10 · Práctica guiada
Ejercicios de formas
Ejercicio 1: promedios y eficaces a mano
Una cuadrada de 0 a 12 V con duty de 10 %, 50 % y 90 %. Calculá el promedio y el eficaz de cada una, y verificá con generar("cuadrada", v_alto=12, duty=...) y stats().
Ver solución razonada
Promedios D × 12: 1,2 / 6 / 10,8 V. Eficaces 12 × √D: 3,79 / 8,49 / 11,38 V. El promedio es lineal con D; el eficaz no.
Ejercicio 2: 3,3 V desde un pin de 5 V
Querés un promedio de 3,3 V con un PWM de 0 a 5 V. ¿Qué duty necesitás? ¿Qué número le pasás a analogWrite()? ¿Qué error queda?
Ver solución razonada
D = 3,3/5 = 66 %. Número = 0,66 × 255 = 168,3, se redondea a 168, que da 3,294 V reales: error de 6 mV. Con valor_para(3.3) lo verificás. Recordá que el 3,3 V solo existe tras un filtro.
Ejercicio 3: potencia en un resistor
Un PWM de 0 a 12 V al 25 % alimenta un resistor de 100 Ω. ¿Qué potencia promedio disipa? ¿Cuánto saldría si usaras el promedio de tensión en lugar del eficaz?
Ver solución razonada
Correcto: P = D × V²/R = 0,25 × 144/100 = 0,36 W (eficaz = 12 × 0,5 = 6 V, 36/100 = 0,36 W). Con el promedio (3 V): 9/100 = 0,09 W, un cuarto del valor real. El error es un factor 1/D.
Ejercicio 4: diseñar el filtro
Un PWM de 490 Hz, 0–5 V, duty 50 %, pasa por un filtro de R = 2,2 kΩ y C = 10 µF. Calculá la constante R·C, la frecuencia de corte y el rizado aproximado.
Ver solución razonada
R·C = 2200 × 10·10⁻⁶ = 22 ms. Corte: 1/(2π × 0,022) ≈ 7,2 Hz (68 veces menor que el PWM). Rizado ≈ 5 × 0,25 / (490 × 0,022) ≈ 116 mV pico a pico, sobre un promedio de 2,5 V. Para bajar a 10 mV haría falta R·C ≈ 255 ms.
Ejercicio 5: reconocer la forma
En el osciloscopio ves una señal que sube linealmente de 0 a 5 V durante 8 ms y cae a 0 V de golpe, y se repite. ¿Qué forma es? ¿Frecuencia, promedio y eficaz?
Ver solución razonada
Es un diente de sierra de 5 Vpp. T = 8 ms, f = 125 Hz. Promedio = 2,5 V y eficaz = 5/√3 ≈ 2,89 V. Se verifica con stats(generar("rampa", duty=0.999)).
11 · Síntesis
Ideas para recordar
- Periódica: x(t) = x(t + T). Cuatro formas básicas: senoide, cuadrada, triangular y diente de sierra.
- Cuanto más abrupto el borde, más armónicos: la cuadrada ocupa mucha banda; la triangular, poca.
- Duty D = talto/T. Con bajo en 0: promedio = D·Valto, eficaz = Valto·√D.
- Promedio ≠ eficaz: el primero regula brillo y velocidad; el segundo, calor y potencia.
- PWM: el pin sigue siendo digital. El promedio solo aparece si la carga tiene inercia o hay un filtro.
- Rizado de un PWM filtrado con RC ≈ V·D·(1 − D)/(f·R·C): baja con la frecuencia y con el filtro, y es máximo al 50 %.
analogWrite(n)da duty = n/255; la resolución es de 8 bits.- Las señales no periódicas (voz, ruido, rebotes) se describen por ventanas o por estadística.
¿Listo para el Tema 6?
Podés avanzar si sos capaz de responder esto sin mirar:
- Nombrar las cuatro formas y un lugar donde vive cada una.
- Calcular el promedio y el eficaz de una cuadrada de 0 a 5 V al 30 %.
- Decir por qué un PWM no es una tensión analógica por sí mismo.
- Convertir un valor de
analogWrite()en duty y en promedio. - Explicar qué hace un filtro RC con un PWM y de qué depende el rizado.
- Dar un ejemplo de señal no periódica y cómo se la describe.
Formas dominadas. Ahora, los dos descriptores de amplitud juntos y sin sorpresas: en el próximo tema, valor medio y eficaz.