Hallo Leute,
ich möchte in mein kleines Arduino Pro Mini-Si4703-Radio eine Batterieüberwachung integrieren.
Auf dieser Seite habe ich die Anregung gefunden und mein Test-Code sieht nun so aus:
Dies ist das für mich unbefriedigende Ergebnis:Code:float volt; char akku[4]; 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; } void setup() { Serial.begin(9600); } void loop() { volt = (readVcc()/1000); dtostrf(volts, 2, 1, akku); Serial.print( readVcc(), DEC ); Serial.print("\t"); Serial.println(volt,2); delay(1000); }
Der Wert für readVcc stimmt. Die Variable "volt" ist als float definiert. Warum bekomme ich dann bei der Division (readVcc/1000) keine Nachkommawerte angezeigt?
Ratlose Grüße,
Uwe
- - - Aktualisiert - - -
Uuups,
die Zeile: "dtostrf(volts, 2, 1, akku);" gehört da natürlich nicht rein, ändert aber nichts am Problem.
Sorry!







 
			
			 
					
					
					
						 Zitieren
Zitieren

Lesezeichen