Por qué delay() lo bloquea todo
Compruebe cómo una pausa impide que la placa reaccione.
Por qué delay() lo bloquea todo es una lección gratuita de Arduino & IoT Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Arduino & IoT Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Arduino & IoT Academy incluye 4 lecciones en total.
La pausa sencilla
La función delay pausa el sketch durante un número determinado de milisegundos. Es la forma más sencilla de ralentizar las cosas y hacer visible un parpadeo.
delay(1000);Qué significa 1000
delay(1000) espera un segundo completo, porque el valor está expresado en milisegundos. Por tanto, delay(500) equivale a medio segundo y delay(2000), a dos segundos.
Congela la placa
El inconveniente es que delay lo congela todo. Mientras espera, la placa no hace absolutamente nada más, como una persona que contiene la respiración. 😮
Pulsaciones de botón perdidas
Durante un delay, la placa no puede detectar que se ha pulsado un botón. Si lo pulsa durante la pausa, la pulsación simplemente se ignora, lo que al usuario le parece un fallo.
Observe el problema
Aquí hay un delay de un segundo entre las comprobaciones, así que cualquier pulsación que se produzca durante ese segundo completo se pierde antes de la siguiente lectura.
digitalRead(buttonPin);
delay(1000);Una sola tarea a la vez
Como delay bloquea la ejecución, no puede hacer parpadear un LED y observar un sensor al mismo tiempo. Todo el sketch espera como una sola tarea.
Las pausas acumuladas se suman
Dos llamadas a delay seguidas simplemente se suman. Si distribuye varias por el programa, la placa pasa la mayor parte del tiempo congelada y sin responder.
Perfecto para sketches sencillos
delay no es malo. Para un único LED parpadeante sin ninguna otra tarea, es perfectamente claro y totalmente válido.
El objetivo real
El objetivo real es un sketch sin bloqueo que siga reaccionando mientras también controla los tiempos de los eventos. Eso significa no congelar nunca el bucle con una pausa larga.
Piense en el tiempo de otra forma
En lugar de pausar, puede preguntar cuánto tiempo ha pasado y actuar solo cuando haya transcurrido el suficiente. Mientras tanto, el bucle sigue ejecutándose.
Pronto tendrá una herramienta mejor
Pronto conocerá millis, un reloj que permite medir el tiempo transcurrido sin congelar la ejecución. Así es como los proyectos reales siguen respondiendo.
Comprobación rápida
¿Cuál es el principal inconveniente de usar delay en un sketch?
Resumen
Ha visto que delay es sencillo, pero congela la placa, hace que se pierdan entradas y bloquea otras tareas. A continuación controlará los eventos sin detener el bucle. ✨
Preguntas frecuentes
¿La lección «Por qué delay() lo bloquea todo» es gratis?
Sí — el texto completo de «Por qué delay() lo bloquea todo» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Arduino & IoT Academy, actualiza a CoddyKit PRO. El curso de Arduino & IoT Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Por qué delay() lo bloquea todo»?
Compruebe cómo una pausa impide que la placa reaccione. Practicas Arduino & IoT Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Arduino & IoT Academy?
No se requiere experiencia previa. Arduino & IoT Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Por qué delay() lo bloquea todo»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Arduino & IoT Academy?
Sí. Cada lección de Arduino & IoT Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- int, float, bool en Arduino
- Por qué delay() lo bloquea todo
- Hacer parpadear un LED sin delay usando millis
- Ejecutar dos tareas a la vez