Hallo Zusammen
Ich habe folgendes Problem:
Für mein Projekt muss ich feststellen, wann die benutzte Batterie, sich dem Ende zu neigt.
Mit nachfolgendem Code wird die Spannung aus dem Arduino Nano Board ausgelesen:
long readVcc() {
long result;
// Read 1.1V reference against AVcc
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
delay(2); // Wait for Vref to settle
ADCSRA |= _BV(ADSC); // Convert
while (bit_is_set(ADCSRA,ADSC));
result = ADCL;
result |= ADCH<<8;
result = 1126400L / result; // Back-calculate AVcc in mV
return result;
}
Nun möchte ich den readVcc Wert mit 3800, per IF Abfrage vergleichen so, dass die Spannung nur dann angezeigt wird falls diese kleiner oder gleich 3800mV beträgt.
Das habe ich so gelöst:
(void Loop)
if (readVcc <= 3800){
display.setTextSize(1);
display.setCursor(20,25);
display.print("Low Voltage!!");
display.setCursor(102,25);
display.println(readVcc (), DEC);
Serial.print("Low Voltage!!");
Serial.println(readVcc(), DEC);
}
Nun habe ich aber das Problem, dass der vergleich mit dem readVcc anscheinend nicht funktioniert.
Wenn ich anstelle des readVcc eine Zahl eintrage, funktioniert alles tadellos.
Wüsste jemand an was das liegen könnte, und was ich abändern muss, dass das funktioniert wie ich es gerne hätte?
Besten Dank bereits im voraus für die Bemühungen.