El ESP32 trae FreeRTOS de fábrica. En vez de amontonar todo en loop(), creamos tareas independientes para el sensor, la red y el display, coordinadas con colas.
Repasamos xTaskCreatePinnedToCore y cómo repartir carga entre los dos núcleos.
Ejemplo de LaTeX en línea: el ciclo de trabajo del PWM es \( D = t_{on}/T \). Y en bloque, la frecuencia del timer:
$$ f = \frac{f_{clk}}{(\mathrm{PSC}+1)\,(\mathrm{ARR}+1)} $$