ADC-Wert springt, keine Feinabstufung möglich

Gast #576690
Lesenswert?
• ▲
▼
Hallo µC Freaks,

hab schon viel ausprrobiert aber irgendwie werde ich das Problem nicht 
los.
Ich lese die Temperatur über einen KTY 81-110 in den ADC. Dann wird mit 
float der Wert berechnet und an PC und LCD geschickt.
Der ADC Wert springt von

543 (22,3°C) auf
547 (23,6°C) auf
551 (24,8°C)

Und das alles immer im gleichen Bild (natürlich wenn ich den Sensor 
aufwärme)

Ich vermisse aber die Rohwerte z.B. zw. 543 und 547. Die muß es doch 
geben.Ind die kommen nie vor!

Hat einer eine Idee?

Code:

  adc_value =ADCL;
  adc_value |= ((int)ADCH<<8);

-->
  T_float=(float)((float)(ADC_value_temp-467)*200/625)-2;
  printf("\r\n Temperat_float %f", T_float);


Danke.
Angehängte Dateien:
Gast #576834
Lesenswert?
• ▲
▼
Controller: M32
AGND verschaltet mit GND
AREF ist mit 100nF an GND gelegt
Ich nutzte die interne Referenz von 2,5xV
Die Masse und VCC sind zus. mit dickem C=1000µF verschaltet um Spannung 
konstant zu halten

Hätte ich schon geglaubt dass die Werte nicht ans Dichsplay kommen, bloß 
1 mal in 100 Fällen müssen die doch zu sehen sein...

Gruß  Andreas
Gast #576870
Lesenswert?
• ▲
▼
Grundsätlich würde ich den ADC Wert zunächst einmal aus mehreren 
Messungen mitteln.

Beispiel ATTINY:
1
  for (adc_count=0; adc_count < 64; adc_count ++)  {
2
    ADCSR |= (1 << ADSC);           // AD Wandler starten
3
    while (ADCSR & (1 << ADSC));    // AD Wandlung fertig ?
4
    adc_val = ADCL;                 // lowbyte auslesen
5
    adc_val += ADCH * 256;          // highbyte & lowbyte = 10 BIT Ergebnis
6
    adc_sum += adc_val;             // Mittelwert über 64 Messungen
7
  }adc_sum >>= 6;                   // /64 => Mittelwert

100nF direkt an den Bauelementen ? Hast du mal die Versorgungspannungen 
mit dem Oszi. angeschaut ?

Benötigst du wirklich "float" ? Für mich sieht das so aus als könnte man 
das mittels Integerarithmetik hinbekommen !?

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.