www.mikrocontroller.net

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


Autor: Andreas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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ß

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Mandi Nice (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.