Spannung messen mit AVR

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Spannung messen mit AVR

      Hallo Forum,

      ich habe vor, mit einem AVR (Typ momentan unbekannt) Gleichspannungen in den Bereichen von 0...- 24V zu messen.
      Der Hintergrund ist, ich habe auf einer Platine mehrere Messpunkte (66 Stück) und diese möchte ich per AVR messen und an den PC übertragen.
      Die Messung sollte möglichst präzise sein.

      Daten an den PC ist soweit klar.
      Die 66 Messpunkte auf ein Knotenpunkt zu bringen, dürfte auch kein Problem sein.

      Frage:
      Wie gehe ich mit der ADC Eingang von einem AVR richtig um?
      Welche AVR sollte ich da nehmen?
      Auf was sind definitiv zu achten?
      Wer hätte Vorschläge?


      Gruß
      Katip
    • Hallo Katip,
      um einen Spannungsteiler durch 5 kommst Du nicht herum, da der AVR ja nur bis 5 V verträgt.
      Einen ADC-Eingang hat praktisch jeder Mikrocontroller. Die Auswahl kannst Du also von anderen Dingen abhängig machen.
      Der ADC setzt die anliegende Spannung (0 bis 5 V) in einen Wert (von 0 bis 1023) um. Diesen Wert rechnest Du in die Spannung um und schickst das zum PC.
    • Ulrich wrote:

      auch könntest du in diesem Link schauen, ob es in dein schema passt:


      tuxgraphics.org/common/src2/ar…0051/avr-oversampling.pdf
      OK, ich habe mich entschlossen, mit einen 16-bit zu realisieren, da lt. dem Datenblatt vom ATMEL eine high accurate Messung möglich ist. a_42_02cc30b2

      stefanhamburg wrote:

      um einen Spannungsteiler durch 5 kommst Du nicht herum, da der AVR ja nur bis 5 V verträgt.
      Ich hoffe das Thema ist in dem Buch von dir ausführlich erklärt ;)
    • katipefendi wrote:

      OK, ich habe mich entschlossen, mit einen 16-bit zu realisieren, da lt. dem Datenblatt vom ATMEL eine high accurate Messung möglich ist.
      Mit einem 10 Bit AD-Wandler im AVR wirst du keine wirklichen 16 Bit erreichen.
      Der Aufwand für's Oversampling übersteigt den Nutzen, du musst ja Rauschen einkoppeln und brauchst viel Zeit zum Messen.
      Bei 66 Messwerten ist das eine ganze Menge.
      Besser einen externen AD-Wandler mit Analogschaltern. Letztere brauchst du ja sowieso bei der Anzahl.

      katipefendi wrote:

      Die Messung sollte möglichst präzise sein.
      Sag doch mal konkret, was das werden soll? Für möglichst präzise reichen doch 10 Bit? ;)

      Gruß, Michael
    • Michael wrote:

      Sag doch mal konkret, was das werden soll?
      Habe ich doch bereits oben geschrieben!
      Es gibt eine Platine mit sehr viel Elektronik drauf. Diese muss getestet werden, bevor sie ihren neuen Besitzer kennenlernt.
      D.h. alle Spannungen müssen an den Testpunkten geprüft werden, ob die deklarierte Spannungen anliegen.

      Mit einem Messgerät Fluke 179 dauert es immer lange, die Messwerte von den 66 Messpunkte zu messen und in PC einzugeben.
      Daher dachte ich mir, ein kleines Board, der mir über ADC den Spannungswert misst und zum PC überträgt.


      Die 66 Messpunkte zu einem Kontenpunkt zu bringen, ist nicht das Problem.
      Auch die erfasste Daten kann ich über USB, RS232 oder Ethernet an den PC übertragen.


      Ich komme mit den ADC nicht so klar, wenn die Spannung zwischen 0v...24v liegen soll.


      Mit präzise ist gemeint, wenn mein Fluke 179 an einem Testpunkt z.B. 14,72V anzeigt, dann muss auch der AVR mit sein ADC den selben Wert liefern.

      Hoffe, jetzt ist alles zu verstehen.

      VG
      Katip
    • Ein Spannungsteiler. z.b. Uref=5V caran 49,9K zum adc Pin weiter mit 246,7k zum Meßßpunkt.
      Das ganze 29 mal Messen, je von 1023 abziehen und das dann addieren ergibt mV. Falls nötig noch durch 1000 Teilen um V zu haben , oder ein Komma an der 3.Stelle einfügen.
      Es benötigt jedoch einen Nullabgleich. Vielleicht mit nochmal den selbe Spannungsteiler an einem anderen Pin?

      The post was edited 1 time, last by Pluto25 ().

    • katipefendi wrote:

      Mit präzise ist gemeint, wenn mein Fluke 179 an einem Testpunkt z.B. 14,72V anzeigt, dann muss auch der AVR mit sein ADC den selben Wert liefern.
      Dann brauchst du mindestens 11,3 Bit, also einen 12Bit AD-Wandler. Der interne AD-Wandler scheidet somit aus.

      katipefendi wrote:

      Hoffe, jetzt ist alles zu verstehen.
      Alles nicht, aber ich konnte in deinem 2.Beitrag herauslesen, dass die Messdauer keine Rolle spielt, ebenso sind die Werte nicht dynamisch und sie müssen auch nicht gleichzeitig gemessen werden.
    • Ich war auch auf der Suche nach einen AD Wandler für einen Akkuu Tester / Lader.
      Die ADCs der Atmegas sind hier weniger brauchbar, bei kam auch noch hinzu, das ich nicht nur
      die Spannung sondern auch den Strom und die Leistung messen musste.
      Was ich gefunden habe, den INA219 von TI, bzw. den INA 226.
      Die gibt es alles fertiges Modul bei Ebay und Amazon.
      Am besten schaust Du dir mal die Datenblätter dazu an.
      Vorteil wäre auch, der AD Wandler kann nahe am Meßobjekt betrieben werden.
      Das hat den Vorteil, das die Einflüsse wie Störungen oder Masseschleifen das Messergebnis nicht
      so stark beeinflussen.
      Die Anbindung erfolgt per I2C Bus. Am besten wäre eine Galvanische Trennung des I2C Buses.
      Ein weiterer Vorteil dieser Bauteile ist, die können je nach Anforderung konfiguriert werden.
    • Hallo Katip,

      ich habe auch etwas Code für den INA219, den habe ich für meine Anwendung angepasst.
      Es gibt eine Beschreibung für ein Netzteil mit den INa219 und AVR Controller , die Software ist in Bascom.

      Das was ich gemacht habe, die Messwerte des INA219 auf ein Display ausgeben.
      Für meinen Akku Tester / Lader habe ich die Konfiguration des INA219 geändert.
      Beides hier im Anhang.
      Ich hoffe Du kommst damit zu Recht.
      Files