www: Leistungsmessung einer Brennstoffzelle

Leistungsmessung

physikalische Größe Symbol der Größe Definition Name der Einheit Einheit
Elektrische Leistung P P = U * I Watt 1 W = 1 V * A = 1 J/s
Elektrische Spannung U U = E / Q Volt 1 V = 1 J/C
Elektrische Stromstärke I I = Q / t Ampere 1 A = 1 C/s
Elektrische Widerstand R R = U / I Ohm 1 Ω = 1 V/A

Leistungsmessung über einen Lastwiderstand

  • P = U * I
  • I = U / R
  • P = U²/R
  • R sollte sehr genau bekannt sein.
  • Die Spannung an diesem Lastwiderstand muss gemessen werden.
  • P wird über den Zusammenhang P = U²/R berechnet.

Leistungsmessung einer Brennstoffzelle

  • Lastwiderstand von 0,5 Ω
    • Parallelschaltung von zwei 1,0 Ω Widerständen
    • Spannungsmessung am Widerstand mit CASSY oder einem ARDUINO

Funktionsweise AD-Wandler

Schaltungsaufbau

Schaltbild

Sketch

//*************************************************************************************************************************************

long  A0_Bit;                         // Messung: Hier wird eine Variable namens "A0_Bit" des Typs Long angelegt - nur ganze Zahlen
float A0_P, A0_U, A0_I;               // Anzeige: Hier wird eine Variable namens "A0_P" des Typs Float angelegt - Dezimalzahl
int   R0 = 500;                       // eingesetzter Widerstandswert fuer die Leistungsmessung z. B. 500 mOhm zwischen A0 und Masse

//*************************************************************************************************************************************

void setup (){
  Serial.begin(9600);                 // Hier wird der serielle Monitor initialisiert (9600 Signaländerungen/Sekunde)
  pinMode (A0, INPUT);                // analoger PIN A0 wird als INPUT (also Eingang) festgelegt, so dass hier eine Spannung bis 5 V gemessen werden kann.

//*************************************************************************************************************************// Ende Setup

}                                     
void loop () {                               // Anfang Loop
    A0_Bit = analogRead (A0);                // Pin A0 1 wird ausgelesen und zugewiesen
    A0_U   = (5.0 / 1024.0) * A0_Bit * 1000; // Umrechnung in Spannung am Widerstand
    A0_I   = A0_U / R0 *1000;
    A0_P   = A0_U * A0_U;                    // Quadrat der Spannung
    A0_P   = A0_P / R0 * 1;                  // Umrechnung in Leistung am Widerstand in mW                           
    serielleAusgabe();                       // Bildschirmausgabe
    delay (500);                             // Warten für 500 Millisekunden - kurze Pause
} 

//*************************************************************************************************************************************

void serielleAusgabe() {                // Hier folgt die Ausgabe am Monitor
    schreibeBit0();
    schreibeR0();
    schreibeU0();
    schreibeI0();
    schreibeP0();
    Serial.println("|");                 // neue Zeile schreiben
}

//*************************************************************************************************************************************

void schreibeBit0(){
    Serial.print (" | A0 = ");         // Anzeigetext
    Serial.print (A0_Bit);             // gemessener Wert wird im seriellen Monitor angezeigt  
    Serial.print (" bit");             // Anzeigetext
}

//*************************************************************************************************************************************

void schreibeR0() {
    Serial.print (" | R0 = ");        // Anzeigetext sollte sein:   I= 
    Serial.print (R0);                // berechneter Wert wird im seriellen Monitor angezeigt 
    Serial.print (" mOHM ");          // Anzeigetext der Einheit mA
}
//*************************************************************************************************************************************

void schreibeU0(){
    Serial.print (" | U = ");         // Anzeigetext sollte sein:   U_A0= 
    Serial.print (A0_U);              // berechneter Wert wird im seriellen Monitor angezeigt 
    Serial.print (" mV ");            // Anzeigetext der Einheit V
}
//*************************************************************************************************************************************

void schreibeI0() {
    Serial.print (" | I = ");         // Anzeigetext sollte sein:   I= 
    Serial.print (A0_I);              // berechneter Wert wird im seriellen Monitor angezeigt 
    Serial.print (" mA ");            // Anzeigetext der Einheit mA
}

//*************************************************************************************************************************************

void schreibeP0(){
    Serial.print (" | P = ");         // Anzeigetext
    Serial.print (A0_P);              // berechneter Wert wird im seriellen Monitor angezeigt 
    Serial.print (" mW ");            // Anzeigetext
}

//*************************************************************************************************************************************

Auswertung

Messung mit CASSY

  • 10 ml H2 werden umgesetzt
    • der plötzliche Leistungsabfall während der Messung wurde nicht weiter untersucht
    • offene Fragestellung ;-)
QR-Code
QR-Code www-fuer-alle:arduino:leistungsmessung_brennstoffzelle (erstellt für aktuelle Seite)