Moin,
ich würde gerne den Wert eines 10k Poti mit einem Arduino einlesen.
Leider funktioniert das nur bedingt.
Zunächst einmal verwende ich ein 5 V Schaltnetzteil von Meanwell und
versorge damit über den VIN-Pin meinen Arduino. Die 5 V wollte ich auch
dem Poti bereitstellen. Wenn ich den Poti jedoch betreibe erscheint z.B.
bei der hälfte statt 1023/2 = 511 der Wert 800. Wenn ich den Poti direkt
am 5V Pin vom Arduino anschließe, läuft alles wunderbar. Jedoch wollte
ich die 5 V überall auf meiner Platine über das Netzteil zur Verfügung
stellen und eigentlich müsste dann am Arduino Pin auch mein Wert 2,5V
über den Poti ankommen, auch wenn von Extern mit 5V versorgt. Oder irre
ich mich?
--
Betreff korrigiert
-rufus
V+ und V- (5V Netzteil) direkt an der Arduni VIN und GND. Vom Netzteil
V+ und V- außerdem direkt auf die Protoplatine. Aber ich bekomme immer
den Wert 800 statt 511. Wenn ich den Poti am 5V Pin des Arduino
anschließe, geht es ...
Vin geht an einen 5V Festspannungsregler. Der erwartet natürlich Vin >
Vout und da du mit 5V rein gehst kommen <5V raus. Angenommen du nutzt
Vdd als Vref für den ADC und die externen 5V für das Poti sind alle ADC
Werte höher als angenommen, da Vref niedriger ist als du annimmst.
Die externen 5V kommen an den 5V Pin des Arduino und nicht Vin.
10k Poti mit Arduino schrieb:> Zunächst einmal verwende ich ein 5 V Schaltnetzteil von Meanwell und> versorge damit über den VIN-Pin meinen Arduino.
Dort werden aber mindestens 7V benötigt.
> Wenn ich den Poti jedoch betreibe erscheint z.B.> bei der hälfte statt 1023/2 = 511 der Wert 800
Das ist logisch, denn dein Mikrocontroller bekommt zu wenig
Versorgungsspannung, nämlich ca. 3V. Deswegen sind die Messwerte höher
als erwartet.
3V / 1024 = 3mV
2,5V / 3mV = 833 -> Passt ungefähr
Außerdem darf die Spannung am analogen Eingang nie höher sein, als die
Versorgungsspannung des Mikrocontrollers.
Lösungsvorschlag:
a) Verwende ein Netzteil mit mindestens 7V an Vin. Außerdem sol das Poti
an GND und 5V angeschlossen erden, nicht ans Netzteil.
b) Schließe das Netzteil stattdessen an den +5V Pin an
Wollte dich jetzt nicht veräppeln.
Was hast du denn für einen Arduino ?
Wenn es einer mit 3,3 V ist dann würde der Wert nämlich
passen.Bei VCC 3,3V wären 2,5V ungefähr der Wert 800.
Eingang richtig konfiguriert....ach ne dann würde der Fehler nicht
auftauchen, wenn du das vom Board direkt versorgst.
Darum messe mal deine Spannung am RAW Eingang bzw VCC.....
10k Poti mit Arduino schrieb:> Ok, V+ an 5V Anschluss vom Arduino geklemmt und an das Poti.> FUnktioniert trotzdem nicht
Welche Spannungen misst du am 5V Pin und am analogen Eingang?
Zeige auch deinen Quelltext, da könnte nämlich auch ein Fehler sein.
10k Poti mit Arduino schrieb:> UNd an AREF 3,3
Aha. Dann müsste dein Messwert jetzt 1023 (nicht 800) sein. Denn du hast
eine Referenz-Spannung von 3,3V, das wäre die maximal messbare Spannung.
Wo kommen die 3,3V denn her? Wenn dein Mikrocontroller mit 5V versorgt
wird, muss da irgendwo noch eine 3,3V Quelle sein.
Welchen Arduino verwendest du?
Arduino Uno R3 wird es wohl kaum sein, denn der hat mit 3,3V nichts zu
tun.
Hab das Problem gefunden, aber noch keine Lösung. Ich verwende ja für
meinen Thermistor 3,3V. Von den 3,3V geht ein Strang auf AREF. Das war
ein Lösungsvorschlag von der Adafruit-Webseite, um die Genauigkeit zu
erhöhen. Schließe ich 5V an VREF funktioniert es. Jetzt bleibt die
Frage, wenn ich an VREF nichts anschliesse, wieso es dann nicht geht.
Muss ich an VREF stets eine Spannungsquelle anschließen, wenn ich andere
Bauteile von extern betreibe?
10k Poti mit Arduino schrieb:> Ich verwende ja für meinen Thermistor 3,3V.
Zeige deinen Schaltplan und den Quelltext. benenne alle verwendeten
Bauteile. Ich habe keine Lust mehr, dir jedes relevante Detail einzeln
aus der Nase zu ziehen - vor allem wenn die Wahrheiten erst kommen,
nachdem ich bewiesen habe, dass deine Infos falsch/unvollständig sind.
Schaltplan war dieser hier:
https://learn.adafruit.com/thermistor/using-a-thermistor
Da ich an VREF jedoch 3.3 V angehängt habe, bekam ich beim Poti den Wert
800. Ich werde einfach die 5V verwenden statt 3.3V. Die Messfehler beim
Thermistor beziehen sich eher auf die Versorgung per USB.
10k Poti mit Arduino schrieb:> Ich werde einfach die 5V verwenden statt 3.3V.
Pack dein Poti einfach zwischen Aref und GND. Dann ist es egal, wie
deine Referenzsspannung konfiguriert ist und ob deine
Versorgungsspannung schwankt, du kannst immer aus dem ADC-Wert auf die
Poti-Stellung schließen.
Εrnst B. schrieb:> Pack dein Poti einfach zwischen Aref und GND. Dann ist es egal, wie> deine Referenzsspannung konfiguriert ist
nö
Wenn er die Aref intern erzeugt, darf er sie nicht extern belasten.
Deswegen sind Schaltplan und Quelltext wichtig.
Merkwürdig nur, dass wenn ich 5V an VIN anschließe und am 5V Pin des
Arduino die 5V für den Poti nehme, geht es wunderbar. Oder Wenn ich VREF
komplett abklemme ...
Du agierst planlos.
Zeige Quelltext und Schaltplan. Und wenn du misst, zeichne ein, wo du
was gemessen hast.
An den Vin Pin musst du wie gesagt mindestens 7V anschließen, weil der
Arduino sonst nur etwa 3V Spannungsversorgung hat. Wenn du dann das Poti
an den 5V Pin anschließt, hat das auch nur 3V.
Ich würde Dir empfehlen, das Programm auf ein Minimum zu reduzieren, wo
das Problem noch gerade erkennbar und nachvollziehbar ist. Das hilft
Dir, den Überblick nicht zu verlieren.
So oder so kommst du nicht umhin, einen Schaltplan zu zeichnen. Du
verzettelst dich sonst, und uns auch.
Gute Entscheidung.
Folgende Spannungen sind hier relevant:
Der ADC vergleicht seine Eingangsspannung mit Aref. Aref kann wahlweise
von extern zugeführt werden, oder intern erzeugt werden (ist
programmierbar).
Sowohl die Spannung an Aref als auch am analogen Eingang darf nicht
höher als die Stromversorgung des Mikrocontrollers sein, welche du am
+5V Pin messen kannst.
Der Spannungsregler auf dem Board benötigt mindestens 7V an Vin, um
daraus 5V zu erzeugen.
Hi
>Ich gehe nochmals alles Schritt für Schritt durch und werde mich melden,>wenn ich alles sauber niedergeschrieben habe.
Dann korrigiere gleich den Fehler
ADC value = Vi * 1023 / Varef
in Datenblatt konformes
ADC = VIN * 1024/VREF
MfG Spess