Forum: Mikrocontroller und Digitale Elektronik Arduino Nano vs UNO , Spannungsteiler, Werte ungenau


von falko0815 (Gast)


Lesenswert?

Ich habe ein einfaches Setup ( Nur zwei Widerstände) aufgebaut. Es 
handelt sich um einen Spannungsteiler der per arduino seriellen Monitor 
die Spannung ausgibt.
Beim UNO funktioniert das super, der angezeigte Wert entspricht genau 
dem Wert der Spannung. Stecke ich jetzt aber um, und schließe den Nano 
an, sind Abweichungen von 0,5 - 1 V in der Ausgabe. Hat jmd eine Ahnung 
woran das liegen könnte? Ist der Nano anders aufgebaut, so dass dadurch 
die Werte so stark Abweichen?
Ich hab mal ein Video vom dem Fehler gemacht:

https://youtu.be/IQlAgsehbn8

von Einer K. (Gast)


Lesenswert?

Verwende die interne Referenz.
Wende die 2 Punkt Kalibrierung an.

von Spannungsteiler (Gast)


Lesenswert?

Prosa ist hier etwas fehl am Platz.....

Poste den Schaltplan und dein sketch.

Manchmal kommt man durch diesen Vorgang sogar selber darauf was
falsch gelaufen ist und wo der Fehler begraben ist :-))

von Forist (Gast)


Lesenswert?

falko0815 schrieb:
> Ich hab mal ein Video vom dem Fehler gemacht:
>
> Youtube-Video "Arduino UNO vs NANO Spannungsteiler"

Muss man wirklich jeden Sch..ß als Video bei Duröhre hochladen, statt 
einen vernünftigen Schaltplan, das Programm und eine vernünftige 
Wertetabelle zu zeigen?

von Stefan S. (chiefeinherjar)


Lesenswert?

Ich tippe schwer auf einen fehlenden Kondensator am AD-Pin, was zu einem 
zusätzlichen Spannungsabfall durch das Umladen des Sample and Hold 
Kondensators führt. Aber ja ohne Schaltplan ist keine präzise Hilfe 
möglich.

von Manfred (Gast)


Lesenswert?

falko0815 schrieb:
> Ist der Nano anders aufgebaut, so dass dadurch
> die Werte so stark Abweichen?
Wenn es ein Nano mit AT328 ist, nein.

Arduino F. schrieb:
> Verwende die interne Referenz.
Die leider auch von IC zu IC erkennbar streut.

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> Die leider auch von IC zu IC erkennbar streut.
Darum auch die "2 Punkt Kalibrierung"!
:-)


Übringens:
> Spannungsteiler, Werte ungenau
Ein Spannungsteiler ist das Paradebeispiel für einen Analogrechner.
Keinesfalls ist ist ein solcher Analogrechner ungenau.
Jede digitale Division trägt das Potential in sich viel ungenauer zu 
sein.

von falko0815 (Gast)


Angehängte Dateien:

Lesenswert?

danke für die antworten, trotzdem ist mir nicht ganz klar, wieso dass an 
meinem sketch liegen könnte, auf einen UNO läuft er super und auf einen 
NANO nicht, das wäre ja komisch.
auch glaub ich nicht, dass irgendwelche kondensatoren fehlen, denn wie 
der uno und der nano müßten vom schaltplan eigentlich gleich sein. und 
auch eine 2 punkt kalibrierung macht doch keinen sinn wenn alles auf dem 
uno funktioniert.
hier mein sketch :
schaltplan angehängt

int analogInput = 0;
float vout = 0.0;
float vin = 0.0;
float R1 = 100000.0; // Widerstandswert R1 (100K) - siehe Schaltskizze!
float R2 = 10000.0; // Widerstandswert R2 (10K) - siehe Schaltskizze!
int values = 0;
void setup() {
 Serial.begin(9600); //Seriellen Monitor einbinden
 pinMode(analogInput, INPUT);

}
void loop() {
 // Werte am analogen Pin lesen
 values = analogRead(analogInput); //Messwerte am analogen Pin als 
"values" definieren
 vout = (values * 5.0) / 1024.0; // Messwerte in Volt umrechnen = 
Spannung am Ausgang des
// Spannungsteilers mit Zuleitung zu Pin A0
 vin = vout / (R2 / (R1 + R2)); // Berechnen, welche Spannung am Eingang 
des Spannungsteilers
// anliegt. Das entspricht der Spannung der zu untersuchenden Batterie
 if (vin < 0.09) {
 vin = 0.0; // Unterdrücken unerwünschter Anzeigen
 }

 delay(500);

 Serial.print("V= ");
 Serial.println(vin); // Messwerte am anologen Pin im seriellen Monitor 
anzeigen
}

von Einer K. (Gast)


Lesenswert?

falko0815 schrieb:
> auch eine 2 punkt kalibrierung macht doch keinen sinn
Der Kandidat hat 100 Gummipunkte gewonnen!

OK, ich kann die Einstellung verstehen..
Hatte ich auch schon mal...

falko0815 schrieb:
> vin = vout / (R2 / (R1 + R2));
Ein dreifach Hoch!

von R. R. (elec-lisper)


Lesenswert?

Das Test-Setup in deinem Video spielt sich auch einmal auf dem
Boden ab, und vorher auf deinem Tisch. Scheinbar auch noch mit anderen
Kabeln usw. Da würde ich persönlich noch Fehlerquellen im Aufbau
selbst suchen. Bspw. mangelhafte Kontakte im Steckbrett beim
NANO.

Hast du den Spannungsteiler in beiden Fällen mit einem Multimeter nach-
gemessen?

Ich stimme dir zu, die Beschaltung von AREF Atmega328 ist beim UNO
und beim NANO gleich, daran "sollte" es nicht liegen.
Evtl. ist es wirklich bauteil-bedingte Streuung?

Ich nehme an, das Batterieladegerät auf dem Boden war nicht
verbunden? Ich kanns nicht genau erkennen.

von Jim M. (turboj)


Lesenswert?

falko0815 schrieb:
> auch glaub ich nicht, dass irgendwelche kondensatoren fehlen, denn wie
> der uno und der nano müßten vom schaltplan eigentlich gleich sein.

Der Spannungsteiler ist für einen AVR zu hochohmig, dessen grottliger 
ADC hat eine Eingangsimpedanz von um 15 kOhm typisch - und die könnte 
auch zwischen dem UNO und Nano schwanken. Jedenfalls ergibt das dann 
einen belasteten Spannungteiler.

Ein C mit 100nF über die 10k könnte da schon helfen.

: Bearbeitet durch User
von falko0815 (Gast)


Angehängte Dateien:

Lesenswert?

nur mal kleines update, ich hab den schaltpan mal per fritzing erstellt, 
alle kabel getauscht und alle lötstellen korigiert.
der nano ist ein china nachbau, vielleicht liegt es auch daran, ich 
werde mir mal heute einen originalen nano besorgen

von Einer K. (Gast)


Lesenswert?

Hmmm ....

Warum fragst du überhaupt, wenn dich die Antworten sowieso nicht 
interessieren?

Und, da kannste auch noch ein Dutzend andere Foren mit deiner 
Uneinsichtigkeit belästigen, du bekommst immer die selben Antworten.

von Joachim B. (jar)


Lesenswert?

falko0815 schrieb:
> nano ist ein china nachbau, vielleicht liegt es auch daran

nein an deinem Spannungsteiler, zu hochohmig, lese einfach Datenblätter

von falko0815 (Gast)


Lesenswert?

wenn der Spannungsteiler zu hochohmig ist, warum funktioniert er denn 
dann beim UNO ohne Probleme?

von falko0815 (Gast)


Lesenswert?

wenn der Spannungsteiler zu hochohmig ist, warum funktioniert er denn 
dann beim UNO ohne Probleme?
Ich hab übrigens einen 104er Kondensator probiert, das hat nur das 
ergebnis gebracht, dass die Werte stabiler ausgegeben werden. Aber wie 
schon geschrieben, beim uno habe ich dieses problem gar nicht, da sind 
die Werte top, auch ohne kondensator!

von falko0815 (Gast)


Lesenswert?

noch ein Update:

ich konnte den Fehler jetzt beim Uno auch reproduzieren.
Und zwar tritt der Fehler beim UNO genauso auf, wenn die 
Spannungsversorgung nicht über USB kommt.
Ich habe also beim gleichen Set-Up einmal den UNO an USB angeschlossen: 
Ergebnis korekte Werte
Dann habe ich 9V an VIN und GND angeschlossen: Ergebnis falsche Werte.
Ich hab nochmal ein Video dazugemacht wo man das perfekt sieht, genau in 
dem Moment wo die Spannung über VIN kommt, ist das Ergebnis falsch.

Ich nehme jetzt also mal an, dass beim NANO die Spannung per USB also 
ähnlich wie bei VIN ist und beim UNO halt nicht. Klärt jetzt aber 
immernoch nicht das Problem, ich möchte den arduino nämlich per VIN mit 
Strom versorgen, und da tritt der Fehler ja nun bei jedem Arduino auf.

Vorschläge?

https://youtu.be/U7SJtg2Zmeg

von Joachim B. (jar)


Lesenswert?

falko0815 schrieb:
> ich möchte den arduino nämlich per VIN mit
> Strom versorgen, und da tritt der Fehler ja nun bei jedem Arduino auf.
>
> Vorschläge?

ja interne Referenz nehmen, an Aref 100n und auf den verbauten in der SW 
abgleichen mit einem niederohmigen Spannungsteiler oder wenn dein Rv so 
hoch bleiben soll, Kondi und lange Auslesepausen.

von BlaBla (Gast)


Lesenswert?

Ist der China-Arduino nano eine 3,3 Volt-Version?

von Manfred (Gast)


Lesenswert?

falko0815 schrieb:
> ich konnte den Fehler jetzt beim Uno auch reproduzieren.
> Und zwar tritt der Fehler beim UNO genauso auf, wenn die
> Spannungsversorgung nicht über USB kommt.
Google - Arduino - Grundlagen - Spnnung messen!

> Ich habe also beim gleichen Set-Up einmal den UNO an USB angeschlossen:
> Ergebnis korekte Werte
Nein, zufällig einigermaßen passende Werte.

> Dann habe ich 9V an VIN und GND angeschlossen: Ergebnis falsche Werte.
> Ich hab nochmal ein Video dazugemacht
Youtube und den ganzen Tag das Smartphone in den Griffeln - das nennt 
man Lösungskompetenz.

Der Arduino vergleicht den Messeingang gegen die Betriebsspannung und 
errechnet daraus den Wert. Wenn diese Betriebsspannung sich ändert, weil 
Du verschiedene Versorgungen verwendest, ändert sich auch der Meßwert. 
Also: So geht das nicht!

Entweder sorgst Du für zuverlässig stabile 5,0 Volt, dann werden Uno und 
Nano gleiche Werte zeigen. Mit 9V versorgt, bedingt schon die Toleranz 
des internen Spannungsreglers LM1117 eine Abweichung.

Anderer Weg: Nutze die interne Referenz des Prozessors, dann ist 
zumindest die Versorgung unkritisch. Da aber auch diese interne Referenz 
(Band Gap) von einem Prozessor zum anderen Abweichungen hat, musst Du 
das für jede Arduino-Platte individuell einstellen.

von Manfred (Gast)


Lesenswert?

BlaBla schrieb:
> Ist der China-Arduino nano eine 3,3 Volt-Version?
Aktuell kenne ich Nanos nur als 5 Volt und mit dem AT328. Im Usprung 
könnte es den mit einem AT168 gegeben haben.

Meine ersten Gehversuche habe ich mit einem Uno gemacht, aber jegliche 
realen Anwendungen mit dem Nano - da geht praktisch alles, was der Uno 
kann.

von falko0815 (Gast)


Lesenswert?

Anderer Weg: Nutze die interne Referenz des Prozessors, dann ist
zumindest die Versorgung unkritisch. Da aber auch diese interne Referenz
(Band Gap) von einem Prozessor zum anderen Abweichungen hat, musst Du
das für jede Arduino-Platte individuell einstellen.

das war ein richtig guter Hinweis, hab das gemacht, und jetzt bekomm ich 
auch mit dem Nano halbwegs gute Ergebnisse.

Danke


analogReference(INTERNAL);

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.