Gast
#1633260
Hallo,
Habe mal eine Exchel Tabelle gemacht der mir bei eingabe der Spannung
bei VOUT mit dem Multimeter die Ampere berechnet.
Habe eine Lampe dran die ich regle mit dem Multimeter im Ampere Modus
gemessen und dann mit dem Allegro verglichen laut Exchel Tabelle scheint
so hinzuhauen.
nun die umsetztung des Allegro mit´einen mega 8.
long amp5=0;
int a1=0;
i1=(readADC(2)+4);// Offset 4 508+4=512=2,5V
//i1 ist bei 0A = 508 entsprechen 2,480V also ein Offset von von
0,020V
amp5=((long)i1*5000)/1024;
voltvk=(int)amp5/1000; // Voltausgabe vor dem Komma
voltnk=(int)(amp5/10)-(voltvk*100);//Voltausgabe nach dem Komma
printf("Volt %d.%02d V",voltvk,voltnk)
if(amp5>2500)a1=amp5-2500;//errechnen mv bei i1>512
if(amp5<=2500)a1=2500-amp5;//erechne mv bei i1<512 (Ladestrom)
a1=a1*1000/20; //Lt Datenbaltt 20mv/1A
ampvk=a1/1000; //Amp Vorkomma
ampnk=a1/10; //Amp Nachkomma
printf("Amp %d.%02d A",ampvk,ampnk)
meine ADC
uint16_t readADC(uint16_t channel)
{
uint16_t result;
ADCSRA = (1<<ADEN) | (1<<ADPS2) | (1<<ADPS1); Vorteiler 64 bei 8Mhz
ADMUX = channel;
ADMUX |= (1<<REFS0) ;
ADCSRA |= (1<<ADSC);
while ( ADCSRA & (1<<ADSC) ) {
;
}
result = ADCW;
result = 0;
ADCSRA |= (1<<ADSC);
while ( ADCSRA & (1<<ADSC) ) {
;
}
result= ADCW;
ADCSRA &= ~(1<<ADEN);
return result;
}
dort haut es aber nicht hin bei 0 A schwankt er zwischen 0A und 0,20A
obwohl das Multimeter konstant 2,535 anzeigt.
stimmt überhaupt die Berechnung???
Ich weiß hier einfach nicht mehr weiter.
Danke