//*************************************************************************************************************************************
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
}
//*************************************************************************************************************************************