Dimmer LED Arduino al 75%: analogWrite(9, 191) → D=75%, f=490Hz, Vavg=3.75V. Con filtro RC (R=10kΩ, C=100nF, fc=159Hz) l'uscita diventa ~3.75V DC.
Servo a 90°: f=50Hz, ton=1.5ms → D=7.5% → analogWrite(pin, 19). Meglio: usare libreria Servo.write(90).
Sì, modificando i registri dei timer. Cambiare Timer0 altera millis() e delay(). Usa libreria TimerOne per frequenze custom su Timer1.
ESP32 LEDC ha risoluzione 1-16 bit e frequenza fino a 40MHz su 16 canali indipendenti. Molto più flessibile di Arduino (8 bit fissi).
Un filtro RC passa-basso con fc ≪ f_PWM converte il PWM in tensione media. Regola pratica: fc = f_PWM / 100. Per 490 Hz: fc ≈ 5 Hz → R=10kΩ, C=3.3µF. Il ripple residuo è Vpp ≈ Vcc × D × (1-D) / (f × R × C). Per ripple <1% aumentare RC o usare un DAC hardware.
- Arduino Reference — analogWrite() — 8 bit, 490Hz su pin 3/9/10/11, 980Hz su 5/6.
- Intel Fan Interface Spec 1.3 — Fan 4-wire: 25kHz PWM standard.