#define ACS724 A1 // definierte ACS724 auf AnalogPort 1
const float VbusZeroCurrent = 2.500; // erstelle konstante Float-Variable (Kommazahl) für Bus-Spannung vom ACS wenn Stromstaerke = 0A (muss ausgemessen werden)
const float sense = 200;
void setup() {
Serial.begin(9600); // Initate serial monitor
}
void loop() {
currentACin();
}
void currentACin() {
for (int counterAVR = 0; counterAVR < 50; counterAVR++) { //
float RawVbusACS = analogRead(ACS724); // ADC-Wert aus ACS724 auslesen
//float RawVbusACS = RawDataACS; // ADC-Wert aus ACS724 für die Berechnung der Busspannung
float RawACinAmps = (((((RawVbusACS/1023)*5)-VbusZeroCurrent)*1000)/sense)*1000;
/*float VbusACS = (RawVbusACS /1023) *5; // konvertiere die digitalen Roh-Daten in Volt
VbusACS = (VbusACS - VbusZeroCurrent) * 1000; // Subtraktion von der ausgemessen Busspannung für 0A und Umrechnung in mV
float RawACinAmps = (VbusACS / sense) * 1000; // konvertiere Bus-Spannung in in mA
*/
float SummeACinAmps = SummeACinAmps + RawACinAmps; // summiere die 50 errechneten Stromstaerken
//float SummeVbus = SummeVbus + RawVbusACS; // summiere die 50 ausgelesenen Werte des ACS724
if (counterAVR == 49) {
float ACinAmps = SummeACinAmps / 50;
Serial.println(RawVbusACS);
Serial.print("Stromstärke: "); Serial.print(ACinAmps,3); Serial.println(" in mA");
//float Vbus = SummeVbus /50;
ACinAmps = (ACinAmps / 1000) +0,0005;
Serial.print("Stromstärke: "); Serial.print(ACinAmps,3); Serial.println(" in A");
//Serial.print("Busspannung: "); Serial.print(Vbus,3); Serial.println(" in mV");
delay (3000);
SummeACinAmps = 0;
//SummeVbus = 0;
}
}
}