Problem mit AnalogRead(): Nur bei Netzteilbetrieb

Hallo zusammen,

Folgender einfacher Aufbau:
Arduino Nano
Sensor TCRT5000 (Lichtreflexschranke)
OLED LCD SH1106

Der Sensor ist an Arduino GND, 3,3V und A0 angeschlossen.
Das LCD ist an GND, 3,3V, A4 und A5 angeschlossen.

Sketch ist ganz simple und gibt mir die aktuellen Analogwerte von A0 auf Serial-Monitor und LCD aus.

Der Arduino wird über den eigenen USB-Port mit Spannung versorgt.

  • Wenn die Spannungsquelle ein USB-Port meines Notebooks ist, werden die Analogwerte korrekt ausgegeben. (fixer Abstand: Wert: 120 +/- 2)
  • Wenn die Spannungsquelle ein separates Netzteil ist (zwei ausprobiert: einmal 5V und 550mA, und einmal 5V und 1A) spinnen die Analogwerte total. (gleicher Abstand: Werte: von 20 bis 300 is alles drin, total willkürliche und große Sprünge)

Der Aufbau wurde nicht verändert, nicht mal berührt, lediglich das USB-Kabel zur Spannungsversorgung wurde aus dem Notebook gezogen und in ein Netzteil gesteckt.

Ich bin ratlos und verwirrt. Hat jemand vielleicht eine Idee?

Viele Grüße!

Na, ich würde mal sagen: die Netzteile taugen nix.

Edit: häng mal nen Elko parallel, vielleicht hilft das schon. So >220 µF schadet nicht.

Das nur mit den Netzteilen zu erklären?
Dann müssten beide echt schlecht sein.

Der Elko kann nicht schaden, aber ein Schaltplan wäre sicher auch hilfreich.
ist das der nackte Sensor, oder ein fertiges Modul?
Wie ist der angeschlossen?

Und: bist du sicher, dass die 3,3V nicht überlastet ist? Beim Nano max 50mA!

Danke für eure Antworten.

Die Netzteile habe ich schon an anderen Arduino und Raspberry pi Projekten getestet, da hatte ich bisher keine Probleme damit.

Das mit dem Elko probiere ich heute Abend mal aus.
Aber das komische ist ja: mit USB-Strom vom Notebook funktioniert alles, auch ohne Elko!?

Offensichtlich steht das natürlich in Verbindung mit den Netzteilen, aber ein defekt kann ich nicht feststellen.

Was kann hier denn noch unterschiedlich sein in der Betriebsart?

Der Elko kann nicht schaden, aber ein Schaltplan wäre sicher auch hilfreich.

Der Schaltungsaufbau ist exakt wie im Eröffnungspost beschrieben, keine weiteren Komponenten.

ist das der nackte Sensor, oder ein fertiges Modul?
Wie ist der angeschlossen?

Der Sensor ist ein fertiges Modul, welcher GND, Vin, D0 und A0 Anschlüssel besitzt, wobei für mich nur der Analoge Kanal wichtig ist der so auch angeschlossen ist.

Und: bist du sicher, dass die 3,3V nicht überlastet ist? Beim Nano max 50mA!

Nachdem im Notebook-USB-Betrieb alles ordentlich läuft obwohl hier ja weniger Power als von den Netzteilen kommt, denke ich dass die 3,3V nicht überlastet sind.

Dir scheinen noch einige Grundbegriffe bei der Spannungsversorgung zu fehlen :frowning:

Wenn ein Regler max. 50mA liefern kann, dann wird das auch nicht mehr, wenn ein stärkeres Netzteil verwendet wird.

Heutige Schaltnetzteile liefern nur ungefähr die Spannung, die draufsteht, und die zappelt auch noch um diesen Wert. Je stärker ein Netzteil ist, desto mehr zappelt es bei kleiner Belastung. Mit ausreichend großen Elkos bekommt man das Zappeln einigermaßen weg, oft braucht man zusätzlich noch keramische (HF) Kondensatoren für die hochfrequenten Anteile. Und das nicht nur einmal, sondern an jeder längeren Leitung zur Versorgung externer Module.

Der A/D-Wandler braucht eine Referenzspannung, und die ist standardmäßig die Betriebsspannung des Arduino. Wenn diese Betriebsspannung schwankt, oder Einbrüche wegen schwankender Ströme hat, dann schwanken die Meßwerte des ADC entsprechend. Deshalb hat jeder Arduino eine präzise Spannungsquelle eingebaut, auf die man mit analogReference() umschalten kann. Welche Spannung das ist, hängt vom Arduino Typ ab (siehe Datenblatt). Ggf. braucht man dann noch einen Spannungsteiler, damit die Eingangssignale nicht höher werden als die Referenzspannung.

Lange Leitungen sind nicht nur bei der Stromversorgung kritisch, sie können auch Störungen einfangen. Deshalb sollte man auch langsame analoge Signale (Temperatur...) durch ein RC Filter laufen lassen, um die Störungen wegzukriegen.

Daß irgendwas schon mal funktioniert hat, ist keine Garantie dafür, daß alles in Ordnung ist. Man muß schon wissen, was sich in einem anderen Aufbau alles ändert, und was man vorher genau prüfen muß - nicht nur ausprobieren - damit es tatsächlich auch weiterhin und anderswo funktioniert.

Wo (auf welchem Pin / Stecker) hast Du die Netzteile angeschlossen?
Grüße Uwe

@DrDiettrich:
Danke für deine Ausführung. Ich beschäftige mich hiermit nur als kleines Hobby, daher ist die ein oder andere Lücke natürlich vorhanden und deswegen wende ich mich ja auch hier her. :slight_smile:
Das mit dem Regler ist mir klar, verstehe die Frage dahinter aber nicht, da der Aufbau ja mit anderer Stromquelle funktioniert.

@uwefed
Habe einmal ein Netzteil über Vin und GND angeschlossen und einmal mit einem USB-Netzteil direkt an den USB-Port des Arduinos. Jedes mal das gleiche.

Die Problematik habe ich beseitigen können indem ich den Arduino geerdet habe, Stichwort scheint mir hier "Ableitstrom" zu sein.

Netzteile sind keine Batterie.

Stell dir ein Oszi vor und dann miss die Spannung der Batterie. Es kommt ein Strich.

Miss nun die Spannung des Netzteils ohne Last und es kommt ein Strich mit hochfrequenten Minischwingungen, also die Spannung zappel um sagen wir 0,2V hoch und runter, aber mit hoher Frequenz, so einigen hundertausendmal pro Sekunden möglicherweise (auslegung des Netzteils, jeder baut etwas anders).

Und nun belaste es. die Schwingungen nehmen zu, je größer die Last und je kleiner das Netzteil. Weil Kondensatoren die das abfedern Platz brauchen.

Noch mehr Platz brauchen Spulen, die dämpfend wirken. Du hast das nun mit deiner Erdung gemacht. Grundsätzlich eine gute Lösung, solange du aufpasst, wo Ströme fliesen. Erdung wirkt auch dämpfend.

Wenn deine Spannung flattert, flattert dir auch die ganze Schaltung. Ein digitaler IO wird sich wegen 0,2V nicht ins Hemd machen. Zwischen Low und High muss je nach Bausteinfamilie einige Volt liegen. Nichts so bei Analog. Und leider sind auch auf den Platinen der Arduino-familie selten große Kondensatoren zum Puffern und entstören.

Und da deine Netzteile solche Probleme machen, sind sie qualitativ eben auch Bullshit. Heist nicht, das sie die Spannung oder die Leistung nicht bringen. Sondern das bei ihnen Entstörung eingespart wurde. Kauf dir für zukünfte Basteleien ein etwas besseres Netzteil. So das du immer eine Referenz hast von der du weist, das sie sauber funktioniert.

Dein Laptopausgang ist übrigens extrem hochwertig stabilisiert. Weil da ein gewaltiger Puffer dazwischen liegt, dein Akku. Und weil die interne Elektronik am PC das Spannungsflattern auch nicht mag. Daher auch entsprechende Netzteile verbaut werden.

@chefin:

Danke, das macht es für mich schon viel nachvollziehbarer.

So wie ich das mit dem Ableitstrom verstanden habe sind deswegen in den Netzteilen Filterkondensatoren die entweder mit dem Schutzleiter verbunden sind, oder GND.
Da viele Netzteile ja nur L und N Kontakte haben, wird hier also GND verwendet. Diese Netzteile sind deswegen ja nicht schlecht, wird ja oft verwendet, nur sollte man das eben im Hinterkopf haben.

Bitte korrigiert das, wenn mein laienhafter Gedanke falsch ist. :wink:

dr_vga:
Die Problematik habe ich beseitigen können indem ich den Arduino geerdet habe, Stichwort scheint mir hier "Ableitstrom" zu sein.

Wenn die Schaltung durch Erdung des Arduino funktioniert, scheint aber trotzdem an deinem Aufbau was nicht in Ordnung zu sein.

Naja...nicht grundsätzlich falsch, nur mit Erden umgehst du den Schutz des Netzteils.

Erde und NULL sind das selbe, physikalisch. Am Hausanschluss kommen nur 4 Drähte an, keine 5. Erst hier wird N und PE aufgetrennt. An der Steckdose nimmt das Netzteil nur den N und L und mittels elektronik und minitrafo erhält man am Ausgang eine Spannung die Potentialfrei zu L und N ist. Und das Gerät selbst hat nun auch keine Filterkondensatoren gegen PE, weil garkein PE angeschlossen ist. Und gegen N kann man nicht, weil man nie weis wierum stecker drin steckt.

Du überbrückst nun die Schutzisolation, indem du den - der Sekundärspannung wieder mit dem N verbindest (N = PE = Erdung). Nach der Trennung von N und PE wird zwar der PE wiederum mit dem Hauserder verbunden(ein Eisen im Erdreich). Aber diese Trennung innerhalb des Hausnetzes erfolgt aus anderen Gründen.

Sprich, du mischt einerseits Informationen aus geerdeten Geräten und legst sie nicht geerdeten Geräten zugrund und du durchtrennst die Schutztrennung von Primär und Sekundär, was nach Vorschrift ebenfalls nicht erlaubt ist. Auch wenn ich es jetzt in deinem Fall nicht für gefährlich halte. Die Dinge die dazu kommen müssen damit an deinem GND nun unzulässige Spannung anliegt, machen sich viel früher bemerkbar. Meist dadurch das etwas nicht mehr funktioniert.

Grundsätzlich also machbar, lt Vorschrift nicht erlaubt. Passiert allerdings ungewollt wenn man 2 Netzteile benutzt. zB 5V für Arduino als Schutzisoliert und 12V für Motor als geerdetes Netzteil und dann GND verbindet. Ein Fall der immer vorkommen kann und in den Überlegungen zur Norm auch berücksichtigt.

Wenns deine Störung behebt, lass es so.

guntherb:
Wenn die Schaltung durch Erdung des Arduino funktioniert, scheint aber trotzdem an deinem Aufbau was nicht in Ordnung zu sein.

Nicht in Ordnung ist das Netzteil.

Allerdings erweist sich dei Erdung nun als hilfreich. Wenn das Netzteil zu sehr stört und vieleicht sogar einen Überschlag zwischen Primär und Sekundär erzeugt, fliegt die Sicherung. Statt das der Arduino plötzlich Netzpotenial hat und man unbedarft hinlangt. Ist so einem Studenten passiert, der sein Handy laden wollte und dabei weiter chatten. Und das in der Badewanne. Obwohl eigentlich nur 5V rauskommen sollten, hat das Netzteil zu wenig Abstand intern zwischen Primär und Sekundär und ist übergeschlagen. Gehäuse von handy lag auf Phase und Student war tot.

Statt Orginalladegerät hatte er billigen Chinanachbau.

und wie erkenne ich dann ein "geeignetes" Netzteil, oder auf welche Angaben muss ich bei einem neuen Kauf achten, um nichtmehr so ein "bullshit" zu kaufen?

dr_vga:
und wie erkenne ich dann ein "geeignetes" Netzteil, oder auf welche Angaben muss ich bei einem neuen Kauf achten, um nichtmehr so ein "bullshit" zu kaufen?

Wüsste kein Erkennungsmerkmal, wie man Billigschrott und Qualitätsnetzteil von aussen erkennt. Ich könnte versuchen es zu messen, indem ich den Ableitstrom messe. Dazu haben wir ein Messgerät, aber das kostet über 3000 Euro. Dient der Prüfung aufgrund von Vorschriften der Berufsgenossenschaft.

Ob Geerdet oder Schutzisoliert ist kein Qualitätsmerkmal. Beide Schutzmechanismen wirken, wenn sie ordentlich ausgeführt sind.

Früher hätte ich mal den Preis angeführt. Inzwischen habe ich 12 Euro Netzteile geprüft (5V/2A) und die halten 2KV Isolationsspannung für 10sec aus (gefordert wären 2sec) und bringen fast keine Wärme (sprich hoher Wirkungsgrad).

Ich geh also momentan so an die Sache ran: ich schau ob ich einem die Eier abschneiden könnte, wenn es so jemanden gibt, denke ich mal er wird zumindest den gefährlichen Schrott aussortieren. Sitzt aber alles ausserhalb meiner Reichweite, lass ich die Finger weg.

Naja...nicht grundsätzlich falsch, nur mit Erden umgehst du den Schutz des Netzteils.

Deine Ausführung erstaunt mich doch sehr.
Ok, ich kenne die Bundesdeutscehn Richtlinien nicht, da ich nie in Deutschland gearbeitet haben, aber ich nehme an sie sind vergleichbar mit Italien und da ist eine Erdungsanlage für den Nulleiter unbedingt eine andere als die Erdungsanlage des Schutzleiters. Die erste ist in der Trafostation die Mittelspannung auf 230V runterbringt und die zweite ist bei Dir zuhause. Durch die Trennung der beiden Erdungsanlagen kann der Nullleiter einige V gegenüber Erdung haben.

Ich sehe keine Gefahr wenn ein Pol sekundärseitig geerdet ist. Da müßte jedes ATX Netzteil gefährlich sein. Wenn natürlch der Nulleiter aka Erdleiter eine Spannung gegenüner anderen Masse wie zB Wasserrohre hat, dann wirds gefährlich. Da ist aber die Elektroanlage schadhaft und muß repariert werden.

Grüße Uwe

Ja, die Deutschen Vorschriften unterscheiden sich von den Italienischen.

Der Sternpunkt am Trafo ist natürlich geerdet. So wie auch das Haus einen Hauserder hat.

Aber der 4. Leiter heist PEN, weil er PE und N ist. Wird ab 16qmm gemeinsam geführt, drunter muss es 5 Drähtig geführt werden. Aber es gibt keine 10 qmm Hauszuleitungen mehr. Nur Inhouse. Dort wird das dann in N und PE getrennt, der PE wird NUN auf den Hauserde geführt. Die Trennung hat im Zählerkasten zu erfolgen der ebenfalls zwingend vorgeschrieben ist mit Abschaltvorrichtung vor dem Zähler. Sicherungen müssen im Hausanschlusskasten sein, der kann aber auch im Zählerkasten mit drin stecken als Modul. Nach den Hausanschlussicherungen, der Trennung und dem Zähler MUSS eine Vorsicherung sein. Dort darf es auf eine Steigleitung gehen oder direkt Sicherungen verbaut werden.

Es besteht auch die Vorgabe Ströme durch den PE und die Erdung zu vermeiden wegen der negativen Effekte von Stromfluss über Erde (galvanische Effekte).

Ich denke also schon das da einige Unterschiede sind.

Grundsätzlich gilt auch, das nach Schutztrennung (Trenntrafo) keine Erdung erfolgen sollte. Allerdings gilt das nicht für Schutzkleinspannung bis 24V. Die darf geerdet werden, muss aber nicht.

Durch die Erdung bei abgeschirmten Leitungen im IT Bereich sind heute fast alle Kleinspannungsquellen geerdet. Daher ist es schwer zu sagen, wie es am besten funktioniert. Im Labor wo wir zb Abschirmungen prüfen kann man nie genau vorher sagen ob im abgeschirmten oder offenen Zustand die bessere Wirkung erzielt wird. KNX-Bus wird zb ohne Abschirmung und Erdung gefahren. Schliess mal Erdung an, der Bus spinnt wie blöd. Habs probiert, keine Ahnung wieso, aber scheinbar unsere Frequenzumrichter, die dann stören. Nicht angeschlossen funktioniert er perfekt. Steuert unsere Bude hier seit 4 Jahren nun ohne Störungen.

Bei ordentlichem Aufbau (ich kenne die aktuellen Vorschriften nicht) ist jedes Gerät erdfrei, der Schutzkontakt liegt nur an Metallgehäusen. Entstörkondensatoren können bei den üblichen 2-poligen Steckernetzteilen Wandwarzen nur zwischen P und N liegen, und das auch nur primär. Zwischen Primär- und Sekundärkreis sollten keine Kondensatoren verbaut sein.

Andererseits stellt sich beim Zusammenschalten mehrerer Geräte (Spannungsquellen) die Frage nach einem Bezugspunkt, und der wird üblicherweise Masse (Gnd...) genannt. Wäre in einem Netzteil ein Pol an N oder PE gelegt, könnte man nur diesen als gemeinsame Masse verwenden, und so ein Teil wäre definitiv Schrott. Man könnte also zumindest testen, ob man jeden Ausgang (immer nur einen) auf PE legen kann, ohne daß nennenswert Strom fließt, oder ein Schutzschalter die Wohnung dunkel schaltet. Oder zwei Netzteile in Serie schalten, und schauen, ob tatsächlich die Summenspannung herauskommt.

Bei der Verwendung von USB hängt ein Arduino an der Masse des PC. Und diese Masse hat schon mal ein gewisses Gewicht (Kapazität), und nur deshalb funktionieren kapazitive Schalter so, wie im Tutorial angegeben. Wird der USB Anschluß ausgestöpselt und der Arduino von einer anderen Spannungsquelle versorgt, funktionieren sie plötzlich nicht mehr, und viele andere Schaltungen auch nicht, bei denen man vergessen hat, Gnd anzuschließen - einer der häufigsten Anfängerfehler. Ich vermute mal, daß Dir genau dieser Fehler unterlaufen ist, daß Du zuerst eine Masseverbindung über die USB-Anschlüsse hattest, die dann beim Ersatz durch separate Netzteile weggefallen ist.

Merke: Strom fließt dann, wenn man ihn braucht, immer nur über zwei Leitungen. Nur der Strom, den man nicht haben will (Radio aus dem Verstärker...) braucht keine Rückleitung.

Und dann gibt es noch die Masseschleifen, bei denen Strom auch über Leitungen fließt, die eigentlich auf gleichem Potential liegen sollten. Besonders ärgerlich wird das, wenn bei abgeschirmten Kabeln die Abschirmung (eigentlich unsinnig) auf beiden Seiten auf Masse gelegt ist. Das kann zu den seltsamsten Effekten führen, bis man im Kabel eine Seite des Schirms abknipst.

Wenn die Masseleitung sowohl zur Stromversorgung als auch als Bezug für analoge oder digitale Signale benutzt wird - bei fast allen externen Modulen - muß man dafür sorgen, daß dieser Strom möglichst gering bleibt. Bei leistungsstarken Verbrauchern sollte man denen ein separates Leistungs-Netzteil verpassen, und dieses nur am Modul anklemmen, damit kein Versorgungsstrom über den Gnd zum Arduino fließt. Stören tut dabei nicht der Strom, sondern der Spannungsabfall auf der Leitung, die durch so einen Strom verursacht wird.
Leitungen sind auch Widerstände!

Ansonsten muß man notfalls in 3- oder 4-Leiter Technik messen bzw. übertragen, mit 2 Messleitungen die eine praktisch stromlose Messung der Pegel am Sensor erlauben. Wobei man bei analogen Signalen das Problem bekommt, daß diese zwei Leitungen nicht gleichzeitig mit dem einen ADC gemessen werden können, sondern nur nacheinander. Da hilft dann nur noch ein Operationsverstärker, der gleich die Differenzspannung bildet, die direkt mit einem einzigen analogRead() gemessen werden kann.

Mir ist auch erst hinterher ein Designfehler meines USB-Scopes aufgefallen, das vom PC versorgt wird. Mit dem kann man keine potentialfreien Messungen machen, weil seine Masse zwangsweise mit der des PC verbunden ist. Mit meinem alten Röhrenoszi gab es dieses Problem nicht, da konnte AFAIR sogar jeder Kanal eine andere Spannung auf der BNC-Masse haben - zumindest in gewissen Grenzen.