Arduino Pins Watt auslesen?

4 Antworten

Nicht direkt.

Aber Du kennst ja die Ausgangsspannung am PIN (U).

... und Du kannst den Ausgangsstrom messen, mittels eines Ampére-Meters (I).

Eine simple Rechnung ergibt Dir dann die Ausgangsleistung:

P (in Watt) = U (in Volt) mal I (in Ampere)

Beispiel vom Raspberry: U=3,3V / I=max. 0,16 A ==> Ausgangsleistung maximal 0,5 Watt

Woher ich das weiß:Berufserfahrung

Hey,

Leider hat der Arduino UNO R3 keine eingebaute Funktion zur Messung des Stroms oder der Leistung. Allerdings ist es möglich, diese Daten zu ermitteln, wenn man zusätzliche Komponenten benutzt.

Eine Möglichkeit wäre die Verwendung eines Hall-Effekt-Stromsensors, zum Beispiel des ACS712 (der misst bis 5A, wenn du mehr brauchst schau einfach nach einem anderem, gibt genug). Mit diesem könntest du den Stromfluss messen. Und um die Leistung in Watt zu berechnen, kannst du den gemessenen Strom einfach mit der Versorgungsspannung multiplizieren. Vorausgesetzt natürlich, die Versorgungsspannung ist stabil und bekannt.

Ich habe hier einen Beispielcode für dich, der das macht:

#define ACS712 A0 // Der ACS712 Sensor ist am analogen Pin A0 angeschlossen

#define VCC 5.0 // Arduino läuft mit 5V

#define SENSITIVITY 185.0 // Sensitivität für ACS712 5A Modul

void setup() {

 Serial.begin(9600); // Starte die serielle Kommunikation mit einer Baudrate von 9600

}

void loop() {

 float I = readCurrent();

 float P = VCC * I;

 Serial.print("Strom: "); 

 Serial.print(I);

 Serial.print("A, Leistung: ");

 Serial.print(P);

 Serial.println("W");

 delay(1000); // Warte eine Sekunde zwischen den Messungen

}

float readCurrent() {

 int raw = analogRead(ACS712); 

 float volt = (raw * VCC) / 1024.0; // Umrechnen in Volt

 return ((volt - VCC / 2) / SENSITIVITY); // Umrechnen in Ampere

}

Mit diesem Code liest der Arduino den Stromwert vom ACS712 Sensor und berechnet dann die Leistung.

Woher ich das weiß:Hobby – Programmierer

Kelec  01.08.2023, 10:49

Das funktioniert mit einem einfachen GPIO Pin nicht wirklich.

Der liefert maximal um die 20mA, dafür ist der Sensor ein kompletter Overkill und nicht geeignet.

Ein Shunt kann hier bessere Ergebnisse liefern hat aber natürlich seine anderen Problemchen.

Da ein Pin aber eh nicht mehr als 100mW liefern kann macht eine Leistungsmessung hier auch nicht sonderlich viel Sinn.

Spannung am Pin ist bekannt, dann eine Strommessung machen (z.B. mit Shunt-Widerstand). Dann kannst du die Leistung berechnen (P = U · I).


Kelec  01.08.2023, 10:31

Ob die Spannung am Pin bekannt ist oder nicht hängt von der geforderten Genauigkeit und dem Stromfluss ab.

Die liegt eben irgendwo zwischen 5V und 4V.

Gehilfling  01.08.2023, 10:40
@Kelec

So oder so wäre hier vermutlich ein externer IC besser. Bei den geringen Strömen, die der Arduino am Pin treiben kann, wäre der Spannungsabfall am Shunt sowieso eher ungenau zu ermitteln.

Und dann hätte man auch die Problematik mit der Spannung raus.

Direkt nicht. Das kannst du maximal mit einem externen Strom Spannungswandler (im einfachsten Fall ein Widerstand) und einem ADC Eingang.

Je nach Genauigkeit müsstest du dann die Spannung am Pin auch noch messen.