Bestimmung der Stromaufnahme von Arduino

Ich versuche, die richtigen Batterien zu bestimmen, die für mein Arduino-Projekt (Atmega 328) erforderlich sind. Ich habe Komponenten, die sowohl Spannungs- als auch Stromwerte haben. Ich addiere alle maximalen Stromangaben der Komponenten, um den idealen mAH zu bestimmen.

Ich stecke derzeit auf dem Atmega328-Chip fest. Ich habe das Datenblatt gelesen, aber ich kann die spezifische Stromaufnahme des Chips nicht finden. Meines Wissens nach beträgt die Betriebsspannung ~ 5 V und die Stromaufnahme des Chips ~ 40 mA. Aber wenn ich 6 Pins (3 analog, 3 digital) verwende und annehme, dass sie alle gleichzeitig 40 mA ausgeben (was unwahrscheinlich ist, da die 3 analogen Pins x-, y-, z-Werte von einem Beschleunigungsmesser aufnehmen), wäre es sicher anzunehmen, dass die Stromaufnahme des Chips 240 mA beträgt? (das klingt falsch)

Bauen, messen, fertig. Es gibt viel zu viele Variablen, um Ihre Frage zu beantworten.

Antworten (4)

Das Datenblatt eines Mikrocontrollers gibt an, welchen Strom er intern verbraucht. Nur Sie können bestimmen, wie viel zusätzlicher Strom möglicherweise in den Stromversorgungsstift oder aus dem Erdungsstift fließt, weil andere Stifte Strom aufnehmen oder liefern.

Von dem, was Sie sagen, kann das Mikro selbst bis zu 40 mA aufnehmen. Ich kenne dieses spezielle Mikro nicht, aber das ist sicherlich plausibel.

Das Datenblatt gibt Ihnen auch das Maximum an, das Ausgangspins beschaffen dürfen. Für eine Leistungsberechnung ist dies nicht von Nutzen. Sie verwenden diese Informationen während des Entwurfs, um sicherzustellen, dass diese Grenze nicht überschritten wird. Der tatsächliche Strom, den die externe Schaltung von einem Ausgangspin zieht, hängt von der externen Schaltung ab. Betrachten Sie den Grenzfall, in dem ein Pin unbeschaltet bleibt. Offensichtlich geht kein Strom aus diesem Pin.

Nehmen wir zum Beispiel an, Sie beleuchten eine LED direkt von einem digitalen Ausgang. Der Prozessor läuft mit 5 V, und Sie haben eine grüne LED gegen Masse mit einem 300-Ω-Widerstand in Reihe. Der Strom, der aus dem Pin ausgeht, wenn er hoch ist, beträgt etwa 10 mA. Dass der Ausgang beispielsweise bis zu 25 mA hätte liefern können , spielt keine Rolle.

Die meisten CMOS-Mikrocontroller, einschließlich ATMEGA328, verbrauchen mehr Strom aus ihrer Gleichstromversorgung, wenn ihre Uhr mit höherer Geschwindigkeit läuft. Auf dem ATmega328-Datenblatt wird der Stromverbrauch bei einer Geschwindigkeit von 1 MHz angegeben. Wenn seine Uhr läuft und der Prozessor verarbeitet, zieht er 0,2 mA Strom aus einer 1,8-V-Gleichstromversorgung. Dies wäre ein minimaler Strom, wenn alle Eingangs-/Ausgangspins keinen Strom liefern .
Wenn die Uhr nicht läuft, wird die Stromaufnahme reduziert. Atmel gibt die Stromaufnahme im "Power-Down"-Modus mit 0,1 uA an. Ohne Uhr kann es keine Programme ausführen. Bei laufender Tageszeituhr (32,768 kHz) beträgt die Stromaufnahme 0,75 uA. Diese Echtzeituhr ist von der Prozessoruhr getrennt.
Einige Prozessoren prahlen mit ihrer Geschwindigkeits-Leistungs-Leistung, zum Beispiel "100uA-per-MHz". Dies ist eine Gütezahl, die darauf hindeutet, dass ein 100MHz. Prozessortakt würde erfordern, dass der Prozessor zehn Milliampere DC-Versorgungsstrom zieht.

Der Atmega hat eine CPU, richtig? Wenn Sie es also hart arbeiten lassen, verbrauchen Sie mehr Energie. (Es wird heiß, wenn auch unbemerkt) Aus diesem Grund wird die CPU/GPU Ihres Laptops heiß, wenn Sie Computerspiele spielen. Sie machen viele Berechnungen, die Transistoren schalten. Transistoren verlieren Energie, wenn sie aufgrund von Crossover ein-/ausschalten. Das Datenblatt gibt Ihnen eine Vorstellung davon, was die CPU normalerweise zeichnet, aber Sie werden es nie genau wissen.

In Bezug auf die Pins sind 40 mA ungefähr die maximale Nennleistung, die ein Pin liefern kann. Es ist nicht das, was Sie tatsächlich zeichnen. Sie können diese Mathematik also nicht verwenden, um den Stromverbrauch zu berechnen.

Und dann ist da noch das Hardwareproblem. Es gibt immer Stromlecks in einer Hardware. Sie werden die meiste Zeit nie in der Lage sein, dies zu berechnen. Nur Experimente werden es zeigen.

Aber die Sache ist normalerweise, dass für einfache Anwendungen nur die Pin-Ströme von Bedeutung sind. Bei den anderen sind es meistens weniger.

Wenn Sie dies für eine batteriebetriebene Anwendung untersuchen, ziehen Sie bitte die Schlaf-/Tiefschlafoptionen in Betracht.

Der beste Weg, den Stromverbrauch zu berechnen ( billig und schnell ), besteht darin, einen Widerstand zu bekommen, ihn zu kalibrieren (seinen tatsächlichen Widerstand zu finden), ihn mit atmega VCC in Reihe zu schalten und den Spannungsabfall zu finden. Es wirkt wie ein Zauber.

Oh und analoge Eingangspins ziehen nicht viel Strom. Sie ziehen gerade genug, um die Spannung abzutasten, aber es ist nicht so viel. Nur die GPIO-Pins im Source/Sink-Modus ziehen/liefern so viel Strom.

Sie werden blind, wenn Sie versuchen, den durchschnittlichen mA/h-Verbrauch eines Arduino zu berechnen, indem Sie alle Komponenten- und Funktionsströme zusammenzählen.
Kaufen Sie sich ein USB-Spannungs-/Strommessgerät. Dieser wird in Reihe mit der USB-Leitung geschaltet, die das Gerät speist, und zeigt Ihnen die fließende Spannung und den (durchschnittlichen) Strom an. Die USB-Stromzähler sind von lächerlich günstig bei Ebay (3 $) bis ziemlich teuer (30 $ +) erhältlich. Mein persönlicher Favorit ist der Portapow , der Ihnen direkt den mA/h-Wert des angeschlossenen Geräts anzeigt.Geben Sie hier die Bildbeschreibung ein

Alle aktuellen USB-Monitore, die ich gesehen habe, haben das gleiche Problem, wenn sie in den Ruhezustand wechseln. Sie haben alle eine begrenzte minimale Stromauflösung. Wenn es darum geht, Strom im Ruhezustand zu messen, ist ein Vorwiderstand unschlagbar.