Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

Arduino LED blink : premier programme

Arduinomis à jour le 13 février 2026

Programmer un Arduino avec un simple clignotement de LED ouvre très vite la porte à l’électronique et aux systèmes embarqués. Derrière ce petit voyant qui s’allume et qui s’éteint, se cachent des notions clés : broches d’E/S, résistances, temporisation, boucle infinie, logique binaire.

En partant du programme LED blink, tu poses les fondations pour piloter des capteurs, des moteurs, des écrans et automatiser ton environnement. En avançant pas à pas, tu verras comment une LED qui clignote se transforme en véritable base de travail pour des projets plus avancés et fiables.

Élément clé Synthèse
Objectif 🎯 Découvrir la programmation Arduino via l’allumage et l’extinction d’une LED.
Principe Utiliser une sortie numérique pour contrôler une LED en alternant entre HIGH et LOW avec un délai.
Matériel requis Carte Arduino, LED, résistance (220 Ω), câbles.
Code essentiel Configuration d’une broche en sortie puis boucle faisant clignoter la LED avec des temporisations.
Compétence acquise Compréhension du fonctionnement d’une boucle et du contrôle de broches numériques.

Comprendre le programme Arduino LED blink avant de coder

Le programme LED blink sert de porte d’entrée à l’univers Arduino. Il met en œuvre la gestion d’une sortie numérique, l’utilisation d’un délai et la logique de boucle infinie. Ce code se retrouve sur quasiment toutes les documentations pour débutants, car il synthétise la philosophie de la plateforme : simplicité d’écriture, lecture claire, exécution en continu.

Sur la plupart des cartes, une LED intégrée est déjà reliée à une broche numérique. Sur une Arduino Uno R3, elle est connectée au port 13 et apparaît en orange. Le programme LED blink agit donc directement sur cette broche, sans câblage externe. Cette configuration permet de tester rapidement que la carte fonctionne, que le câble USB est opérationnel et que le téléversement de programme se déroule correctement.

ArduinoArduino et domotique : automatiser sa maison pour pas cher

Le principe reste identique sur Arduino Nano, Leonardo ou Mega 2560. Le microcontrôleur (ATmega328P pour l’Uno, ATmega32U4 pour le Leonardo, etc.) lit le code compilé, puis modifie l’état logique de la broche reliée à la LED. Les fonctions clés du langage Arduino interviennent alors : pinMode() pour configurer le port, digitalWrite() pour envoyer l’état haut ou bas, et delay() pour gérer la durée d’allumage et d’extinction.

Choisir sa carte Arduino pour un premier LED blink

Plusieurs cartes Arduino conviennent pour un programme LED blink. Le comportement du code ne change pas, mais l’environnement matériel, le nombre de broches et les possibilités d’évolution varient. Un choix cohérent dès le départ évite de se sentir limité au moment de connecter davantage de capteurs ou d’actionneurs.

Les modèles les plus utilisés pour commencer tournent autour de l’ATmega328 et de ses variantes : Arduino Uno R3 et Arduino Nano. D’autres, comme Arduino Leonardo ou Arduino Mega 2560 Rev3, conviennent mieux à des systèmes plus denses, riches en entrées et en sorties. Le programme LED blink reste cependant identique, ce qui permet de passer d’une carte à l’autre sans réécrire toute la logique.

Carte Arduino Microcontrôleur Points forts Usage typique
Arduino Uno R3 ATmega328P 14 E/S numériques, 6 PWM, 6 entrées analogiques, LED intégrée sur le port 13, large compatibilité avec shields Projets généraux, apprentissage, maquettes pédagogiques
Arduino Nano ATmega328 Format compact, 32 kB de mémoire, facilité d’intégration dans des systèmes embarqués Montages compacts, intégration sur breadboard, objets connectés minimalistes
Arduino Leonardo ATmega32U4 Émulation native de périphériques USB, plus d’E/S que l’Uno Claviers USB, contrôleurs personnalisés, interfaces homme‑machine
Arduino Mega 2560 Rev3 ATmega2560 Beaucoup de broches E/S, mémoire plus généreuse Projets avec nombreux capteurs, écrans, boutons et modules
Conseil pratique : pour un tout premier projet LED blink, une Arduino Uno R3 reste la carte la plus confortable. La communauté est vaste, la documentation abondante et la plupart des tutoriels se basent sur cette référence.

Matériel nécessaire pour réaliser un LED blink complet

Le programme LED blink fonctionne déjà avec la LED intégrée. Pourtant, pour comprendre le câblage et la gestion de courant, mieux vaut utiliser une LED externe avec une résistance de protection. Ce montage illustre clairement la circulation du courant, le rôle de l’anode, de la cathode et de la masse (GND).

Un kit de base inclut généralement tout le nécessaire pour ce montage. La liste suivante couvre ce qu’il faut pour un exercice propre, extensible vers d’autres expériences électroniques.

  • Une carte Arduino compatible (Uno R3, Nano, Leonardo ou Mega 2560 Rev3).
  • Un câble USB adapté pour l’alimentation et le transfert du programme.
  • Une breadboard pour réaliser un câblage ordonné et modulable.
  • Une LED classique (rouge, verte ou autre couleur).
  • Une résistance de environ 220 Ω pour limiter le courant sous 5 V.
  • Quelques fils de connexion (dupont) pour relier la carte à la breadboard.

Sur une carte alimentée en 5 V, une LED sans résistance risque de subir un courant excessif et de se dégrader rapidement. Une résistance de l’ordre de 220 Ω reste cohérente pour un courant typique autour de 10 à 20 mA, selon la LED utilisée. Ce montage protège également la broche de la carte contre une surcharge.

Astuce sécurité : si tu n’es pas certain de la valeur de ta résistance, privilégie une valeur un peu plus élevée (330 Ω par exemple). La LED brillera légèrement moins fort, mais le microcontrôleur restera à l’abri d’une surintensité.

Câblage détaillé du circuit LED blink

Le schéma de câblage d’un LED blink externe repose sur une structure simple mais fondamentale. Le but consiste à faire circuler le courant depuis la broche numérique configurée en sortie, à travers la résistance, la LED, puis jusqu’à la masse (GND). Ce chemin forme une boucle électrique complète.

Le câblage de base s’organise comme suit : Anode → résistance → broche numérique → microcontrôleur → masse → cathode. Selon le montage, certains choisissent de placer la résistance avant ou après la LED. Sur le plan électrique, la position n’influence pas le courant, tant que la résistance se trouve en série avec la LED.

  • Relier la broche numérique 13 (ou une autre broche, par exemple 8) à une extrémité de la résistance de 220 Ω.
  • Relier l’autre extrémité de la résistance à l’anode de la LED (patte la plus longue).
  • Relier la cathode de la LED (patte la plus courte, côté méplat) à une des rangées connectées à la masse (GND) sur la breadboard.
  • Relier ensuite une broche GND de l’Arduino à cette même rangée de masse.

Sur la breadboard, les rangées horizontales ou verticales peuvent être déjà communes selon le modèle. Un repérage attentif des rails de puissance évite les courts-circuits et les inversions anode/cathode. Le respect de la polarité reste essentiel, la LED ne s’allume que dans le sens direct.

« Anode → résistance → LED → cathode → masse » résume le schéma standard. Cette phrase simple s’ancre vite dans les habitudes et aide à structurer le câblage mentalement avant même de connecter les fils.

Structure du code Arduino LED blink expliquée

Le langage Arduino repose sur deux fonctions principales que le programmeur définit : setup() et loop(). Tous les exemples officiels, y compris LED blink, suivent cette structure. Une bonne compréhension de ces deux blocs facilite la lecture de tout projet Arduino, même plus complexe.

La fonction setup() s’exécute une seule fois au démarrage ou après un reset. Elle sert à initialiser la configuration des broches, la communication série, les librairies, etc. La fonction loop() tourne ensuite en continu, tant que la carte reste alimentée. LED blink utilise cette boucle pour alterner l’allumage et l’extinction de la LED, séparés par des délais temporisés.

Exemple de code LED blink standard

Voici un exemple de code LED blink classique pour une LED sur la broche 13 :

int ledPin = 13; // Broche connectée à la LED

void setup() {
  pinMode(ledPin, OUTPUT); // Configuration de la broche en sortie
}

void loop() {
  digitalWrite(ledPin, HIGH); // LED allumée
  delay(1000);                // Attente de 1000 ms (1 seconde)
  digitalWrite(ledPin, LOW);  // LED éteinte
  delay(1000);                // Attente de 1000 ms (1 seconde)
}

La variable ledPin contient le numéro de la broche utilisée. Cette approche accentue la lisibilité et rend le code plus souple. Si tu décides de déplacer la LED sur une autre broche, il suffit de modifier cette valeur, sans toucher aux autres lignes.

La fonction pinMode(ledPin, OUTPUT) configure la broche en sortie numérique. Les fonctions digitalWrite(ledPin, HIGH) et digitalWrite(ledPin, LOW) imposent respectivement un niveau logique haut (5 V) et bas (0 V). Enfin, delay(1000) fige l’exécution pendant 1000 millisecondes, générant un clignotement régulier.

Point de vigilance : la fonction delay() bloque l’exécution. Pendant la durée d’attente, le microcontrôleur ne traite aucune autre tâche. Pour des montages plus complexes, une approche non bloquante basée sur millis() devient plus adaptée.

Comprendre les notions fondamentales derrière LED blink

LED blink enseigne plus qu’un simple clignotement. Ce programme introduit des concepts centraux de l’électronique numérique et du développement embarqué. Les assimiler à ce stade facilite l’évolution vers des projets plus riches, par exemple la lecture de capteurs ou le pilotage de relais.

Parmi ces notions, on retrouve les états logiques haut/bas, le courant limité par la résistance, la temporisation, mais aussi la répétition infinie d’actions dans une boucle. L’ensemble compose une base solide pour aborder ensuite la lecture analogique, la modulation de largeur d’impulsion (PWM) ou la communication série.

  • État haut (HIGH) / bas (LOW) : la broche de sortie adopte une tension de 5 V ou 0 V, correspondant respectivement à un 1 logique ou un 0 logique.
  • Courant limité : la résistance série protège la LED et la broche de sortie en limitant le courant.
  • Temporisation : delay() impose une pause mesurée, créant un rythme de clignotement.
  • Boucle infinie : loop() s’exécute sans fin, tant que l’alimentation reste active.

Le clignotement d’une LED traduit visuellement une séquence logique : « 1 pendant X millisecondes, puis 0 pendant X millisecondes, et ainsi de suite ». Chaque cycle illustre une forme de chronogramme numérique, dans une version accessible à l’œil humain.

Modifier la vitesse de clignotement et explorer des variantes

Ajuster la valeur de delay() permet de contrôler directement la fréquence de clignotement. Une valeur élevée donne une LED lente, une valeur courte rapproche le rythme du seuil de perception de l’œil humain. Ce simple paramètre offre un terrain d’expérimentation intéressant.

En réduisant progressivement la durée, on observe une transition entre une LED clairement clignotante et une LED qui semble rester allumée en continu. Ce phénomène vient de la persistance rétinienne et de la capacité limitée de l’œil à distinguer des alternances trop rapides.

Valeur de delay() Effet perçu Usage pédagogique
1000 ms Clignotement lent, bien visible Idéal pour un premier test et pour suivre le programme à l’œil
200 à 500 ms Clignotement plus rapide Illustration d’un rythme modéré, comparable à un signal d’alerte visuelle
50 à 100 ms Clignotement très rapide Début d’effet de fusion visuelle, utile pour aborder la notion de fréquence
Conseil expérimental : note les valeurs de delay() que tu testes et décris ce que tu observes. Tu construis ainsi un petit journal de bord, précieux pour comprendre ton ressenti face aux phénomènes temporels.

Varier le rapport cyclique

En modifiant séparément les durées d’allumage et d’extinction, tu obtiens un rapport cyclique asymétrique. Par exemple, une LED allumée 200 ms puis éteinte 800 ms donne une impression de brève impulsion suivie d’une longue pause. Cette notion de rapport cyclique sera précieuse pour la suite, notamment en PWM.

digitalWrite(ledPin, HIGH);
delay(200);   // Allumée plus brièvement

digitalWrite(ledPin, LOW);
delay(800);   // Éteinte plus longtemps

En ajustant ces durées, tu peux simuler par exemple un signal type SOS, un battement de cœur ou une signalisation spécifique. Chaque motif devient une façon d’encoder de l’information visuelle dans le temps.

Résolution des problèmes fréquents avec LED blink

Certains blocages surviennent régulièrement lors des premiers essais. Une LED qui ne s’allume pas, un port série introuvable, un code qui refuse de se téléverser : ces symptômes ont des causes récurrentes. Une approche méthodique aide à isoler et résoudre chaque source d’erreur.

Les difficultés se répartissent souvent en trois catégories : erreurs de câblage, erreurs de configuration de l’IDE et erreurs de code. Les vérifier une par une simplifie le diagnostic.

  • LED inversée : l’anode et la cathode sont permutées, la LED ne s’allume pas.
  • Absence de résistance : la LED risque de claquer, voire de solliciter trop la broche.
  • Mauvaise broche : le code mentionne la broche 13 mais la LED est câblée sur 8, ou l’inverse.
  • Port série incorrect : la carte est branchée, mais l’IDE sélectionne un autre port.
  • Mauvais type de carte : l’IDE est réglé sur un modèle différent (par exemple, Mega au lieu d’Uno).

En cas de LED muette, reviens toujours à la base : vérifier la polarité de la LED, la présence de la résistance, la référence de la broche dans le code et la sélection de la carte dans l’IDE. Ce contrôle simple débloque une large part des situations.

Limite matérielle : une broche numérique Arduino ne supporte pas un courant élevé. Il reste prudent de se limiter à quelques dizaines de milliampères, en respectant les recommandations de la carte. Pour plusieurs LED, privilégie des transistors ou des modules spécialisés.

Étendre LED blink vers des projets plus avancés

Une fois le clignotement maîtrisé, la logique du programme LED blink s’étend facilement vers des scénarios plus riches. Par exemple, tu peux synchroniser la LED avec la lecture d’un capteur, déclencher un clignotement sur événement, ou piloter plusieurs sorties en parallèle.

ArduinoPiloter un relais 230 V avec Arduino en sécurité : 5 erreurs à éviter

L’association d’une LED avec un capteur de température illustre bien cette démarche. Lorsque la température dépasse un seuil, la LED s’allume ou clignote plus vite. La boucle principale combine alors lecture du capteur, décision logique et commande de la sortie.

  • LED comme indicateur de seuil (température, lumière, proximité).
  • LED utilisée comme témoin d’état d’un système (connexion établie, erreur, activité).
  • LED synchronisée avec une action physique (ouverture d’un relais, moteur en marche).

La même logique de digitalWrite() sert ensuite au pilotage de relais, de transistors MOSFET ou de modules de puissance. La LED devient alors un banc d’essai miniature avant de passer à des charges plus contraignantes comme des bandes LED ou des moteurs.

Idée d’évolution : combine le programme LED blink avec un bouton poussoir. La LED ne clignote que lorsque le bouton est pressé ou bascule d’un mode à l’autre. Tu touches ainsi à la gestion d’entrées et à la prise de décision dans le code.

LED blink et bonnes pratiques de programmation Arduino

LED blink constitue un terrain favorable pour adopter quelques réflexes de programmation propres à Arduino. Organiser son code dès ce stade aide beaucoup quand le projet grandit, notamment en présence de plusieurs LED, de capteurs et de fonctions.

L’usage de variables, de constantes et de fonctions personnalisées améliore la lisibilité. Les commentaires bien placés facilitent la relecture après quelques semaines. Ces techniques se mettent en place dès un projet aussi simple qu’un clignotement.

Variables et constantes pour les broches

Déclarer la broche de LED comme constante renforce la clarté :

const int LED_PIN = 13;

Cette approche signale que le numéro de broche ne doit pas changer pendant l’exécution. Elle se répète pour les différentes sorties, capteurs, boutons et permet d’identifier rapidement l’architecture du montage depuis le haut du fichier.

Fonctions dédiées pour allumer ou éteindre

Créer une fonction allumerLed() ou eteindreLed() apporte une couche d’abstraction. La fonction encapsule l’appel à digitalWrite() et permet d’ajouter ultérieurement des vérifications ou des effets spéciaux sans modifier tout le programme.

void allumerLed() {
  digitalWrite(LED_PIN, HIGH);
}

void eteindreLed() {
  digitalWrite(LED_PIN, LOW);
}

Dans la boucle loop(), le code devient plus expressif : tu lis « allumer », « éteindre », puis les durées. Ce style rend le programme plus proche d’une description de comportement que d’une suite d’instructions brutes.

LED blink non bloquant avec millis() pour aller plus loin

La version classique de LED blink avec delay() convient pour débuter, mais elle bloque l’exécution pendant les temps d’attente. Pour gérer plusieurs tâches en parallèle, une technique basée sur millis() apporte une solution non bloquante. La carte mesure le temps écoulé depuis son démarrage et déclenche des actions quand certains intervalles sont atteints.

Ce type de structure devient précieux lorsqu’un projet combine LED, capteurs, communication série et autres périphériques. La carte surveille plusieurs conditions dans la même boucle sans rester figée sur un délai donné.

const int LED_PIN = 13;
unsigned long previousMillis = 0;
const long interval = 1000; // Intervalle d'une seconde

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;

    int state = digitalRead(LED_PIN);
    digitalWrite(LED_PIN, !state); // Inversion de l'état
  }

  // Ici, tu peux lire un capteur, gérer un bouton, etc.
}

Avec ce schéma, le programme vérifie régulièrement si l’intervalle souhaité est écoulé, puis inverse l’état de la LED. Le reste du temps, la boucle reste libre pour d’autres tâches. Cette méthode forme la base de nombreux systèmes réactifs basés sur Arduino.

Approfondissement recommandé : après LED blink, l’étape suivante logique consiste à suivre un tutoriel structuré comme Arduino LED blink ou un guide global type guide complet pour débuter avec Arduino. Tu y retrouveras ces notions appliquées à des scénarios variés.

LED blink comme base de la pédagogie Arduino

Dans le contexte pédagogique, LED blink joue un rôle de fil conducteur. Les formateurs l’utilisent pour illustrer les notions de boucle, de variables, de délais, mais aussi de rigueur dans le câblage. Le clignotement visible fournit un retour immédiat, très parlant, même pour un public sans bagage technique.

Les expérimentations autour de ce programme peuvent inclure des activités d’observation, de chronométrage, de modification de code et de commentaire de lignes. L’objectif consiste à instaurer une relation directe entre le code écrit, le comportement de la LED et le raisonnement logique sous-jacent.

Un simple clignotement devient un support de dialogue : « Que se passe-t-il si on divise cette valeur par deux ? », « Pourquoi la LED semble-t-elle rester allumée maintenant ? », « D’où vient cette durée de une seconde ? ». Chaque question renvoie au code et à la compréhension du temps dans un système embarqué.

En associant progressivement la LED à des boutons, des capteurs ou des signaux sonores, l’enseignant montre comment une sortie numérique simple s’intègre dans une chaîne d’information plus étendue. LED blink cesse alors d’être un exercice isolé et devient une brique parmi d’autres dans une architecture plus large.

Donnez votre avis

Soyez le 1er à noter cet article


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.