mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC im ATMEGA28


Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte so einige Experimente mit dem ADC unter dem ATmega16 gemacht.
Beim ATMEGA 128 bekomme ich aber nicht so meine Werte, wie ich messen
will raus. Die Initialisierung sieht so aus:

char adc_tab[] = {
  15, 47, 47, 47, 47, 47
};

unsigned short adc_field[ADC_CHANNELS] = {
  0, 0, 0, 0, 0, 0
};

DDRF = 0x00;
ADMUX |= 1<<REFS1 | 1<<REFS0;
ADCSRA |= 1<<ADPS2 | 1<<ADPS1 | 1<<ADPS0 | 1<<ADEN;

Das messen und ausgeben so:

unsigned short       i;
unsigned char       av, amv;
char         conv_buf[5];
unsigned char       count;

for (count = 0; count < ADC_CHANNELS; count++) {
  ADCSRA |= 1<<ADSC;
  while (ADCSRA & (1<<ADSC));
  i = ADC * (256 * 100 / 1024) / 100;
  i = i * (adc_tab[count] + 10) / 10;
  adc_field[count] = i;
  av = i / 100;
  amv = (i - av * 100);
  uart1_puts("\r\nADC");
  itoa(count, conv_buf, 10);
  uart1_puts(conv_buf);
  uart1_puts(": ");
  itoa(av, conv_buf, 10);
  uart1_puts(conv_buf);
  uart1_puts(".");
  itoa(amv, conv_buf, 10);
  uart1_puts(conv_buf);
  uart1_puts(" V\r\n");
  ADMUX++;
}
ADMUX &= ~(0x1F);

Mache ich da einen Programmfehler oder ist das alles richtig und ein
HW-Problem liegt evtl. vor? An allen Kanälen liegen ca. 2V an. Die
Hardware ist so verdrahtet. Umgerechnet wird an Hand der festgelegten
Spannungsteiler (0 = 15k / 10k -> 5V, 1 = 47 / 10k -> 12V, 2 ...).
Aber an der Umrechnung liegt es nicht. Die ausgerechnete Spannung ist
ziemlich genau halb so hoch, wie reell sein sollte.

Es liegen genau 2V an den Eingängen an ... und somit müsste was in ADC
steht so um die 800 - 900 liegen. Es liegt aber auch hier bei der
Hälfte.

Hier mal der Output:

ADC0: 2.55 V
ADC1: 5.64 V
ADC2: 5.64 V
ADC3: 5.70 V
ADC4: 5.70 V
ADC5: 5.70 V

Autor: Ronny Schulz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zum besseren Verständnis. Vielleicht hilft es, wenn ich die Schaltpläne
mal mitposte. Wäre nett, wenn mir mal jemand einen Tipp zum ADC geben
könnte. Ich bekomme immernoch nur die halbe Spannung gemessen.

http://mitglied.lycos.de/projectsilence/syscontrol...
http://mitglied.lycos.de/projectsilence/syscontrol...

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.