Kann ich den Arduino abrupt ein- und ausschalten, ohne ihn zu beschädigen? Wenn ich ein Produkt entwerfe, das einen Ein / Aus-Schalter hat, muss ich eine Verzögerung vor dem Ausschalten der Stromversorgung berücksichtigen, damit der Mikrocontroller eine Art sauberes Ausschalten durchführen kann? Oder ist es in Ordnung, einfach einen SPST-Schalter an die Stromleitung des Arduino anzuschließen?
(Mit dem Entwerfen eines Produkts meine ich die unabhängige Verwendung eines ATmega mit Arduino-Code auf einer benutzerdefinierten Karte mit anderen Komponenten.)
Edit: Mit Arduino meine ich nur das Flashen des Arduino-Bootloaders, damit ich in Arduino anstelle von AVR programmieren kann. Der Chip, den ich verwenden möchte, ist Atmel atmega328P. Ich benötige kein EEPROM.
Antworten:
Ja, es ist sicher, einen Arduino abrupt auszuschalten.
Na ja, meistens sicher.
Die in den verschiedenen Arduinos verwendeten Prozessoren haben drei Arten von Speicher:
Flash - Wo Ihr Programm gespeichert ist. Ihr Programm kann Inhalte von hier lesen, aber nicht schreiben.
RAM - Hier werden Ihre Programmvariablen gespeichert, während das Programm ausgeführt wird. Die Daten hier verschwinden, wenn Sie den Arduino ausschalten. Ihr Programm liest und schreibt hier ständig.
EEPROM - Wo Ihr Programm Sachen speichern kann, wird es das nächste Mal benötigt, wenn es ausgeführt wird. Normalerweise Dinge, die sich selten ändern, aber immer benötigt werden, wenn das Programm ausgeführt wird. Wie Kalibrierungsdaten für einen Sensor.
Die meisten Programme verwenden nur Flash und RAM. Sie können den Arduino mit diesen Programmen jederzeit ein- und ausschalten.
Wenn Ihr Programm in das EEPROM schreibt, kann das Ausschalten der Stromversorgung während des Schreibens in das EEPROM die dortigen Daten beschädigen.
Wie sich das auf Ihr Programm auswirkt, hängt von den Daten ab.
Wenn dadurch die Kalibrierungsdaten für einen Sensor verfälscht werden, erhalten Sie schlechte Messergebnisse für alles, was der Sensor erkennt.
Wenn Sie Prüfsummen mit Ihren EEPROM-Daten schreiben, können Sie die Beschädigung feststellen und Ihr Programm wird möglicherweise heruntergefahren, anstatt fehlerhafte Daten zu verwenden.
Sie wissen natürlich, ob Ihr Programm in das EEPROM schreibt - Sie müssen eine separate Bibliothek laden und spezielle Befehle zum Lesen und Schreiben in den EEPROM-Bereich verwenden.
Die Gefahr besteht wirklich nur in diesem kurzen Moment, wenn Sie in das EEPROM schreiben. Da dies selten vorkommt (und normalerweise nur unter kontrollierten Bedingungen), kommt es auch selten vor, dass die EEPROM-Daten beschädigt werden.
Zusammenfassung:
Sie können einen Arduino ohne Gefahr nach Belieben ein- und ausschalten, es sei denn, Sie verwenden das EEPROM - und selbst dann werden Sie die meiste Zeit damit davonkommen.
quelle
Ja, Sie können das Gerät schnell ausschalten, ohne es zu beschädigen.
Der einzige Grund, warum ich eine Verzögerung beim Ausschalten des Stromkreises feststellen kann, sind Sicherheits- oder Funktionsgründe für Ihre externen Peripheriegeräte.
ZB beim Ausschalten müssen die Daten nichtflüchtig gespeichert werden. Oder beim Ausschalten muss sichergestellt werden, dass sich ein Mechanismus beim Ausschalten in einer sicheren Position befindet.
Dies würde eine Überwachung der Versorgung und eine ausreichende Haltekapazität erfordern, um den Prozessor und die jeweils erforderliche Funktion auszuführen.
quelle
Der Begriff Arduino bezieht sich auf ein sehr breites Spektrum von Mikrocontroller-Boards, die verschiedene unterschiedliche Chips aufweisen, und der Effekt des Leistungsverlusts variiert daher. Daher würde ich empfehlen, die genaue Teilenummer des verwendeten ATmega-Chips anzugeben. Im Allgemeinen gilt für Chips wie ATmega328 jedoch Folgendes.
Ja, Sie können die Stromversorgung eines Arduino trennen, ohne etwas zu beschädigen oder zu beschädigen. Beachten Sie jedoch Folgendes:
Wenn Ihr Code ein EEPROM verwendet, wird der Flash möglicherweise beschädigt oder die Daten werden nicht korrekt gespeichert, wenn das Gerät Daten blinkt und die Stromversorgung unterbrochen wird.
Ein plötzlicher Stromausfall kann, abgesehen vom EEPROM, nur den mit Arduino verwendeten Geräten (z. B. einer SD-Karte) schaden.
quelle