Mon projet Arduino ne fonctionne pas : diagnostic en 10 minutes
Projet Arduino qui ne fonctionne pas ? Vérifie 6 couches de l'extérieur vers l'intérieur : alimentation, téléversement, câblage, composants, code, capteur.
Si ton projet Arduino ne fonctionne pas, ne cherche pas la panne en débranchant et rebranchant des fils au hasard. Avance de l'extérieur vers l'intérieur : d'abord l'alimentation (la carte s'allume-t-elle ?), puis le téléversement (le code est-il vraiment arrivé sur la carte ?), puis le câblage (la masse GND est-elle commune, chaque fil est-il sur la bonne broche ?), puis le sens et la valeur des composants (la LED est-elle à l'envers, la résistance est-elle la bonne ?), puis le code (numéros de broches et logique) et enfin le capteur et l'environnement (lumière, distance, tension d'alimentation). Fais un seul test par couche et ne change qu'une chose à la fois. En suivant cet ordre, tu trouveras la plupart des pannes en 10 minutes, car les erreurs les plus fréquentes se trouvent dans les couches extérieures, et ce sont les moins coûteuses à vérifier.
Cet article ne dresse pas la liste des messages d'erreur un par un : il te donne une méthode de diagnostic. Tu verras d'abord les deux règles de la méthode, puis un tableau de déroulement avec le symptôme, un test d'une minute et la cause probable pour chaque couche. Viennent ensuite un court programme de test qui découpe le circuit en morceaux grâce à Blink et au moniteur série, 4 mesures au multimètre (et leurs équivalents avec une LED et le moniteur série si tu n'en as pas), le diagnostic pas à pas d'une panne dans un projet gratuit de BlueGrays, un tableau rapide par symptôme et une fiche de diagnostic en 8 points pour la classe.

Les deux règles du diagnostic : de l'extérieur vers l'intérieur, une seule variable
La logique est simple : les couches intérieures dépendent des couches extérieures. Si la carte n'est pas alimentée, peu importe que le code soit juste ; si le code n'est jamais arrivé sur la carte, corriger le câblage ne change rien. Les couches extérieures sont aussi les plus rapides à vérifier : regarder le voyant d'alimentation prend 5 secondes et lire le message de téléversement 10, alors que trouver une erreur de logique dans le code peut prendre plusieurs minutes. La deuxième règle est celle de la variable unique. Si tu changes en même temps le fil, la résistance et le seuil dans le code, tu ne sauras pas ce qui a réglé le problème même si le projet se met à fonctionner ; et s'il ne fonctionne pas, tu as peut-être ajouté une nouvelle panne. Fais un changement, teste, note le résultat, puis passe au suivant.
- Écris le symptôme en une phrase : « Quand je couvre la LDR avec ma main, je m'attends à ce que la LED s'allume, mais elle ne s'allume jamais. » « Ça ne marche pas » n'est pas un symptôme ; en écrivant séparément ce que tu attendais et ce qui se passe, la couche à vérifier devient souvent évidente.
- Débranche l'USB pendant le câblage : si la carte reste alimentée pendant que tu changes les connexions, un mauvais contact peut provoquer un court-circuit. Fais la modification, vérifie à l'œil, puis rebranche.
- Remplace par une pièce qui marche à coup sûr : remplacer la LED, le fil ou le capteur suspect par un exemplaire dont tu sais qu'il fonctionne est le test le plus efficace sans appareil de mesure.
- Prends des notes : de courtes notes comme « fil passé de 7 à 8, aucun changement » t'évitent de refaire le même test et forment un résumé tout prêt si tu poses la question sur un forum ou à ton enseignant.
- Simplifie : si le projet est gros, retire les modules un par un. D'abord la carte seule, puis la carte avec la partie sortie, puis la partie entrée. Voir quelle pièce fait tout tomber en panne t'indique où se trouve le défaut.
Le tableau de diagnostic en 10 minutes
Lis le tableau de haut en bas et ne descends à la couche suivante qu'une fois le test de la couche actuelle réussi. Chaque test prend environ une minute, donc les six couches sont terminées en 6 à 10 minutes. Pour la plupart des tests, tes yeux, les voyants de la carte et le moniteur série de l'Arduino IDE suffisent ; un multimètre accélère les choses mais n'est pas obligatoire. La colonne « Cause probable » indique les premiers endroits à regarder quand un test échoue, à peu près par ordre de fréquence.
| Couche | Symptôme | Test d'une minute | Cause probable |
|---|---|---|---|
| 1. Alimentation | Rien ne se passe, les voyants de la carte sont éteints ou la carte chauffe | Le voyant ON est-il allumé ? Débranche l'USB et touche les composants : l'un d'eux est-il chaud ? | Câble USB de charge uniquement, port mal enfoncé, court-circuit entre 5V et GND, module branché à l'envers |
| 2. Téléversement | Tu as modifié le code mais la carte garde l'ancien comportement | L'IDE a-t-il indiqué la fin du téléversement ou y a-t-il une ligne d'erreur ? Carte et port sont-ils corrects dans le menu Outils ? | Mauvaise carte ou mauvais port, erreur de compilation, pilote manquant, moniteur série qui occupe le port |
| 3. Câblage | Un composant ne réagit jamais ou seulement de temps en temps | Agrandis le schéma et compte chaque fil à ses deux extrémités ; la masse est-elle commune avec la carte ? | Rangée décalée sur la plaque d'essai, rail d'alimentation coupé, broches D et A confondues, fil de liaison cassé |
| 4. Sens et valeur | LED éteinte ou très faible, bouton toujours vu comme appuyé | La patte longue de la LED va-t-elle à la broche ? Que disent les anneaux de la résistance ? Le bouton est-il tourné de 90 degrés ? | LED à l'envers, 10 kΩ au lieu de 220 Ω, LDR et résistance inversées, ordre VCC et GND du module |
| 5. Code | La carte tourne mais se comporte mal | Compare chaque numéro de broche du code au circuit ; affiche des points de contrôle dans le moniteur série | Mauvais numéro de broche, pinMode manquant, = confondu avec ==, seuil ou délai inadapté |
| 6. Capteur et environnement | Les valeurs ne changent jamais, n'ont pas de sens ou sautent | Observe la valeur du capteur dans le moniteur série et change les conditions (éteins la lumière, approche la main) | Lumière ambiante, capteur hors de portée, temps de chauffe, incompatibilité 3,3 V et 5 V, fils longs et parasites |
Couches 1 et 2 : alimentation et téléversement
Sur une Arduino Uno, deux voyants donnent le premier indice pour ces deux couches. Le voyant ON montre que la carte est alimentée ; s'il est éteint, change d'abord le câble USB, car certains câbles ne servent qu'à charger et ne transportent pas de données. Si ON est allumé mais que le son USB de ton ordinateur se coupe au branchement ou que le voyant clignote, il y a peut-être un court-circuit dans le montage : débranche l'USB, suis les lignes 5V et GND et cherche un module branché à l'envers ou un fil qui relie les deux rails. Un composant qui chauffe est toujours un signal sérieux ; ne réalimente pas la carte avant de l'avoir retiré. Si tu utilises un moteur, un servo ou un relais, le courant de l'USB peut ne pas suffire ; le symptôme n'est alors généralement pas « rien ne marche », mais des redémarrages aléatoires ou des tremblements. Pour les piles et les adaptateurs, consulte alimenter une Arduino sur piles.
Dans la couche téléversement, tu cherches la réponse à une seule question : le code présent sur la carte est-il celui que tu vois à l'écran ? À la fin du téléversement, l'Arduino IDE l'indique dans la zone de sortie en bas ; s'il y a des lignes rouges, le code n'est jamais arrivé sur la carte et celle-ci continue d'exécuter son ancien programme. C'est un piège, car tu croiras que ta correction n'a pas marché. Pour les erreurs avrdude, de port et de pilote, le code Arduino ne se téléverse pas explique chaque message, et si tu bloques à la compilation, consulte les erreurs de compilation. Il existe aussi un test de preuve simple : change un délai du code de 100 à 1000 et téléverse. Si le rythme de la LED ne change pas, le problème vient du téléversement. Certaines cartes ESP32 demandent de maintenir le bouton BOOT pendant le téléversement ; sur une Raspberry Pi Pico, vérifie que l'interpréteur MicroPython est sélectionné en bas à droite de Thonny.
Couche 3 : câblage, masse et broches
La carte est alimentée et le code téléversé : place aux fils. Les deux erreurs les plus fréquentes sont l'oubli de la masse commune et une mauvaise lecture de la plaque d'essai. Même si un capteur ou un module a sa propre alimentation, sa GND doit être reliée à celle de l'Arduino, sinon la tension du signal n'a pas de référence. Sur la plaque d'essai, la rainure centrale sépare les deux moitiés, et sur les grandes plaques les rails d'alimentation des bords peuvent être coupés au milieu ; alimenter une moitié de rail en 5V en pensant alimenter un composant de l'autre moitié est une erreur très courante. La meilleure méthode pour cette couche est la comparaison point par point avec le schéma : compte chaque fil avec ses deux extrémités et montre du doigt son équivalent sur le schéma. Le numérique 2 confondu avec l'analogique A2, 5V confondu avec VIN ou un fil décalé d'une rangée apparaissent tout de suite. Si les symboles te sont peu familiers, lire un schéma électronique explique pas à pas comment le reporter sur la plaque d'essai.
Couche 4 : sens et valeur des composants
Si le câblage est bon mais qu'un composant ne réagit toujours pas, regarde le composant lui-même. La patte longue de la LED (anode) va à la broche à travers la résistance et la patte courte (cathode) à GND ; une LED à l'envers n'est généralement pas abîmée, elle reste simplement éteinte. Les résistances sont les pièces que l'on confond le plus : 220 Ω a les anneaux rouge-rouge-marron, 10 kΩ marron-noir-orange. Avec 10 kΩ à côté d'une LED, elle brille si faiblement que tu ne le remarqueras pas ; avec 220 Ω à côté d'une LDR ou d'un bouton, les lectures n'ont plus de sens. Tu peux lire les anneaux avec le calculateur de code couleur et trouver la bonne valeur pour une LED avec le calculateur de résistance de LED. Un bouton-poussoir à quatre pattes tourné de 90 degrés semblera toujours appuyé ou jamais appuyé. Sur les modules, l'ordre VCC, GND et signal varie selon le fabricant ; lis les inscriptions sur la carte elle-même, pas sur une image trouvée en ligne. Pour les composants à trois pattes comme les transistors et les régulateurs de tension, l'ordre des pattes change aussi selon le modèle.
Couche 5 : code (numéros de broches et logique)
Si le matériel est sain, vérifie que le code dit la même chose que le circuit. Premier contrôle, les numéros de broches : si la LED est physiquement sur la 8 mais que le code dit digitalWrite(9, HIGH), tout a l'air parfait et rien ne se passe. Deuxième contrôle, pinMode : si pinMode(broche, OUTPUT) manque dans setup(), digitalWrite(broche, HIGH) ne met pas la broche en sortie, il active seulement la résistance de tirage interne, et la LED brille très faiblement. Après la résistance, c'est la cause la plus fréquente d'une « LED faible ». Troisième contrôle, la logique : écrire if (valeur = 100) ne compare rien, cela affecte 100 à la variable et la condition est toujours vraie ; la bonne forme est ==. Les seuils et les délais appartiennent aussi à cette couche : un seuil inadapté à ton environnement fait que rien ne se déclenche, même avec un capteur qui fonctionne parfaitement. Dans les projets qui utilisent des bibliothèques, vérifie aussi que la bonne bibliothèque est installée ; les détails sont dans installer une bibliothèque Arduino.
Couche 6 : capteur et environnement
La dernière couche regroupe les conditions extérieures qui faussent le résultat même quand le circuit et le code sont justes. La valeur d'une LDR dépend de l'éclairage de la pièce ; un seuil qui marche près de la fenêtre en journée peut ne plus convenir le soir sous une lampe. Un HC-SR04 ne reçoit pas d'écho des surfaces molles comme le tissu et ne mesure pas en dessous de 2 cm. Les capteurs de gaz de la série MQ ont besoin de quelques minutes de chauffe avant de mesurer. Un DHT11 renvoie des erreurs si tu le lis plus d'une fois par seconde. Les broches de l'ESP32 et de la Raspberry Pi Pico fonctionnent en 3,3 V ; brancher directement un capteur à sortie 5 V peut donner de fausses lectures et abîmer la broche. Les fils longs, les parasites des moteurs et les entrées en l'air font aussi sauter les valeurs. Le meilleur outil pour cette couche est le moniteur série : observe la valeur brute du capteur et change volontairement les conditions. Si un écran ou un capteur I2C ne répond pas du tout, le programme scanner de qu'est-ce que l'I2C affiche son adresse.
Diviser pour régner : vérifier la carte avec Blink et les étapes avec le moniteur série
Le moyen le plus rapide de passer les couches est de découper le circuit et le code en morceaux. Le premier morceau, c'est la carte elle-même : sans rien brancher, téléverse un code qui fait clignoter le voyant L de la carte. Si L clignote, l'alimentation, le téléversement et la carte sont bons, et tu cherches désormais le problème en dehors de la carte. Le deuxième morceau est la sortie : fais aussi clignoter la LED externe dans le même code. Le troisième est l'entrée : affiche la valeur du capteur dans le moniteur série. Le programme ci-dessous fait les trois et écrit un point de contrôle numéroté dans le moniteur série à chaque étape. Branche la LED externe sur la broche 9 à travers une résistance de 220 Ω et le signal du capteur analogique à tester sur A0, puis règle le moniteur série sur 9600 bauds.
1const int LED_PIN = 9; // Harici LED pini / External LED pin
2const int SENSOR_PIN = A0; // Analog sensör pini / Analog sensor pin
3
4void setup() {
5 Serial.begin(9600); // Seri monitör de 9600 olmalı / Serial Monitor must be 9600 too
6 pinMode(LED_BUILTIN, OUTPUT); // Karttaki L ışığı / On-board L LED
7 pinMode(LED_PIN, OUTPUT); // Harici LED çıkış / External LED as output
8 Serial.println("1) setup bitti"); // Kontrol noktası 1 / Checkpoint 1
9}
10
11void loop() {
12 digitalWrite(LED_BUILTIN, HIGH); // Kart canlı mı? / Is the board alive?
13 digitalWrite(LED_PIN, HIGH); // Harici LED açık / External LED on
14 Serial.println("2) LED acik"); // Kontrol noktası 2 / Checkpoint 2
15 delay(500);
16
17 digitalWrite(LED_BUILTIN, LOW);
18 digitalWrite(LED_PIN, LOW); // Harici LED kapalı / External LED off
19 Serial.println("3) LED kapali"); // Kontrol noktası 3 / Checkpoint 3
20 delay(500);
21
22 int value = analogRead(SENSOR_PIN); // 0-1023 arası okuma / Reading from 0 to 1023
23 Serial.print("4) A0 = ");
24 Serial.println(value); // Sensör değeri / Sensor value
25}| Ce que tu vois dans le moniteur série et sur la carte | Ce que cela veut dire | Couche à vérifier |
|---|---|---|
| Moniteur série vide et L ne clignote pas | Le code ne tourne pas ou n'est jamais arrivé sur la carte | 1. Alimentation, 2. Téléversement |
| Des caractères incompréhensibles défilent | La vitesse du moniteur série ne correspond pas à Serial.begin(9600) | 5. Code (vitesse en bauds) |
| « 1) setup bitti » réapparaît de temps en temps | La carte redémarre toute seule, en général parce que l'alimentation ne suffit pas | 1. Alimentation |
| 2 et 3 alternent, L clignote mais la LED externe reste éteinte | Le code et la carte sont bons ; le chemin de la LED externe est coupé | 3. Câblage, 4. Sens et valeur |
| A0 toujours proche de 0 ou toujours proche de 1023 | La ligne de signal va à GND ou à 5V, le capteur n'est pas alimenté ou la résistance du pont manque | 3. Câblage, 4. Valeur |
| A0 saute au hasard sans rien de branché | La broche est en l'air ; c'est normal et cela doit cesser une fois le capteur branché | 3. Câblage |
La vraie force de ce programme, ce sont ses points de contrôle. Utilise la même méthode dans ton propre projet : ajoute un court Serial.println() à la fin de setup() et après chaque étape importante de loop(), par exemple « bouton appuye » ou « seuil depasse ». Le dernier message affiché dans le moniteur série te dit où le programme s'est bloqué. Pour comprendre pourquoi une condition ne se déclenche jamais, affiche juste avant la valeur que tu compares ; si « valeur < 50 » n'est jamais vrai, tu verras tout de suite que la valeur ne descend jamais sous 50. Dans les gros projets, applique la même logique : mets temporairement une partie du code en commentaire et teste les morceaux un par un. Pour les réglages du moniteur série comme la vitesse, la fin de ligne et le traceur, consulte utiliser le moniteur série Arduino.
4 mesures au multimètre (ou avec une LED et le moniteur série)
Un multimètre transforme le diagnostic en mesure plutôt qu'en devinette, et quatre mesures seulement couvrent la plupart des pannes Arduino. Avant de mesurer, place l'appareil sur le bon calibre : V continu pour la tension, bip (continuité) pour les fils et les rangées, Ω pour les résistances. Fais toujours les tests de continuité et de résistance avec l'USB débranché. Si tu n'as pas de multimètre, les méthodes de la dernière colonne donnent une réponse plus grossière mais suffisante à la même question. Les calibres de l'appareil et les douilles où brancher les pointes sont expliqués en images dans comment utiliser un multimètre.
| Mesure | Réglage et pointes | Attendu | Sans multimètre |
|---|---|---|---|
| Tension d'alimentation | V continu ; pointe noire sur GND, rouge sur la broche 5V (carte sur USB) | Environ 4,7 à 5,1 V ; environ 3,3 V sur la broche 3,3V | Regarde le voyant ON et téléverse Blink ; si L clignote régulièrement, l'alimentation suffit |
| Fil et rangée de la plaque d'essai | Mode bip, USB débranché ; touche les deux extrémités du fil ou deux trous de la même rangée | Un bip ; pas de bip signifie un fil cassé ou une autre rangée | Remplace le fil suspect par un fil qui marche ; branche une LED et 220 Ω entre 5V et GND à travers ce fil |
| Valeur de la résistance | Calibre Ω ; sors la résistance du circuit et touche ses deux pattes | Environ 209 à 231 Ω pour 220 Ω (tolérance de 5 pour cent) | Lis les anneaux de couleur et confirme avec le calculateur de code couleur |
| Tension du signal | V continu ; pointe noire sur GND, rouge sur la broche de sortie ou la ligne de signal du capteur | Environ 5 V quand la sortie est HIGH, 0 V quand elle est LOW ; dans le pont de la LDR, une valeur qui varie avec la lumière | Observe la valeur analogRead dans le moniteur série (5 V donne environ 1023, 0 V environ 0) ; branche une LED sur la broche de sortie |
Exemple : la LED ne s'allume pas dans le projet Veilleuse avec LDR
Essayons la méthode sur un projet gratuit de BlueGrays : Veilleuse avec LDR. Dans le circuit, une extrémité de la LDR va au 5V et l'autre à A0 ; une résistance de 10 kΩ se trouve entre A0 et GND, et les deux forment un pont diviseur de tension. La LED est reliée à la broche 13 à travers une résistance de 330 Ω. Le code lit A0 et, si la valeur est inférieure à 50, considère qu'il fait nuit et allume la LED. Le symptôme : « Je couvre la LDR avec ma main et la LED ne s'allume jamais. » Au lieu de changer des fils au hasard, passons les couches dans l'ordre.

- Alimentation : le voyant ON est allumé, rien ne chauffe. On passe.
- Téléversement : le téléversement s'est terminé sans erreur. Pour en être sûr, remplace temporairement le 50 du code par 2000 et téléverse ; comme analogRead renvoie au maximum 1023, la condition est toujours vraie et la LED devrait rester allumée.
- Câblage et voyant L : la broche 13 est aussi reliée au voyant L de la carte. Si L s'allume avec le seuil 2000 mais pas la LED externe, le code tourne et le problème est sur le chemin de la LED. La patte longue de la LED va-t-elle à la 13 à travers 330 Ω et la courte à GND ?
- Sens et valeur : la LED n'est pas à l'envers, mais s'il y a 10 kΩ à côté d'elle au lieu de 330 Ω, elle brille trop faiblement pour qu'on le remarque. Distingue les deux résistances par leurs couleurs.
- Code et capteur : si la LED externe s'allume avec le seuil 2000, remets-le à 50. Pour voir maintenant les vraies valeurs, téléverse sur le même circuit le code du projet Mesurer l'intensité lumineuse avec une LDR ; il utilise le même câblage de la LDR et écrit A0 dans le moniteur série toutes les demi-secondes.
- Lis les valeurs : imaginons que tu lises environ 600 à découvert et environ 120 en couvrant avec la main. La valeur ne descend jamais sous 50, donc la LED ne s'allume jamais. Reviens au code de la veilleuse et monte le seuil entre 200 et 300.
- Repère le comportement inversé : si la valeur monte au lieu de baisser quand tu couvres la LDR, la LDR et la 10 kΩ ont été inversées. Si la valeur saute au hasard alors que ta main ne bouge pas, le fil de A0 n'est pas bien enfoncé dans la rangée où se rejoignent la LDR et la résistance.
Dans cet exemple, ce n'est pas une connaissance nouvelle qui a trouvé la panne, mais l'ordre : nous avons d'abord prouvé que la LED pouvait s'allumer, puis regardé ce que le capteur lisait réellement. Dans l'application, la partie Si tu bloques de l'onglet Comprendre le code de ce même projet contient déjà cinq de ces symptômes sous forme de paires symptôme et solution : la LED externe ne s'allume jamais dans le noir, la LED s'allume à la lumière et s'éteint dans le noir, elle ne s'allume même pas main posée dessus, elle reste allumée ou scintille, et une erreur de téléversement. La partie Dépannage du projet donne une liste générale de 10 étapes qui commence par l'alimentation et passe par le téléversement, les numéros de broches, la plaque d'essai, les fils de liaison, la masse, la LED et la résistance. Tu l'as peut-être remarqué : cet ordre est presque le même que celui des couches du début de l'article.
L'aide dans l'application : où regarder quand un projet ne marche pas
- Dépannage : une liste ordonnée sur la page du projet qui commence par « Si votre projet ne fonctionne pas, vérifiez les étapes ci-dessous. » Elle existe sur plus de 170 projets et s'ouvre avec Premium ; sur les projets gratuits aussi, cette partie s'affiche avec Premium. Si tu n'as aucune idée de ce qui ne va pas, c'est l'endroit pour tout vérifier du début à la fin.
- Comprendre le code > Si tu bloques : des paires symptôme et solution propres au code et au circuit de ce projet. Ouvert à tous sur les projets gratuits, avec Premium sur les projets Premium. Si tu peux écrire ton symptôme en une phrase, regarde d'abord ici. Toute la partie est expliquée dans l'article Comprendre le code.
- Reviens aux étapes de Construisons-le ensemble : dans le mode guidé, retourne à 2. Monte le circuit et refais le montage depuis le début avec le câble USB de la carte débranché ; à l'étape 3. Téléverse le code, revérifie la carte et le port dans le menu Outils de l'Arduino IDE. Le mode se souvient de l'étape où tu étais. Son fonctionnement est expliqué dans ton premier projet Arduino.
- Agrandis le schéma : zoome à deux doigts sur le Schéma de circuit et compare ton câblage connexion par connexion ; si tu veux, enregistre-le avec Enregistrer dans la galerie et coche les fils déjà vérifiés. Cette méthode attrape la plupart des pannes de la couche 3.
- La bonne question sur le forum : si tu as tout essayé et que ça ne marche toujours pas, ouvre un sujet dans la catégorie Question dans Apprendre › Forum. Indique la carte, le code complet, les connexions, le comportement attendu et réel et les couches que tu as vérifiées, et ajoute une photo nette du montage. La manière de le rédiger est dans poser une question sur le forum.
Aide-mémoire par symptôme
| Symptôme | Couche à vérifier d'abord | Premier test | Article associé |
|---|---|---|---|
| Rien ne se passe, le voyant ON est éteint aussi | 1. Alimentation | Essaie un autre câble USB et un autre port ; cherche un court-circuit entre 5V et GND | Alimenter une Arduino sur piles |
| Le code ne se téléverse pas, erreur avrdude ou de port | 2. Téléversement | Carte et port dans le menu Outils ; un câble qui transporte les données | Le code Arduino ne se téléverse pas |
| Lignes d'erreur rouges à la compilation | 5. Code | Lis la première ligne d'erreur et va au numéro de ligne indiqué | Erreurs de compilation |
| La LED s'allume mais très faiblement | 4. Valeur, 5. Code | Couleurs de la résistance ; y a-t-il un pinMode(…, OUTPUT) dans setup() ? | Qu'est-ce qu'une LED |
| Capteur toujours à 0 ou toujours à 1023 | 3. Câblage | VCC et GND du capteur, rangée du fil de signal, résistance du pont | Pont diviseur de tension |
| Le bouton semble s'appuyer tout seul | 3. Câblage | Y a-t-il une résistance de rappel ou INPUT_PULLUP est-il utilisé ? | Brancher un bouton |
| Le servo tremble | 1. Alimentation | Alimente le servo avec une source 5 V séparée et relie les masses | Qu'est-ce qu'un servomoteur |
| La carte redémarre au hasard | 1. Alimentation | Retire le moteur ou le relais et teste ; le message de setup se répète-t-il dans le moniteur série ? | L'Arduino redémarre toute seule, brownout de l'ESP32 |
| Caractères incompréhensibles dans le moniteur série | 5. Code | Aligne la vitesse du moniteur série sur la valeur de Serial.begin() | Utiliser le moniteur série |
Pour les enseignants : une fiche de diagnostic en 8 points
Imaginons une classe de 24 élèves avec 8 groupes qui montent des circuits en même temps, et dans les 15 premières minutes six groupes lèvent la main en disant « ça ne marche pas ». Pose la fiche ci-dessous sur la table de chaque groupe et fixe la règle dès le départ : avant de lever la main, parcourez la fiche de haut en bas et notez au dos le point où vous bloquez et ce que vous avez changé. Cela te libère du temps et donne aux élèves des habitudes de résolution de problèmes ; les notes de diagnostic sont aussi une trace du processus utilisable pour l'évaluation. Pour organiser les groupes dans une classe nombreuse, consulte un cours Arduino en classe nombreuse, et pour noter le processus, la grille d'évaluation.
- Symptôme : qu'attendions-nous et que se passe-t-il ? Écrivez-le en une phrase.
- Alimentation : le voyant ON est-il allumé ? Débranchez l'USB : un composant est-il chaud ?
- Téléversement : le téléversement s'est-il terminé sans erreur ? Carte et port sont-ils corrects dans le menu Outils ?
- Carte : après avoir téléversé Blink, le voyant L de la carte clignote-t-il ?
- Câblage : agrandissez le schéma et comptez chaque fil à ses deux extrémités. La masse est-elle commune, les fils sont-ils sur la bonne broche et dans la bonne rangée ?
- Composant : la patte longue de la LED va-t-elle à la broche ? Les anneaux de la résistance correspondent-ils à la valeur de la liste ? VCC et GND sont-ils corrects sur le module ?
- Code : les numéros de broches du code correspondent-ils au circuit ? En affichant des points de contrôle dans le moniteur série, lequel apparaît en dernier ?
- Capteur et étape suivante : la valeur du capteur dans le moniteur série est-elle logique et change-t-elle quand les conditions changent ? Si ce n'est toujours pas résolu, regardez Si tu bloques et Dépannage, puis appelez l'enseignant. Ne changez qu'une chose à la fois et prenez des notes.
Le diagnostic est une compétence et il s'accélère à chaque panne : une recherche qui prend 20 minutes sur ton premier projet descend à 3 minutes au cinquième, parce que tu commences à deviner la couche à partir du symptôme. La prochaine fois qu'un projet ne marche pas, ouvre cet ordre avant de débrancher le moindre fil et avance de haut en bas. Les petits projets comme la veilleuse de cet article sont idéaux pour s'entraîner ; dans l'application BlueGrays, chacun des 60 projets gratuits est fourni avec son schéma de circuit, son code et la partie Comprendre le code, si bien qu'à la prochaine panne tu sauras déjà où regarder.
Questions fréquentes
Pourquoi mon projet Arduino ne fonctionne pas ?
Les causes les plus fréquentes sont, dans l'ordre, un problème d'alimentation, un code qui n'est jamais arrivé sur la carte, une masse commune oubliée ou un fil décalé sur la plaque d'essai, une LED à l'envers ou une résistance de mauvaise valeur, et un mauvais numéro de broche dans le code. En les vérifiant dans cet ordre et en ne changeant qu'une chose à la fois, tu trouves en général la panne en 10 minutes.
Comment savoir si mon Arduino est en panne ?
Débranche tout, relie la carte uniquement avec le câble USB et téléverse l'exemple Blink. Si le voyant ON est allumé, que le téléversement se termine sans erreur et que le voyant L clignote, la carte est très probablement en bon état et le problème vient du montage ou du reste du code. Si la carte n'apparaît pas du tout comme port, essaie d'abord un autre câble de données et un autre port USB.
Pourquoi mon code Arduino se téléverse mais ne fonctionne pas ?
Vérifie d'abord que le téléversement s'est vraiment terminé ; s'il y a une ligne d'erreur, la carte exécute l'ancien code. Si le téléversement est bon, compare les numéros de broches du code au circuit, vérifie que setup() contient les lignes pinMode et ajoute un Serial.println() à la fin de setup() pour voir dans le moniteur série si le programme arrive jusque-là.
Pourquoi le moniteur série affiche des caractères bizarres ?
La vitesse du moniteur série ne correspond pas à la valeur de Serial.begin() dans ton code. Si le code indique 9600, règle aussi 9600 en bas à droite du moniteur série. Sur l'ESP32, les messages de démarrage sont envoyés à 115200 bauds, il est donc normal de voir quelques lignes illisibles à 9600.
Comment tester un circuit Arduino sans multimètre ?
Les voyants ON et L de la carte renseignent sur l'alimentation et la carte, et les valeurs analogRead affichées dans le moniteur série montrent le signal du capteur. Remplacer un fil ou une LED suspects par une pièce qui marche à coup sûr remplace le test de continuité. La valeur d'une résistance se lit sur ses anneaux de couleur et se confirme avec le calculateur de code couleur.
Pourquoi mon capteur analogique Arduino affiche toujours 0 ou 1023 ?
Toujours 0 signifie le plus souvent que la ligne de signal va à GND ou que le capteur n'est pas alimenté ; toujours 1023, que la ligne de signal est reliée directement au 5V ou que la résistance du pont manque. Vérifie le VCC et la GND du capteur, que le fil de signal est dans la bonne rangée et, pour une LDR par exemple, que la résistance de 10 kΩ est bien en place.
Projets à réaliser après cet article
Voir tous les projets
Veilleuse avec LDR
Une petite veilleuse qui s'allume toute seule quand il fait nuit et s'éteint au matin. Un capteur de lumière mesure la clarté de la pièce, et l'Arduino allume la LED quand il fait assez sombre puis l'

Mesurer l'intensité lumineuse avec une LDR
Envie de voir en chiffres à quel point ta chambre est lumineuse ? Le LDR, une petite pièce sensible à la lumière, mesure la lumière ambiante, et l'Arduino écrit la valeur sur l'écran de ton ordinateur

Clignotement d'une LED
Le tout premier bonjour de l'électronique : allumer et éteindre une seule LED. L'Arduino allume et éteint la LED à intervalles très courts, la lumière clignote donc rapidement. Tu vois de la façon la

Allumer une LED avec un bouton-poussoir (Push)
Comme une sonnette : la lumière reste allumée tant que tu appuies et s'éteint quand tu relâches. L'Arduino surveille le bouton en permanence ; tant qu'il est enfoncé la LED est allumée, et dès que tu

Allumer et éteindre une LED avec un bouton
Un appui et la lumière s'allume, un deuxième et elle s'éteint, exactement comme l'interrupteur de ta chambre. L'Arduino remarque chaque appui et fait passer la LED à l'état inverse, en attendant un co

HC-SR04 Mesure de la distance (affichage en série)
Le capteur HC-SR04 fonctionne comme une chauve-souris qui trouve son chemin dans le noir : il envoie un son que tu ne peux pas entendre, écoute l'écho et mesure à quelle distance se trouve l'objet dev

Température et humidité avec DHT11
Quelle température fait-il dans ta chambre, et l'air est-il humide ou sec ? Le capteur DHT11 mesure la température et l'humidité, et l'Arduino affiche les valeurs sur un écran LCD à deux lignes, mises

Allumage d'une LED externe sur le Raspberry Pi Pico (plaque d'essai)
Après la LED intégrée du Pico : connecter une LED externe à la maquette et la contrôler via la broche GP14. Ce projet vous permet d’apprendre comment utiliser n’importe quelle broche GPIO à usage général du Pico en sortie, de comprendre la polarité de la LED (grande patte = anode/+, petite patte = cathode/–) et de découvrir pourquoi une résistance de limitation de courant (220 Ω) est indispensable. Si vous n'installez pas cette résistance, un courant excessif traversera la LED et celle-ci risque
Autres articles
Application BlueGrays
Réalise ce montage pas à pas sur ton téléphone
Schéma, code et liste des composants sur un seul écran. Plus de 200 projets Arduino, ESP32 et Pico à réaliser.
Scanne avec ton téléphone
Pointe l’appareil photo vers le code : la boutique d’applications de ton téléphone s’ouvre.
ou ouvre la boutique

