Interne Referenzspannung

Hallo liebe Community,

ich bin gerade dabei den AD-Wandler am Arduino UNO zu testen. Wie hoch ist die interne Referenzspannung, laut Datenblatt ist sie 1.1 V. Aber wenn ich meine Messung mache, dann bekomme ich bei 1 V einen Wert von 203.

Meine Auflösung ist bein einer Referenzspannung von 1.1 V 1.07 mV pro Schritt. Wenn ich nur den Wert 203 mit 1.07 mV multipliziere, dann bekomme ich eine Spannung von 0.21721 V, ich hätte aber gerne 1 V.

Das Board ist per USB am PC angeschlossen.

Oder ist dann die internen Referenzspannung dann etwas 5 V, dann hätte ich nämlich jetzt eine Auflösung von 4,88 mV und wenn ich dies mit dem 203 multipliziere, dann bekomme ich den Wert von 0,99064 V heraus.

Aber laut Datenblatt kann die 5 V nicht die interne Referenzspannung sein.

schöne Grüße
Andreas

Andreas_H:
Aber laut Datenblatt kann die 5 V nicht die interne Referenzspannung sein.

Na klar kann sie das sein und ist es auch, es sei denn Du verwendest explizit die Alternative.

@Andreas_H
Um Dir helfen zu können brauchen wir den Sketch und was Du am analogen Eingang angeschlossen hast. Alternativ könnte eine Kristallkugel oder die Adresse eines Telepaten, der Deine Gedanken lesen kann auch hilfreich sein. :wink: :wink: :wink:
Grüße Uwe

Andreas_H:
Meine Auflösung ist bein einer Referenzspannung von 1.1 V 1.07 mV pro Schritt. Wenn ich nur den Wert 203 mit 1.07 mV multipliziere, dann bekomme ich eine Spannung von 0.21721 V, ich hätte aber gerne 1 V.

203 passt sehr gut zu 5V Referenzspannung:
203/1023*5V = 0,99V

Wenn Du mit analogReference(INTERNAL) auf die interne Referenzspannung umschaltest, darfst Du auch nicht sofort losmessen, sondern es dauert eine Weile, bis die umgeschaltete Referenzspannung sich auf den neuen Wert stabilisiert hat.

Versuchs mal mit einem delay(10) nach der Umschaltung und dann wirf die beiden ersten analogRead-Werte in den Müll, und fange erst danach an zu messen.

Ist die Standardeinstellung den 5 V? Ich hab aber gelesen, dass die Standardeinstellung 3.3 V oder 5 V ist. Wie kann ich das bitte verstehen. Wenn ich in meinem Programme analogReferenc nicht benutze, dann habe ich doch die Standardeinstellung aber welche 5 V oder 3.3 V?

Die Standardeinstellung ist Vcc. Ob das 5V oder 3,3V ist hängt vom Board ab.

Und wie ist die Standardeinstellung vom UNO?

Andreas_H:
Und wie ist die Standardeinstellung vom UNO?

Die Standardeinstellung ist bei allen Arduinos analogReference(DEFAULT) und das bedeutet, dass die Betriebsspannung des Boards auch als Referenzspannung verwendet wird.

Irgendwie hört sich Deine Frage so an, als wenn Du diese Seite noch nie gesehen hast:
http://arduino.cc/en/pmwiki.php?n=Reference/AnalogReference

Genau von der Seite habe ich das. Da steht die Standardeinstellung mit 5 V oder 3.3 V! Meine Frage ist jetzt, welche Standardeinstellung hat der Arduino UNO.

Andreas_H:
Genau von der Seite habe ich das. Da steht die Standardeinstellung mit 5 V oder 3.3 V! Meine Frage ist jetzt, welche Standardeinstellung hat der Arduino UNO.

Nochmal: ALLE Arduinos haben die Einstellung DEFAULT!

Und DEFAULT bezeichnet die Betriebsspannung des Boards.

Ein UNO hat 5V Betriebsspannung, und das ist dann auch die Referenzsspannung.
Und zwar mit allen Toleranzen.

Wenn also der UNO (mal angenommen) vom USB-Port nur mit 4.86 Volt versorgt wird, dann ist die Betriebsspannung und damit auch die Referenzspannung des UNO 4.86 Volt.

Und wenn Du denselben UNO mit einem Netzteil betreibst, und der Spannungsregler auf dem Board regelt (mal angenommen) die Betriebsspannung auf 5,08 Volt, dann ist die Referenzspannung auch wieder die Betriebsspannung, in dem Fall also 5,08 Volt.

Ahhhhh, ok jetzt habe ich das verstanden. Wo kann ich das nachlesen? Danke!

Gruß
Andreas

Guten Abend,

ich hab da was gefunden und bin jetzt etwas verwirrt. Ich bin gerade davbei den AD-Wandler des Arduino UNO zu testen und hab das folgender Weise versucht. An PIN A0 wird per Netzgerät eine Spannung gegeben und an PIN 8 wird der digitale Wert ausgegeben.

Nun bin ich auf ein Artikel gestoßen und dazu hätte ein paar Fragen bzw. will nur wissen ob mein Versuch falsch ist.

http://www.netzmafia.de/skripten/hardware/Arduino/intro.html

Im Artikel, Absatz 7 steht folgendes "Die Ausgabe analoger Werte erfolgt jedoch nicht über einen Digital-Analog-Wandler, sondern per Pulsweitenmodulation (PWM) auf den Pins 3, 5, 6, 9, 10 und 11. Es wird also kein echter Analogwert ausgegeben. Vielmehr wird am jeweiligen Pin ein Rechtecksignal ausgegeben. Das Verhältnis von Einschalt- zu Ausschaltzeit bestimmt den analogen Ausgabewert."

Nach dieser Aussage, könnte doch mein Versuch garnicht funktionieren oder...?

schöne Grüße
Andreas

Nach dieser Aussage, könnte doch mein Versuch gar nicht funktionieren oder...?

Naja...
Wenn nun nicht gerade Pin 8 nehmen würdest, sondern z.B. pin 5, dann könnte da schon eine LED, oder so, heller und dunkler werden....
Das ist zwar nicht wirklich Analog, aber die langsamen Augen mitteln das recht gut.

Andreas_H:
Nach dieser Aussage, könnte doch mein Versuch garnicht funktionieren oder...?

Was denn für ein "Versuch"?
Schaltung?
Sketch?

Die 8-Bit AVRs können nur "Analogwerte messen" (analogRead), aber keine "Analogwerte ausgeben".

Die Funktion "analogWrite" erzeugt anders als es der Name vermuten läßt, ein digitales PWM-Signal mit einer Standardfrequenz von ca. 500 bis 1000 Hertz PWM-Frequenz. D.h. ein Pin wird ca. 500 bis 1000 mal pro Sekunde LOW oder HIGH gesetzt, mit variabler Zeitdauer für HIGH, so dass es beispielsweise bei einer so angesteuerten LED so aussieht, als würde man "analog" die Helligkeit verändern. Tatsächlich wird die Helligkeit per PWM nicht analog geändert, sondern die LED ist einfach nur zu 1/255 der Zeit, zu 100/255 der Zeit oder zu 255/255 der Zeit eingeschaltet, je nach gesetzten PWM-Wert.

Siehe auch: http://arduino.cc/en/Tutorial/PWM

Um einen Analogwert auszugeben, benötigst Du einen DAC (Digital-Analog-Converter), wie ihn der DUE zum Beispiel hat. Auf den 8-Bit Atmegas kannst Du durch eine einfache externe Beschaltung mit Widerstand und Kondensator so etwas ähnliches wie einen DAC aufbauen, Bastelanleitung zum Beispiel hier:

Aber selbst wenn Du die PWM-Frequenz hochsetzt, wird da trotzdem immer eine Ripple-Spannung auf dem so erzeugten Signal überlagert sein.

Was hast du überhaupt vor? Wenn du nur den Wert den du mit dem ADC misst sichtbar/lesbar machen willst, gib ihn einfach auf Serial aus.

Ich will ein Analogwert messen. Dazu möchte ich den AD-Wandler des Arduino UNO nutzen! Ich bin nur deswegen verwirrt, weil ich am PIN 8 den Digitalwert ausgebe das funktioniert auch wunderbar. Nur laut diesem Artikel kann ich den Digitalwert nur per PWM ausgeben.

Messen ist eine Sache. Den Wert dann Anzeigen, bzw. Visualisieren ist was anderes.

Du misst mit analogRead() einen Wert zwischen 0 und 1023. Wieso willst du den an einem einzelnen Pin ausgeben? Außer vielleicht eine LED zu dimmen oder mit einem Oszilloskop zu messen bringt das nichts.

Ich dacht, wenn ich den gemessen Wert am Serial Monitor anzeigen will, dann muss ich doch ein digitalen PIN als OUTPUT definieren.

Darf ich dir den in der Arduino-IDE mitgelieferten Beispielsketch
"AnalogInOutSerial" mal ans Herz legen?

Da wird genau das gemacht:
einen Wert Analog messen und Seriell ausgeben, damit er über den Seriellen Monitor am PC angezeigt werden kann.

Andreas_H:
Ich dacht, wenn ich den gemessen Wert am Serial Monitor anzeigen will, dann muss ich doch ein digitalen PIN als OUTPUT definieren.

Nicht dass ich wüsste.

Wo hast du das her?
(vielleicht kann ich ja noch was lernen)