🚚 Envío GRATIS en compras sobre $30.000 | Retiro en Curauma, Valparaíso | 📞 +56 9 65214463
ESP32 22 de March de 2026 · 2 min de lectura

FreeRTOS en ESP32: Programación Multitarea Real

El ESP32 corre FreeRTOS de forma nativa. Aprende a crear tareas paralelas en los dos núcleos del ESP32 para proyectos IoT de alta complejidad sin perder datos.

¿Por qué FreeRTOS en ESP32?

El ESP32 tiene dos núcleos Xtensa LX6, pero si solo usas Arduino IDE con el loop() estándar, solo aprovechas uno. FreeRTOS (Free Real-Time Operating System) viene integrado en el framework del ESP32 para Arduino y permite crear múltiples tareas que corren en paralelo, cada una con su propia prioridad y stack de memoria.

Conceptos básicos de FreeRTOS

  • Task: Una función que corre "independientemente" de otras tareas
  • Scheduler: El sistema que decide qué tarea corre en cada instante
  • Priority: Número de 0 a 25; mayor número = mayor prioridad
  • Stack: Memoria asignada a cada tarea (en bytes)
  • Core: En ESP32 puedes fijar cada tarea al Core 0 o Core 1

Crear tareas en ESP32

xTaskCreatePinnedToCore(funcion, "nombre", 10000, NULL, 1, &handle, 0) crea una tarea en el Core 0. El Core 1 es el que usa el loop() de Arduino normalmente. Es recomendable usar el Core 0 para comunicaciones (WiFi/BT) y el Core 1 para control de hardware.

Comunicación entre tareas

FreeRTOS ofrece Queues, Semaphores y Mutex para comunicar tareas sin condiciones de carrera. Por ejemplo: la tarea del Core 0 lee el sensor DHT22 cada segundo y pone el valor en una Queue. La tarea del Core 1 lee de esa Queue y actualiza la pantalla OLED. Así ambas tareas son independientes y no se bloquean mutuamente. Este patrón es esencial en proyectos IoT robustos con ESP32 de Especificar.cl.

Compartir: WhatsApp
Escríbenos por WhatsApp