Arduino & IoT Academy · Leçon

Pourquoi delay() bloque tout

Voyez comment une pause empêche votre carte de réagir.

Leçon 2 sur 413 étapes

Pourquoi delay() bloque tout est une leçon Arduino & IoT Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Arduino & IoT Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Arduino & IoT Academy comprend 4 leçons au total.

La pause facile

La fonction delay met votre programme en pause pendant un nombre défini de millisecondes. C’est la façon la plus simple de ralentir les opérations et de rendre un clignotement visible.

delay(1000);

Ce que signifie 1000

delay(1000) attend une seconde entière, car la valeur est exprimée en millisecondes. Ainsi, delay(500) correspond à une demi-seconde et delay(2000) à deux secondes.

Elle bloque la carte

Le problème : delay bloque tout. Pendant l’attente, votre carte ne fait absolument rien d’autre, comme une personne qui retient son souffle. 😮

Appuis sur le bouton manqués

Pendant un delay, votre carte ne peut pas détecter un appui sur un bouton. Appuyez pendant la pause et l’action est simplement ignorée, ce qui semble défaillant pour l’utilisateur.

Voir le problème

Ici, un delay d’une seconde se trouve entre les vérifications : tout appui effectué pendant cette seconde est perdu avant la lecture suivante.

digitalRead(buttonPin);
delay(1000);

Une seule tâche à la fois

Comme delay bloque l’exécution, vous ne pouvez pas faire clignoter une LED et surveiller un capteur en même temps. Tout le programme attend comme s’il s’agissait d’une seule tâche.

Les pauses successives s’additionnent

Deux appels à délai à la suite s'additionnent simplement. Répartissez-en plusieurs et votre carte passe la majeure partie de son temps figée et inactive.

Parfait pour les programmes simples

délai n'est pas mauvais en soi. Pour une seule LED clignotante, sans rien d'autre à gérer, son fonctionnement est parfaitement clair et son utilisation tout à fait acceptable.

Le véritable objectif

Le véritable objectif est de créer un programme non bloquant qui continue à réagir tout en chronométrant les événements. Cela signifie qu'il ne faut jamais figer la boucle avec une longue pause.

Pensez plutôt au temps

Au lieu de mettre le programme en pause, vous pouvez vérifier combien de temps s'est écoulé et n'agir que lorsque cela suffit. Pendant ce temps, la boucle continue de tourner.

Un meilleur outil arrive

Vous allez bientôt découvrir millis, une horloge qui vous permet de mesurer le temps écoulé sans figer le programme. C'est ainsi que les vrais projets restent réactifs.

Vérification rapide

Quel est le principal inconvénient de l'utilisation de délai dans un programme ?

Récapitulatif

Vous avez vu que délai est simple, mais qu'il fige la carte, fait manquer des entrées et bloque les autres tâches. Ensuite, vous chronométrerez les événements sans arrêter la boucle. ✨

Gratuit pour commencer

Apprends C++ avec un tuteur IA — gratuit

Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.

Cours
30
Leçons
120

Questions Fréquemment Posées

La leçon « Pourquoi delay() bloque tout » est-elle gratuite ?

Oui — le texte complet de « Pourquoi delay() bloque tout » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Arduino & IoT Academy, passe à CoddyKit PRO. Le cours Arduino & IoT Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Pourquoi delay() bloque tout » ?

Voyez comment une pause empêche votre carte de réagir. Tu pratiques Arduino & IoT Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Arduino & IoT Academy ?

Aucune expérience préalable n'est requise. Arduino & IoT Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Pourquoi delay() bloque tout » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Arduino & IoT Academy ?

Oui. Chaque leçon Arduino & IoT Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. int, float, bool sur Arduino
  2. Pourquoi delay() bloque tout
  3. Faire clignoter une LED sans delay avec millis
  4. Exécuter deux actions à la fois
← Retour à Arduino & IoT Academy