Pourquoi Arduino se réinitialise-t-il automatiquement ? Voici quoi faire
Lorsque j’ai commencé à travailler avec Arduino, l’une des nombreuses erreurs que j’ai rencontrées était la réinitialisation automatique. Je n’ai pas trouvé beaucoup d’aide sur Internet, j’ai donc dû trouver comment corriger cette erreur par moi-même. J’ai pensé écrire cet article utile expliquant comment réparer un Arduino qui se réinitialise automatiquement, en fonction de mon expérience.
Pourquoi Arduino se réinitialise-t-il automatiquement ? Ce problème se produit en raison de dysfonctionnements matériels et d’erreurs de programmation. Les plus courants sont :
- Plongez dans la puissance
- Utiliser une charge lourde
- Erreurs de programmation
- Connexion USB lâche
- Redémarrage de l’ordinateur
En réalisant mes projets avec des cartes Arduino, j’ai réussi à découvrir de nombreuses raisons pour lesquelles Arduino se réinitialise automatiquement. Des erreurs mineures dans le matériel et certaines erreurs de codage sont les principaux responsables de ce problème. Dans cet article, j’expliquerai en détail quels sont ces problèmes et comment vous pouvez vous en débarrasser en un rien de temps, en me basant sur mes expériences personnelles.
Qu’est-ce que la réinitialisation automatique ?
La fonction de réinitialisation d’Arduino démarre le programme à partir de la première ligne de code. Les méthodes habituelles de réinitialisation d’Arduino consistent à utiliser le bouton de réinitialisation, la broche de réinitialisation, la fonction de réinitialisation ou une minuterie de surveillance. Il existe 5 façons simples de réinitialiser une carte Arduino si nous voulons réinitialiser Arduino volontairement.
Mais si la réinitialisation automatique se produit de manière aléatoire, sans commande de l’utilisateur, cela pose davantage de problème puisque personne ne souhaite que son Arduino se réinitialise au milieu d’un projet qui s’exécute avec succès.
Vous pouvez identifier la réinitialisation automatique lorsque les mini LED de votre carte s’éteignent pendant une seconde, puis recommencent à clignoter. Ou lorsque votre projet cesse de fonctionner pendant une seconde et commence à fonctionner dès la première ligne de code.
Pourquoi Arduino se réinitialise-t-il automatiquement ?
La réinitialisation automatique peut gâcher les choses et détruire l’objectif de votre projet. Pour empêcher Arduino de se réinitialiser automatiquement, vous devez d’abord savoir pourquoi cela se produit, ce qui peut être dû à plusieurs raisons. Jetons-les un par un.
Raison n°1 : baisse de puissance
L’Arduino peut se réinitialiser automatiquement en cas de baisse de puissance, ce qui signifie que l’énergie diminue jusqu’à zéro puis remonte à la tension de fonctionnement, ce qui éteint momentanément l’Arduino puis le rallume.
Une baisse de puissance peut se produire lors de l’utilisation d’une alimentation instable dans votre projet Arduino.
Une alimentation instable peut être une batterie bon marché, une tension instable de l’adaptateur CC ou une baisse de puissance provenant du port USB de votre ordinateur.
Une alimentation parfaite pour Arduino est celle qui fournit une tension continue constante de 5 V sans aucun creux susceptible de provoquer le redémarrage du microcontrôleur.
Raison n°2 : utiliser une charge lourde
Utilisez-vous une charge lourde dans votre projet Arduino, comme un moteur ? Les charges lourdes nécessitent une puissance supplémentaire et si la puissance fournie à votre projet est insuffisante, Arduino se réinitialisera automatiquement et commencera à exécuter le programme depuis le début.
Toute fluctuation d’énergie peut provoquer le redémarrage de l’Arduino, sans même que l’utilisateur sache ce qui s’est passé.
Raison n°3 : erreur de programmation
Des erreurs de programmation spécifiques peuvent également entraîner une réinitialisation automatique de votre Arduino.
Identifier une erreur de programmation comme raison de la réinitialisation automatique de l’Arduino est une tâche difficile car elle peut vous obliger à inspecter l’intégralité de votre code Arduino à la recherche d’erreurs, qu’il s’agisse d’un programme composé de 2 lignes de code ou de 200 lignes.
L’une de ces erreurs consiste à allouer une petite taille à un tableau ou à une mémoire tampon alors qu’il tente de stocker plus de données que la mémoire ne peut en stocker. Lorsque cela se produit, Arduino réinitialisera son code et commencera à l’exécuter depuis le début.
Raison n°4 : connexion USB lâche
Utilisez-vous un câble USB pour alimenter votre carte Arduino ? Le câble USB est-il parfaitement inséré dans le port USB ?
Un câble USB mal ajusté peut être à l’origine de la réinitialisation automatique dans Arduino, car le connecteur USB desserré obtient parfois la pleine puissance, et d’autres fois, il ne reçoit aucune alimentation.
Lorsque l’Arduino reçoit la pleine puissance du PC, il fonctionne parfaitement, mais lorsque la puissance tombe à zéro, il cesse de fonctionner puis reprend lorsqu’il est à nouveau alimenté, provoquant une réinitialisation automatique.
De même, si vous utilisez une autre source d’alimentation, une connexion mal ajustée pourrait être à l’origine de la réinitialisation automatique.
Raison n°5 : redémarrage de l’ordinateur
Si vous utilisez votre ordinateur pour alimenter Arduino, vous devez faire attention au redémarrage et également garder un œil sur la minuterie de mise en veille.
Votre projet Arduino peut se réinitialiser si votre ordinateur redémarre ou se met en veille pendant un certain temps lorsqu’il est inactif.
Alimenter Arduino via un PC ne signifie pas que vous garderez un œil sur l’ordinateur pendant toute la durée de l’exécution de votre projet. Il est donc probable que vous ne remarquiez pas le redémarrage ou la mise en veille automatique de votre ordinateur, ce qui entraînerait la réinitialisation d’Arduino.
Comment empêcher Arduino de se réinitialiser automatiquement ?
Maintenant que vous savez pourquoi Arduino se réinitialise automatiquement, passons au dépannage du problème.
Voici ce que vous pouvez faire si votre carte Arduino se réinitialise automatiquement :
Vérifiez l’alimentation
Si votre carte Arduino se réinitialise automatiquement en raison d’une baisse de puissance, vous devez alors vérifier la tension de sortie de l’alimentation que vous utilisez dans le projet. Tout ce dont vous avez besoin est un multimètre avec son bouton réglé sur la tension continue.
Vous pouvez en savoir plus sur l’utilisation d’un multimètre pour vérifier les alimentations ici .
Si votre alimentation est stable, votre multimètre affichera une lecture constante d’environ 5 Volts. Néanmoins, en cas d’alimentation électrique instable, vous le remarquerez immédiatement sur l’écran du multimètre. La valeur de tension chutera puis augmentera à nouveau, ce qui montre une instabilité.
Vérifiez les besoins en énergie de votre charge
Une autre raison pour laquelle votre carte Arduino se réinitialise est que vous utilisez une charge importante dans votre projet.
Pour résoudre ce problème, vérifiez les exigences électriques de votre charge à partir de sa fiche technique et confirmez si votre alimentation répond à ces exigences. Sinon, vous devriez opter pour une meilleure alimentation ou remplacer votre charge par quelque chose que votre alimentation peut prendre en charge.
Vérifiez l’allocation de mémoire de votre programme
Des erreurs de programme peuvent entraîner la réinitialisation d’Arduino. Par conséquent, vous devez vérifier l’allocation de mémoire de votre programme Arduino.
Si vous constatez que certains tableaux et variables utilisent plus de mémoire que ce qui leur est alloué, vous devez alors augmenter l’allocation de mémoire de ces tableaux et variables.
Remplacez votre câble USB
Si votre câble USB est à l’origine du problème, vous devez le remplacer par un nouveau. Assurez-vous que votre nouveau câble USB s’insère parfaitement dans le port USB de votre ordinateur.
Une bonne idée serait d’acheter le câble USB Arduino d’origine sur le site Web Arduino , et je parie qu’avec cela, vous ne rencontrerez pas de tels problèmes.
Augmentez la minuterie de mise en veille de votre PC
Si vous utilisez votre ordinateur pour alimenter Arduino, vous devez vous assurer qu’il ne se met pas en veille lorsqu’il est laissé inactif. La meilleure façon est d’augmenter la minuterie de mise en veille via le panneau de commande. Vous pouvez également régler la minuterie sur « jamais », ce qui signifie que votre ordinateur ne passera jamais en mode veille même s’il reste inactif pendant 24 heures.
Pour en savoir plus sur l’ajustement des paramètres de veille, cliquez ici .
Une réinitialisation automatique peut être un gros problème si vous utilisez un compteur ou une minuterie dans votre projet Arduino, car la réinitialisation redémarrerait le compteur/minuterie à partir de zéro, perdant ainsi le décompte atteint. Cela irait à l’encontre de l’objectif de nombreux projets ; par conséquent, vous devez considérer la réinitialisation automatique comme un problème et la rectifier si nécessaire.
Avez-vous envie d’en savoir plus sur les raisons pour lesquelles votre Arduino se réinitialise automatiquement ?
Consultez les fils de discussion suivants :
- Le code de traitement redémarre mon code Arduino (element14.com).
- Pourquoi ce code provoque-t-il une réinitialisation aléatoire de mon Arduino ? (reddit.com).
- Arduino se réinitialise périodiquement tout en étant alimenté via une alimentation externe (instructables.com).
- Qu’est-ce qui peut provoquer le redémarrage continu d’Arduino ? (stackoverflow.com).
- Pourquoi Arduino redémarre-t-il automatiquement ? (forum.arduino.cc)