www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kann jemand mir es erklären ?


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

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


Im C-Programm steht folgendes:

Batteriespannung = ADC * 0.838;

Ich weiß nicht, warum wird mit dem Fakter 0.838 multipliziert.
Wie wird dieser Faktor gerechnet.

kann jemand mir es erklären.


DANKE

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich derjenige, der das C-Programm geschrieben hat.

Merke: Solche "Magischen Konstanten" wenn möglich vermeiden, oder gut 
kommentieren.


Ansonsten: Nachrechnen. Dafür brauchst du aber noch die 
AREF-Einstellung.

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist ganz einfach der Wert, der sich aus AREF und dem 
Spannungsteilerfaktor an der Batterie ergibt. Das alles hat der liebe 
Programmierer wohl in der Konstanten zusammengefaßt.

Autor: siewolf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich hab jemand getroffen, der es auch nicht weiß

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

Bewertung
0 lesenswert
nicht lesenswert
So sehr ich auch rumrechne, ich komm auf keinen grünen Zweig.

Kann es sein, dass du deine Schaltung schlampig abgemalt hast, und die 
Versorugungsspannung in Wirklichkeit 3.3V beträgt?

Dann würde es sich ausgehen wenn man annimmt
* Vcc ist gleich ARef
* Das Ergebnis soll als Fixed Point Zahl mit 1 Nachkommastelle entstehen


    3.3  ..... 1024
    1.846 .... x
  ------------------
        1.846 * 1024
    x = ------------ = 572.81
            3.3


    572.81 * 0.838 = 480.02
                     ||
                     ++----- da sind sie wieder, die 48

Autor: sucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für die Antworten,

Ich habe veressen zu erwähnen, dass folgende Einstellungen vorgenommen 
sind:
  // ADC initialisieren
  ADCSRA =(1 << ADEN)  // ADC einschalt
    | (1 << ADIE)  // ADC interrupt enable
    | (1 << ADPS1) | (1 << ADPS2);
                              // ADC Prescaler auf 64 = 57600 Hz
In main.h steht:

// Batteriespannung
uint16_t Batteriespannung    // in 10tel V

1. Die Kombination von R4 (47K) und C1 (100nF) dient nur als Filter?
ABER WARUM AUSGERECHNET DIESE WERTE??? ich habe gleichspannung.
2. R4 wird bei Berechnung der Spannungsteiler nicht herangezogen? stimmt 
es?


DANKE

Autor: X- Rocka (x-rocka)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der ADC ist so hochohmig, dass man sowohl den Spannungsteiler als auch 
das RC Glied als unbelastet betrachten darf.

Klar ist da Gleichspannung, aber hast du schon mal davon gehört, dass 
auch auf Gleichspannung Rauschen oder Störungen drauf sein kann?
Außerdem wird die Rückwirkung des ADC verringert. Da kann man am AVR ADC 
Eingang schon mal schöne Spitzen der Sample&Hold Stufe sehen.

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.