Forum: Mikrocontroller und Digitale Elektronik ACS758-100A berechnung Ampere Mega 8 haut nicht hin


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

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

von Andreas (Gast)


Lesenswert?

Hallo,


ich habe wahrscheinlich ein rechenproblem.

habe mitbekommen das sich der erechnete mv wert der eigendlich z.b 16mv
laut multimeter und excheltabelle am VOUT PIN am ADC aber zwischen 14 
und 19 schwank warzum weiß cih nicht der ADC wert ist konstant gleich 
genau wie am multimeter.
Wenn ich einen mittelwert von 14 und 19 bilde kommt 16 raus.
hängt es mit dem offset zusammen?

besten dank


hat vieleicht von euch einer so ein teil im einsatz???


gruß

von Andreas (Gast)


Lesenswert?

Habe herausgefunden warum der adc schwankt.

Ich lese einmal am ADC1 die Spannung der 12V Batterie über 
spannungsteiler ein und danach den ADC2 den Wert des Sensors.

Wenn ich nur den ADC 2 einlese habe ich die Schwankungen nicht.


Kann man das unterdrücken.

Gruß und Danke

von Mandi Nice (Gast)


Lesenswert?

Hallöchen

Probier mal erst die Spannung zu messen  und dann zweimal den Strom.
Den ersten Stromwert wirfst Du weg und den zweiten nimmst Du.

Oder messe den Strom schneller als nötig und berechne den Mittelwert.

Brauchst Du unbeding den 100A Messbereich ?
Die Auflösung der Analogeingänge beträgt gerade mal ca. 5mV.
Es ist daher unmöglich den Strom genau zu messen.

Entweder nimmst Du einen Sensor der mehr mV/A ausgibt oder Du verstärkst 
das Signal.

hmg
Mandi

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.