Spannung messen mit Arduino Micro

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Da hab' ich auch gestutzt. Das Blockschaltbild ist aus dem Datenblatt vom atmega88. Wäre doch komisch, wenn für ein paar Kanäle dann in der Wandlerlogik eine Extrawurscht eingebaut wird.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Hallo tschoeatsch,

      ja ich hab wohl auch ein paar Sachen nicht korrekt beschrieben aber vom Zwischenspeichern las ich mich nicht abbringen.
      Warum auch bei V-K, bei Dir und bei mir funktioniert es.
      Hinweis:
      Eine sog. Sample&Hold Schaltung sorgt dafür das während des Wandlungsvorgangs, die ja eine bestimmte Zeit dauert, die Eingangsspannung sich wohl auch verändert kann.
      Die Sample&Hold-Stufe speichert zum Beginn der Wandlung die anliegende Spannung und hält sie während des Wandlungsvorgangs konstant. Ist ja das Gute.
      Nun wird der Highlevel-Befehl GETADC genutzt. Der Nachteile ist, dass das Programm so lange still steht, bis die Messung vorbei ist.Es könnte also passieren, dass ein Interrupt in dieser Zeit die Wandlung unterbricht. Nur dann würde ich Dir recht geben(mit mehrmals Messen) Ist aber immer besser dies zu vermeiden.
      Man kann den ADC auch so einstellen, dass Messungen ohne Unterbrechung des Programmes vorgenommen werden. Das ist kein Problem, aber das funktioniert nicht mit dem Highlevel- Befehl. Dafür muss man die Einstellungen direkt in den AVR-Registern setzen.
      Hier liegt wohl mein Hauptproblem in diesem Forum. Da ich sehr viel mit den Registern „spiele verwirre ich wohl mehr als zu helfen.

      Nun gleich noch zu 8 Bit Wandlung.
      Zitat:
      Um die maximale Abtastrate zu erreichen betreibt man den ADC im free-running-Modus mit dem kleinsten prescaler-Wert (clk/2). Dann muss man nur noch möglichst schnell die gewandelten Daten auslesen, weil der ADC pro Wandlung nur 2 Takte benötigt. Deshalb kommt es quasi auf jeden Takt an, der zum Lesen benötigt wird. Da der ADC nur einen neuen Wert bildet, wenn ein alter gelesen wurde, kann man sich die ganze Handshakerei sparen. Da 8 Bit schneller als 16Bit gelesen werden können, stellt man ein linksbündiges Ergebniss ein und liest nur ADCH aus.
      Zitat Ende.

      Nun muss man die Daten so schnell wie möglich in den Speicher übertragen um sie später auszuwerten.
      Da das Ergebnis des ADC ein 10 Bit Wert ist, passt dieser Wert naturgemäß nicht in ein einzelnes Register, das ja bekanntlich nur 8 Bit breit ist.
      Standardmäßig (d.h. ADLAR = 0) werden von den 10 Ergebnisbits die niederwertigsten 8 im Register ADCL abgelegt und die noch fehlenden 2 Bits im Register ADCH an den niederwertigsten Bitpositionen gespeichert.
      Auf diese Weise kann das ADC Ergebnis direkt als 8 Bit Zahl weiterverarbeitet werden: Die 8 höchstwertigen Bits stehen bereits verarbeitungsfertig im Register ADCH zur Verfügung.
      Dadurch ist sichergestellt, daß die Inhalte von ADCL und ADCH immer aus demselben Wandlungsergebnis stammen, selbst wenn der ADC im Hintergrund selbsttätig weiter wandelt.

      Es gab/gibt Mega8 Typen da wurden die Eingänge C5 und C4 werksmäßig auf 8 Bit Auflösung eingestellt. Wenn es interessiert soll selber suchen.
      P.S. Blockschaltbild kann ich deuten. Weis aber auch das im Datenblatt nur das nötigste steht und auch vereinzelt mehrdeutig ist.
      AVR ist ein 8 Bit System Schluss Aus. Benötige man 16 Bit müssen halt 2 Byte zusammen gebastelt werden. a_48_7237538e

      Mit freundlichen Grüßen
      Fred