Si j'ai un Arduino, puis-je brusquement allumer et éteindre sans le corrompre? Si je conçois un produit qui a un interrupteur marche / arrêt, dois-je incorporer un délai avant de couper l'alimentation pour que le microcontrôleur puisse effectuer une coupure propre de quelque sorte? Ou est-il correct de simplement connecter un commutateur SPST à la ligne d'alimentation de l'Arduino?
(En concevant un produit, je veux dire utiliser un ATmega avec du code Arduino indépendamment sur une carte personnalisée avec d'autres composants.)
Edit: Par Arduino, je veux juste dire flasher le chargeur de démarrage Arduino afin que je puisse programmer en Arduino au lieu d'AVR. La puce que je veux utiliser est Atmel atmega328P. Je n'ai pas besoin d'utiliser d'EEPROM.
Réponses:
Oui, il est sûr d'arrêter brusquement un Arduino.
Eh bien, surtout en sécurité.
Les processeurs utilisés dans les différents Arduinos ont trois types de mémoire:
Flash - Où votre programme est stocké. Votre programme peut lire des trucs d'ici, mais ne peut pas les écrire.
RAM - Où vos variables de programme sont conservées pendant l'exécution du programme. Les données disparaissent ici lorsque vous éteignez l'Arduino. Votre programme lit et écrit ici en permanence.
EEPROM - Où votre programme peut stocker des éléments dont il aura besoin lors de sa prochaine exécution. Habituellement, les choses changent rarement, mais sont nécessaires à chaque exécution du programme. Comme les données d'étalonnage d'un capteur.
La plupart des programmes utilisent uniquement Flash et RAM. Vous pouvez allumer et éteindre l'Arduino à tout moment avec ces programmes.
Si votre programme écrit sur l'EEPROM, la coupure de l'alimentation pendant l'écriture sur l'EEPROM pourrait corrompre les données qui s'y trouvent.
La manière dont cela affecte votre programme dépend des données.
Si cela corrompt les données d'étalonnage d'un capteur, vous obtiendrez de mauvaises mesures pour tout ce que le capteur détecte.
Si vous écrivez des sommes de contrôle avec vos données EEPROM, vous pourriez détecter la corruption et votre programme pourrait s'arrêter au lieu d'utiliser des données incorrectes.
Vous savez, bien sûr, si votre programme écrit dans l'EEPROM - vous devez charger une bibliothèque séparée et utiliser des commandes spéciales pour lire et écrire dans la zone EEPROM.
Le danger n'est vraiment que dans ce court instant où vous écrivez à l'EEPROM. Comme cela se produit rarement (et généralement uniquement dans des conditions contrôlées), il sera également rare de corrompre les données EEPROM.
Sommaire:
Vous pouvez allumer et éteindre un Arduino à volonté sans danger, sauf si vous utilisez l'EEPROM - et même dans ce cas, vous vous en sortirez la plupart du temps.
la source
Oui, vous pouvez rapidement couper l'alimentation sans la corrompre.
La seule raison pour laquelle je peux voir un retard dans la mise hors tension du circuit serait pour des raisons de sécurité ou de fonctionnement de vos périphériques externes.
Par exemple, à la mise hors tension, vous devez enregistrer les données dans une mémoire non volatile. Ou à la mise hors tension, vous devez vous assurer qu'un mécanisme est dans une position sûre à la mise hors tension.
Cela nécessiterait une surveillance de l'approvisionnement et une capacité de rétention suffisante pour faire fonctionner le processeur et la fonction qui devait être exécutée.
la source
Le terme Arduino fait référence à un très large spectre de cartes microcontrôleurs qui ont différentes puces différentes, et l'effet de la perte de puissance varie donc. Donc, je vous recommande de mettre le numéro de pièce exact de la puce ATmega utilisée. Mais, d'une manière générale pour les puces comme ATmega328, ce qui suit est valable.
Oui, vous pouvez couper l'alimentation d'un Arduino sans corrompre ou endommager quoi que ce soit, mais gardez à l'esprit les choses suivantes:
Si votre code utilise l'EEPROM, le flash peut être corrompu ou les données peuvent ne pas être stockées avec précision lorsque l'appareil clignote et que l'alimentation est coupée.
La seule façon dont une coupure de courant soudaine peut nuire en dehors de l'EEPROM est aux appareils utilisés avec Arduino (par exemple une carte SD).
la source