Objets animés : aide au débogage

Mallette Objets animés : Aide au débogage

Retour à la mallette

Retour à la table des matières

Le logiciel et la carte Arduino peuvent parfois se montrer capricieux ; alors voici un petit guide qui vous aidera à déboguer votre montage en cas de problème !

 

Table des matières

 1. Niveau matériel

1.1. Un composant ne fonctionne pas

1.1.1. La DEL ne fonctionne pas
1.1.2. Le bouton ne fonctionne pas ou fonctionne mal
1.1.3. La photorésistance ne fonctionne pas ou mal
1.1.4. Le servomoteur ne fonctionne pas

1.2. L’Arduino ne fonctionne pas

1.2.1. La carte Arduino ne s’allume pas alors qu’elle est alimentée
1.2.2 La carte Arduino s’allume, mais n’est pas détectée par le logiciel

2. Niveau Logiciel

2.0. Comment savoir de quelle erreur il s’agit ?

2.1. Erreurs d’ouverture de port
2.2. Erreur de sélection de port
2.3. Erreur de type de carte
2.4. ArduBlock ne fait rien

 1. Niveau matériel

1.1. Un composant ne fonctionne pas

1.1.1. La DEL ne fonctionne pas

Il peut y avoir plusieurs causes au non fonctionnement d’une DEL, et voici les vérifications à faire pour établir la cause de la panne :

  • Est-ce que la DEL est branchée dans le bon sens ? (La patte la plus longue est celle reliée au (+). Si vous ne parvenez pas à distinguer les pattes l’une de l’autre, regardez à l’intérieur de la DEL : elle est composée de deux parties : une grosse comportant un méplat et une petite juste en dessous. La patte reliée au méplat est la patte (-) )
  • Est-ce que la résistance utilisée n’est pas trop importante ? (on préférera une résistance entre 100Ω et 300Ω)
  • Est-ce que le (-) de la DEL est bien relié à la broche GND de l’Arduino, et le (+) à la broche numérique (aussi appelée Digital Pin) que le programme contrôle ?
  • Est-ce que la carte Arduino s’allume quand elle est sous tension ? (si ce n’est pas le cas, veuillez vous référer à la section dédiée)
  • Est-ce qu’il n’y a pas de faux contact (notamment entre la résistance et les pattes de la DEL)

Si toutes les réponses à ces questions sont positives, alors changez de broche numérique. Si cela ne fonctionne pas, il se peut que votre DEL ne fonctionne plus. Changez-la. Si cela ne fonctionne toujours pas, il est probable que votre programme contienne des erreurs. Réécrivez-le en partant de 0.

N.B : ces vérifications s’appliquent à la DEL et à la DEL bicolore, mais pas aux DEL NeoPixel

1.1.2. Le bouton ne fonctionne pas ou fonctionne mal

A) Le bouton retourne une valeur inversée (BAS quand il est enfoncé et HAUT quand il est relâché)

Ceci peut arriver quand au niveau matériel on inverse le +5V et le GND. Vérifiez donc que vous avez bien effectué les connections comme demandées dans la Fiche Pédagogique « bouton poussoir » ou dans la Fiche aide-mémoire « composants ». Si les valeurs ne sont toujours pas de nouveau BAS quand le bouton est relâché et HAUT quand il est appuyé, essayez avec un autre bouton et/ou une autre carte Arduino ; ou bien laissez ainsi et inversez simplement dans votre programme les valeurs.

B) Le bouton ne fonctionne pas

On sait que le bouton ne fonctionne pas quand la DEL qu’on essaye de contrôler avec ne répond pas correctement (clignotements intempestifs, voir clignotements aléatoires indépendants de l’action du bouton). Essayez dans un premier temps de répondre à ces questions :

  • Est-ce que le bouton est bien branché sur la breadboard ? (Repérez deux pattes qui se trouvent sur la même face du bouton poussoir. Elles doivent se trouver sur la même colonne, mais pas sur la même ligne (voir la vidéo). N’hésitez pas à forcer un peu quand vous connectez le bouton à la breadboard, mais veillez à ne pas déformer de trop les pattes du bouton)
  • Est-ce que le schéma de branchement indiqué sur la Fiche Pédagogique « bouton poussoir » ou sur la Fiche aide-mémoire « composants » est bien respecté ?
  • Est-ce que la carte Arduino reste allumée lorsque vous appuyez sur le bouton ? (Si non, c’est soit que votre résistance n’est pas assez forte (normalement à partir de 220Ω il n’y a aucun risque), soit que quelque part dans votre circuit, il y a un court-circuit entre le +5V et le GND. Il se peut aussi que votre bouton aie des faux-contacts internes (auquel cas il devient inutilisable).

Si toutes les réponses à ces questions sont positives, alors il est probable que votre bouton ne fonctionne plus. Essayez d’abord de changer de broche numérique. Si cela ne fonctionne pas, Changez-le. Et si cela ne fonctionne toujours pas, il est probable que votre programme contienne des erreurs. Réécrivez-le en partant de 0.

1.1.3. La photorésistance ne fonctionne pas ou mal

A) Les valeurs retournées par la photorésistance sont inversées

Il se peut qu’en ouvrant votre moniteur Série (comme dans la partie « Aller plus loin » de la Fiche pédagogique « photorésistance »), vous ayez des valeurs inversées par rapport à celles que vous étiez obtenir (par exemple, dans cette fiche pédagogique, plus il fait sombre, plus vous devez avoir une valeur importante). Cela arrive lorsque vous avez mal fait le montage (inversion du +5V et du GND notamment). Revoyez donc le circuit.

B) La photorésistance ne fonctionne pas

On sait que la photorésistance ne fonctionne pas quand on lit sur le moniteur série d’Arduino les valeurs de la photorésistance (comme dans la partie « Aller plus loin » de la Fiche pédagogique « photorésistance »). Si ces valeurs semblent aléatoires et/ou qu’elles ne changent pas quand on fait de l’ombre à la photorésistance, c’est qu’elle n’est pas détectée par Arduino. Procédez donc aux vérifications suivantes :

  • Est-ce que le montage est bien respecté comme indiqué sur la Fiche pédagogique « photorésistance » ou sur la Fiche aide-mémoire « composants » ?
  • Est-ce qu’elle est bien connectée sur une broche analogique (broche dont le nom commence par A suivi d’un chiffre. e.g : la broche « A0 »)
  • Est-ce qu’il n’y a pas de faux contact ? (notamment entre les pattes de la photorésistance et la résistance)
  • Est-ce que la carte Arduino reste allumée quand vous faites varier la luminosité ? (Si non, il est probable qu’il y ait un court-circuit entre le +5V et le GND de l’Arduino quelque part dans votre montage.)

Si toutes les réponses à ces questions sont positives, alors il est probable que votre photorésistance ne fonctionne pas. Essayez de la connecter sur une autre broche analogique. Si cela ne fonctionne toujours pas, changez de photorésistance. Et si cela ne fonctionne toujours pas, il est probable que votre programme contienne des erreurs. Réécrivez-le en partant de 0.

1.1.4. Le servomoteur ne fonctionne pas

Si votre servomoteur ne répond pas ou ne fait pas ce que vous voulez, répondez aux questions suivantes :

  • Est-ce que la carte Arduino est sous tension et allumée ? (si elle est sous tension mais éteinte, vous avez probablement inversé le 5V et le GND. Inversez donc ces deux fils)
  • Est-ce que votre servomoteur, dès qu’il est alimenté se met à tourner dans un sens jusqu’au maximum de sa trajectoire sans que vous ne l’ayez programmé pour ? (Si il fait un petit mouvement au tout début, c’est normal, mais si il continue sans s’arrêter, c’est que vous avez inversé soit le fil de données avec le GND, soit le fil de données avec le 5V)

Si toutes les réponses à ces questions sont positives, essayez de changer de broche digitale. Si cela ne fonctionne toujours pas, vous avez peut-être mal effectué le branchement (pour rappel : le plus fil le plus foncé doit être relié au GND, celui du milieu (rouge en général) doit être relié au 5V, et le dernier fil (le plus clair en général) doit être relié à une broche Numérique). Sinon, c’est peut-être que votre servomoteur ne fonctionne pas. Changez-le, et si cela ne fonctionne toujours pas, il est probable que votre programme contienne des erreurs. Réécrivez-le en partant de 0.

1.2. L’Arduino ne fonctionne pas

1.2.1. La carte Arduino ne s’allume pas alors qu’elle est alimentée

On sait que la carte Arduino n’est pas allumée lorsqu’on ne voit aucune DEL intégrée à la carte s’allumer. Il peut y avoir diverses raisons à cela :

  • Le câble d’alimentation utilisé est cassé (ce n’est pas forcément visible car il peut être sectionné à l’intérieur de la gaine). Essayez donc d’abord de changer de câble.
  • Il y a un court-circuit entre le 5V et le GND quelque part dans votre circuit. Il s’agit d’une sécurité de l’Arduino qui coupe l’alimentation quand le 5V et le GND sont directement reliés entre eux sans aucune résistance. Assurez-vous donc qu’il n’y a pas de faux contact dans votre circuit. Il se peut aussi que certains de vos composants soient défectueux. Vous pouvez donc essayer de les changer.
  • Vous avez alimenté votre Arduino avec une intensité ou une tension trop importante, et/ou certains des composants sont très chauds. Votre carte Arduino est donc défectueuse. Essayez de nouveau avec une autre carte.
    • Cela peut se produire quand vous alimentez l’Arduino via la prise d’alimentation jack. Sachez que la carte Arduino Uno doit être alimentée entre 5V et 12V avec une intensité n’excédant pas 1 ampère. Si vous ne l’alimentez que via le port USB, avec le PC ou une batterie externe, il n’y a à priori aucun risque que le problème ne se pose.

Si le problème ne vient pas de l’Arduino, il vient sans doute de l’alimentation elle-même.

1.2.2 La carte Arduino s’allume, mais n’est pas détectée par le logiciel

  • Votre câble est peut-être défectueux. Essayez avec un autre.
  • Le port USB côté ordinateur ne fonctionne peut-être pas. Essayez avec un autre port USB.

Si après avoir essayer de changer le câble et le port USB cela ne marche toujours pas, le problème est probablement au niveau logiciel. (Consultez la section dédiée pour en savoir plus) 

2. Niveau Logiciel

2.0. Comment savoir de quelle erreur il s’agit ?

Quand vous téléversez un programme dans l’Arduino, les petites DEL intégrées à la carte nommées TX et RX se mettent à clignoter. Si ce n’est pas le cas, c’est que votre code ne s’est pas envoyé. Pour connaître la cause de cette erreur, prenez la fenêtre principale du logiciel Arduino (celle qui s’ouvre au démarrage du logiciel).

Fenêtre principale du logiciel Arduino

Vous regardez la bande noir. Si vous y voyez du texte orange ou que la bande bleu au dessus est orange, c’est qu’il y a une erreur.
Nous vous proposons ci-après une liste d’erreurs courantes et comment les rectifier.

2.1. Erreurs d’ouverture de port

Vous voyez une ligne dans la bande noire avec marqué :

avrdude: ser_open(): can’t open device « /dev/ttyACM0 »: No such file or directory

Il se peut que :

  • Votre carte Arduino soit mal branchée. Vérifiez l’état du câble USB, changez-le si il le faut, essayez de changer de port USB.
  • Si vous êtes sous Windows, attendez bien que votre ordinateur vous dise « le périphérique a bien été installé » ou « le périphérique est prêt à être utilisé ».
  • Si vous êtes sous Linux, il se peut que vous n’ayez pas les droits pour utiliser les ports.
    • Dans ce cas, ouvrez une fenêtre terminal et tapez les commandes :
    • sudo usermod -a -G tty Votre_Nom_d-utilisateur
    • sudo usermod -a -G dialout Votre_Nom_d-utilisateur
    • Ces commandes vous permettront d’ajouter les droits nécessaires à votre utilisateur.
    • Pour plus d’information sur l’installation d’Arduino sur Linux : https://doc.ubuntu-fr.org/arduino

2.2. Erreur de sélection de port

Vous voyez moins de 2 lignes oranges, le code s’est téléversé, mais rien ne se passe. Il est possible que vous n’ayez pas choisis le bon port USB.

  • Allez dans « Outils/ports » et sélectionnez le port sur lequel vous avez branché votre carte Arduino.
  • Si vous ne le voyez pas dans la liste, essayez de débrancher et rebrancher sur un autre port USB.

2.3. Erreur de type de carte

Vous voyez plein de messages d’erreurs dans la bande noire, mais votre Arduino est bien détectée. Il est possible que vous n’ayez pas choisi le bon type de carte.

  • Allez dans « Outils/Type de carte » et sélectionnez votre modèle de carte (ici vous choisirez « Arduino/Genuino UNO »).
  • Si des problèmes persistes, il se peut que ce soit une erreur de programmateur. Allez dans « Outils/Programmateur » et vérifiez que « AVRISP mkll » est bien sélectionné. Si le problème persiste, essayez avec le programmateur « AVRISP ». Si ça ne marche toujours pas, relancez le logiciel.

 2.4. ArduBlock ne fait rien

Lorsque vous appuyez sur téléverser, ArduBlock est censé écrire un programme dans la fenêtre principale du logiciel Arduino. Si vous appuyez sur téléverser, et que vous ne voyez que « void setup() » et « void loop() » ou rien du tout dans la fenêtre principale, et des lignes oranges apparaissent dans la bande noire, c’est que ArduBlock est défectueux.

  • Réinstallez ArduBlock en vous assurant de prendre la version la plus récente.
  • Si cela ne fonctionne toujours pas, essayez de trouver une version d’Arduino plus ancienne.

]]>