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.
@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.
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?
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.
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.
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.
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...?
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.
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.
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.