Arduino Nano vs UNO , Spannungsteiler, Werte ungenau

Gast #4874043
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
Gast #4874069
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 :-))
Gast #4874512
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.
Gast #4874657
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
}
Angehängte Dateien:
#4874702
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.
#4874810
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.
Gast #4874897
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.
Gast #4875019
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!
Gast #4875041
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
Gast #4875191
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.
Gast #4875221
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.
Gast #4875285
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);

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren