Hallo Leute,
sory das ich jetzt erst schreibe aber konnte nicht schneller.
Code:
WORD Result = 0;
float Volt = 0;
float Teiler = 5.2941;
CLEARBIT(ADCSRA,ADEN); // aus schlaten damit ich den port wechseln kann
// Messen an port 6
CLEARBIT(ADMUX,MUX4);
CLEARBIT(ADMUX,MUX3);
SETBIT(ADMUX,MUX2);
SETBIT(ADMUX,MUX1);
CLEARBIT(ADMUX,MUX0);
SETBIT(ADCSRA,ADEN);
// Bit invertieren messung starten
ADCSRA |=_BV(ADSC);
waitforad = 1;
// warten bis messung abgesclossen ist und wert gültig
while(waitforad != 0)
{
//warten auf den adwandler;
};
// den wert aus dem register holen
char buffer2[20];
SendString("Messe :");
Result = ADCH*256 + ADCL;
itoa(Result,buffer2,10);
SendString(buffer2);
Volt = ((Result * 5)/ 1023)*Teiler;
// Berechnung Volt gemessen bei Ref von 5V
SendString("Volt :");
itoa(Volt,buffer2,10);
SendString(buffer2);
if(Volt > 11)
{
if(Volt >=12)
{
if(Volt >= 13)
{
SendMCData(2,100); // frisch geladen
}
else
{
SendMCData(2,50); // Bat OK aber bald
}
}
else
{
SendMCData(2,20); //fast leer
}
}
else
{
SendMCData(2,0); // Batt ist leer
}
Damit stimmt es schon fast also die die Gemessen 2,x Volt scheine wohl zu passen aber es kommen immer 10 volt raus mein multi meter zeig aber
11.8 Volt an und jetzt ?
Gruß
Lesezeichen