Einfache Niederspannungs-Trennschaltung für Arduino

Vorwort:

  • Unter dem Eindruck, dass eine Niederspannungsabschaltung erforderlich ist, um zu verhindern, dass 2x AA NIMH-Akkus jetzt auch entladen und beschädigt werden. (Rechts??)
  • Im Einsatz wird dieser Stromkreis üblicherweise einem vollständigen Entladungsereignis ausgesetzt, sofern dies zulässig ist.

Konzept:

  1. Der Momentschalter S1 wird gedrückt gehalten, wodurch Q1 aktiviert wird, um 328p einzuschalten
  2. Sketch beginnt und Setup() ruft digitalWrite(A5, LOW) auf
  3. S1 kann nun freigegeben werden, da Q1 von A5 auf LOW gehalten wird
  4. Die Batterie wird schwach, löst eine Brownout-Erkennung (BOD) aus, setzt 328p zurück und trennt Q1

Anmerkungen:

  • R1 ist ein Widerstandsrad und ich habe mit verschiedenen Werten experimentiert, um es zum Laufen zu bringen. (da ich nicht nachgerechnet habe)
  • Ich habe diese auf Steckbrett montiert, Radio und LCD-Modul sind nicht abgebildet
  • Wenn A5 getrennt ist, funktioniert es gut (während S1 gedrückt gehalten wird), wenn 0 mA am Amperemeter ausgeschaltet sind.
  • Wenn A5 angeschlossen ist, kann es mit einem höheren Wert von R1 (47k) arbeiten, um zu verhindern, dass es selbst hochfährt, aber wenn es ausgeschaltet ist, zeigt das Amperemeter etwa 2 mA an.

Diese 2 mA reichen immer noch aus, um die Batterie erheblich zu entladen, wenn sie einige Zeit leer bleibt. Ich vermute, die 2 mA und die Notwendigkeit eines 47-k-Widerstands hängen mit dem zusammen, was als A5 "undicht" erscheint, während Arduino ausgeschaltet ist.

Ich konnte den Stromverbrauch von 2 mA im ausgeschalteten Zustand reduzieren, indem ich einen Pullup-Widerstand zwischen A5 und + V legte

Ich habe wenig Platz, also muss ich die Dinge einfach halten.

Rückmeldung:

  • Irgendwelche Verbesserungen / Vorschläge, um das Problem mit dem undichten A5 zu umgehen?
  • Oder meine Designanforderungen generell besser erfüllen?

Schaltkreis:

Ihre Frage ist etwas verwirrend, da Sie erwähnen, dass Sie bei getrenntem A5 auf Ihrem Amperemeter 0 ablesen, aber mit der Konfiguration, die Sie über dem Messgerät haben, in Reihe mit Ihrem Versorgungspfad ist, es sei denn, der AtMega328P zieht einen vernachlässigbaren Strom, der nicht registriert wird mit Ihr Zähler, dann stimmt etwas mit Ihrer Aussage nicht. Mir scheint, dass Sie die Transistorbasis im aktiven Zustand mit etwa 1 mA ansteuern. Ich bin mir also nicht sicher, warum der AtMega328P ausgeschaltet ist, wenn Sie 2 mA in die Basis einspeisen? Versuchen Sie außerdem, den Pin in einen hochohmigen Zustand zu versetzen, anstatt A5 niedrig zu treiben.
@sherrellbc, ich spreche davon, wenn Q1 ausgeschaltet/inaktiv ist und somit 328p ausgeschaltet ist. Es wird immer noch ein Amperemeter von 2 mA mit angeschlossenem A5 gezogen. können Sie erklären "versuchen Sie, den Stift in einen hochohmigen Zustand zu versetzen"

Antworten (5)

Ihr Design erfordert, dass Pin A5 die gleiche Spannung wie die Batterie hat, um das System abzuschalten. Das Problem ist, dass Pin A5 nicht mehr hoch bleiben kann, wenn Sie die Stromversorgung vom Arduino trennen – es gibt interne Schutzdioden, die seine Spannung erzwingen, nicht höher als V+ plus dem Diodenabfall (etwa 0,7 V) zu sein.

Die einfachste Lösung besteht darin, einen zweiten Transistor (NPN) hinzuzufügen, der die Logik von Pin A5 umkehrt – wenn A5 hoch ist, ist das System eingeschaltet, und Sie treiben A5 niedrig, um es abzuschalten. Dadurch werden beide Transistoren abgeschaltet und der Ruhestrom sollte Null sein.

Außerdem sollten Sie die Verwendung eines P-Kanal-MOSFET anstelle Ihres PNP-BJT in Betracht ziehen. Es wird effizienter sein: weniger Spannungsabfall zum Arduino im eingeschalteten Zustand und kein verschwendeter Strom durch den Gate-Anschluss.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Ich habe einen N-Kanal-FET anstelle eines NPN-Transistors verwendet. Der Arduino kann es direkt ansteuern, und der einzige "verschwendete" Strom sind die etwa 30 µA, die beim Einschalten des Systems durch R1 fließen.

Ich freue mich auf weitere Details und danke Ihnen für Ihren Beitrag, nur zur Klarstellung, falls Sie es verpasst haben, A5 LOW = 328p ON über Q1 und A5 HIGH oder Floating = Off
+1 für MOSFET-Vorschlag - meiner Erfahrung nach ist einfaches Design mit ihnen viel einfacher. Durch die einfache Verwendung des MOSFET wird das 2-mA-Problem gelöst, das er in dem Beitrag erwähnt.
Es gibt ein Problem mit Ihrer Schaltung, der M2-Mosfet "rastet" ein, sobald er von A5 hoch eingeschaltet ist, geht er nicht aus, obwohl Arduino neu gestartet wird, z. B. braun, er benötigt wahrscheinlich einen Pulldown-Widerstand, wenn möglich
Ich habe deine Beschreibung falsch verstanden. Ich dachte, dass Sie nach dem Zurücksetzen des Arduino A5 aktiv auf Low fahren würden, um alles abzuschalten. Jetzt verstehe ich, dass Sie meinen, dass Sie alles abschalten möchten, wenn der Arduino vom BOD zurückgesetzt wird . Fügen Sie auf jeden Fall einfach einen Pulldown zum Gate von M2 hinzu. Ich werde die Zeichnung aktualisieren.
Um alle Eventualitäten abzudecken, sollten Sie für den Fall, dass der Arduino beim Neustart einen Neustart schafft, den Grund für das vorherige Zurücksetzen überprüfen – wenn es BOD war, sollten Sie A5 sofort niedrig fahren. Ich weiß nicht, wie einfach dies in der Arduino-Softwareumgebung ist. Möglicherweise müssen Sie einen Teil des Bibliothekscodes anpassen.
Danke, der Pulldown funktioniert. Ich könnte die interne Spannung in 328p darstellen, aber das ist nicht allzu nötig. Irgendwann wird es so flach, dass es im BOD stecken bleibt. Aber auch A5 muss nur vorübergehend fallen gelassen werden und kann ohne SW1 nicht neu gestartet werden.
Ich habe die folgenden Durchgangsloch-Mosfets gefunden, die ebenfalls funktionieren: 2N7000 & ZVP4105A

Ich habe mehrere Foren zu diesem Thema gelesen, aber mit meinen Komponenten habe ich einen anderen Ansatz verwendet und ein Gesamtschema von Arduino erstellt, das die Batteriespannung misst und sie ausschaltet, wenn sie die niedrige Spannungsgrenze erreicht.

  • A0 misst die Batteriespannung über Spannungsteiler 1:1
  • D5 ist hoch und wenn die Batteriespannung die Liebhabergrenze erreicht, geht der Arduino-Pin auf LOW
  • 4N35 OPTOCOUPLER wird verwendet, um den Arduino-Pin mit der Batterie im ausgeschalteten Zustand zu entkoppeln
  • Der S1-Taster wird zum Starten verwendet
  • Ich habe den einfachen 2N7000 N-Kanal-MOSFET verwendet, da ich einen Strom von weniger als 100 mA habe. Wenn mehr Strom benötigt wird, würde ich STP36NF06L oder IRL2203 verwenden.

Arduino Batterie messen und schützen

Das ist sicherlich ein neuer Ansatz und einer, der seine Vorzüge haben könnte, danke.
Gibt es eine Möglichkeit, ihn mit dem Schalter sowohl aus- als auch einzuschalten?
vielleicht mit einem anderen Widerstand, um den 1: 1-Teiler zu ändern, um die Spannung für A0 elektrisch zu senken. zB Hinzufügen eines neuen 10kR3 und eines neuen Schalters parallel zu R2. Wenn Sie also den Schalter R2 + R3 drücken, erhalten Sie 5k und der Teiler wäre 1: 2, sodass die 3,7 V 1,23 und nicht 1,85 V im Arduino-A0-Pin betragen (also schaltet Arduino den Stromkreis aus).
Beitrag, der die Schaltung beschreibt: homeduino.blogspot.com
Das ist eine gute Idee. Deinen Blogpost werde ich mir auch anschauen.

Wenn Sie eine Niederspannungsabschaltung benötigen, kann möglicherweise ein spezieller Spannungserkennungs-IC hilfreich sein. Ich habe den Microchip TC54 in ähnlichen Anwendungen gesehen. Es ist ein ziemlich kleines Gerät, sodass es nicht viel Platz einnimmt.

Danke für den Vorschlag, und wenn mir die Optionen mit den gemeinsamen Teilen, die ich habe, ausgehen, werde ich dem nachgehen. Da ich sie bei OS (im in AU) bestellen muss und mein Projekt um mehrere Wochen verzögern könnte.

Versuchen Sie, Pin A5 auf High-Z (Tri-State) einzustellen, wenn Sie ihn nicht verwenden.

Seite 77 hier .

Dazu müssen Sie jedoch die Grenzen der Arduino-Bibliotheken verlassen - aber es ist sehr einfach und nur zwei Codezeilen.

Ich habe nachgesehen und es ist ein bisschen verwirrend für mich, aber wie würde sich etwas davon auswirken, wenn das Arduino ausgeschaltet ist?

Das Problem mit der ersten Schaltung oben auf der Seite besteht darin, dass der AtMega328 über seinen A5-E / A-Pin mit Strom versorgt wird. Strom fließt vom Batterieplus über den BC557-Emitter/Basis-Übergang durch R1 zu A5. Von A5 gelangt es intern über die obere Anode/Kathode der internen oberen Schutzdiode zum Endziel von VCC. Ändern Sie BC557 in einen P-Kanal-Mosfet, und das Problem ist gelöst, da zwischen Source und Gate kein Strom fließt, wie dies bei der Emitter / Bass-Verbindung der Fall ist.