mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Umwandlung


Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI Leute,

ich habe ein kleines Problem mit der Umrechung eines ADC Wertes in eine 
Spannung. Und zwar habe ich einen Atmega8 welcher ein Signal per ADC 
einlesen soll um es dann per UART zu verschiecken. Dabei nutze ich die 
interne Uref von 2,56 Volt. Der zu messende Bereich (1 bis 21 Volt) wird 
per Spannungteiler auf den Bereich von 0 bis 2,56 Umgesetzt. Das Problem 
ist nun das ich zwar per Berechnung aus dem AVR TUT den Wert von 0 bis 
2,56 Volt umrechnen kann aber ich will ja den anderen Bereich. Würde 
dabei gerne auch die Festkomma Geschichten nutzen,das sie weniger 
speicher benötigen, hab aber kein plan wie. Bin nicht so der Mahte 
Profi.

MFG

Mathi

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry habe vergessen zu Sagen das ich das ganze gern in C machen würde 
und der Chip läuft mit 2 MHz.

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Etweder habe ich es nicht verstanden order es ist ganz einfach 
mathematik

U = ADC * (21V / 256 )

256 wenn 8Bit auflösung

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Bin nicht so der Mahte Profi.

1 Apfel kostet 2 Euro
12 Äpfel kosten wieviel Euro.

Lernen unsere Kinder in der Grundschule. Hat mit Matheprofi herzlich 
wenig zu tun und recht viel mehr brauchst du dazu nicht.


1 ADC Sprung entspricht  ( 21 - 1 ) / 1023 = 0.0195503 Volt
Wenn dein ADC den Wert 678 liefert, liegen daher
   678 * 0.0195503  + 1 = 14.255 Volt
an.

Da du Festkomma verwenden willst, was löblich ist, rechnest du nicht
mit 0.0195503 sondern einem Vielfachen davon, zb dem Zehn-tausendfachen.
Aus den 0.0195503 werden so 195

   Volt = 195 * ADC + 10000

ALs Ergebnis kriegst du jetzt natürlich nicht Volt, sondern ein 
entsprechendes Vielfaches davon. Aber das kannst du ja in der Anzeige 
leicht korrigieren, indem der Dezimalpunkt an der richtigen Stelle 
gesetzt wird.

    678 * 195 + 10000 = 142210

Wenn du jetzt noch den Dezimalpunkt bei der Ausgabe zwischen die 
Zehntausenderstelle und die Tausenderstelle einschmuggelst, steht auf 
dem Display wieder  14.221

(Das die Hunderstel nicht mehr mit dem Wert von oben übereinstimmen, 
liegt an der Verwendung von Festkomma und im Speziellen daran, dass 
10000 * 0.0195503 nun mal nicht exakt 195 ergibt)

Autor: Mathias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh hätte nicht gedacht das es so einfach ist :-) vielen dank für 
schnelle hilfe.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Karl heinz Buchegger wrote:
>> Bin nicht so der Mahte Profi.
>
> 1 Apfel kostet 2 Euro
> 12 Äpfel kosten wieviel Euro.
>
> Lernen unsere Kinder in der Grundschule. Hat mit Matheprofi herzlich
> wenig zu tun und recht viel mehr brauchst du dazu nicht.
>
>
> 1 ADC Sprung entspricht  ( 21 - 1 ) / 1023 = 0.0195503 Volt
> Wenn dein ADC den Wert 678 liefert, liegen daher
>    678 * 0.0195503  + 1 = 14.255 Volt
> an.

Und wenn man bei AD-Wandlern aufgepasst hätte, würde man nicht durch 
1023 teilen, sondern durch 1024 (scnr)

Autor: Lutz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wenn der Aufpasser aufgepaßt hätte, hätte er das mit *) geschrieben:

*)
Unter der Annahme, dass der ADC 10 bit Auflösung hat.

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Lutz wrote:
> Und wenn der Aufpasser aufgepaßt hätte, hätte er das mit *) geschrieben:
>
> *)
> Unter der Annahme, dass der ADC 10 bit Auflösung hat.

Und wenn der Aufpasser-Aufpasser aufgepaßt hätte, hätte er gelesen, dass 
es sich um einen AVR handelt...

Autor: ich erst recht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wenn der Aufpasser-Aufpasser aufgepaßt hätte, hätte er gelesen, dass
es sich um einen AVR handelt...

Und wenn der Aufpasser-Aufpasser-Aufpasser++ aufgepasst hätte, würde ich 
kein blödes comment abgeben. höhöh

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.