Welche Methoden gibt es, um Brownout-Resets abzumildern oder zu reduzieren?

Wie kann ich die Auswirkungen von Niederspannung verhindern oder reduzieren, die zum Zurücksetzen des Arduino führen? Was wären die besten proaktiven oder reaktiven Methoden, um mit Brownout-Resets umzugehen?

Bearbeiten: Gibt es eine reaktive Möglichkeit, programmgesteuert zu wissen, ob ein Brownout aufgetreten ist?

Antworten (2)

Eine häufige Ursache für einen Abfall der Versorgungsspannung und damit für einen Brownout-Reset von Arduinos ist, wenn zusätzliche Geräte wie Motoren, elektromagnetische Relais oder Hochleistungs-LEDs von derselben Stromquelle wie das Arduino versorgt werden. Das Netzteil muss die Kapazität haben, die geregelte Spannung unter solchen Lasten aufrechtzuerhalten, sonst fällt die Spannung ab.

Dies wird verschlimmert, wenn die Stromquelle USB ist: USB-Anschlüsse liefern standardmäßig bis zu 500 mA, und USB-Hubs ohne Stromversorgung können je nach angeschlossenen USB-Peripheriegeräten sogar noch niedriger ausfallen.

Die Lösung für dieses Problem besteht darin, die Stromversorgung des Hochstromgeräts unabhängig vom Arduino zu beziehen (aber mit miteinander verbundenen Erdungen) und ein BJT-, MOSFET- oder Low-Drive-Current-Relais zu verwenden, um das Gerät vom Arduino zu schalten.

Der andere grundlegende proaktive Ansatz, insbesondere wenn transiente Stromentnahmen (z. B. eine blinkende Hochleistungs-LED oder ein Schrittmotor) einen Versorgungsspannungsabfall verursachen, besteht darin, einen ausreichend großen Kondensator in der Versorgungsleitung zu verwenden (PWRIN im Arduino-Schaltplan ), als Speicherkondensator , um diese Transienten zu überbrücken. Wenn die Stromaufnahme konstant hoch ist, löst dies das Problem jedoch nicht, und es wäre eine Stromquelle mit höherer Nennleistung erforderlich.

Um es vorwegzunehmen: Die beste Methode ist, die Taktfrequenz zu senken. Basierend auf dem Datenblatt des ATmega kann es zuverlässig bei 16 MHz bis hinunter zu etwa 4,5 V betrieben werden. (Beachten Sie, dass diese Spezifikation für einen großen Temperaturbereich gilt, weshalb es so vielen Leuten gelingt, ihre 3,3-V-Platinen mit 16 MHz zum Laufen zu bringen.)

Dies ist jedoch möglicherweise keine Option, es sei denn, Sie erstellen ein benutzerdefiniertes Design.

Andernfalls müssen Sie eine zusätzliche Entkopplung vornehmen, um ein Durchhängen der Versorgungsspannung zu verhindern. Dies hängt natürlich davon ab, welche andere Hardware in der Schaltung vorhanden ist.