Arduino ADC-Werte ändern sich nach USB-Trennung

Geben Sie hier die Bildbeschreibung einIch verwende eine analoge Lesefunktion von Arduino uno, um eine Spannungsteilerschaltung für einen Spannungsbereich von 0-70 VDC zu lesen. Auf dem Spannungsteiler verwende ich 2,7 kOhm und 36 kOhm, um den Spannungsbereich von 0-70 VDC bis 0-5 VDC für den Arduino-Analogeingang zu reduzieren. Die Schaltung funktioniert gut mit der USB-Stromversorgung des Arduino, und sobald ich den USB trenne und das Arduino auf das Backup-Doppelschaltnetzteil (120 VAC auf 12 VDC und 5 VDC) umschaltet, ändern sich die Analogwerte. Die Werte sind immer noch stabil und ich sehe keine Müllwerte, aber es gibt einen großen Versatz zwischen den ursprünglichen Werten und den Werten nach dem Trennen der USB-Stromversorgung von Arduino. Kann jemand mit einer Lösung dazu etwas sagen? Ich habe es mehrmals überprüft und die Masse ist im gesamten Stromkreis gemeinsam.

Ein Schaltplan würde helfen ... Andernfalls lautet die Antwort, was beim Umschalten der Stromversorgung anders ist ... was auch keine Antwort ist ...
@Trevor Ich habe den Schaltplan als Referenz hinzugefügt. Bitte beachten Sie, dass der Schaltplan nicht viel hilft, da das Problem irgendwo mit dem Umschalten des Netzteils von USB auf das externe Dual-Voltage-Schaltnetzteil zusammenhängt.
Ja, das tut es nicht ... wie bekommt der Arduino seinen Strom, wenn die 120 V wegfallen?
Vermutlich vom USB-Bus @Trevor
@Trevor Es schaltet sich ab. Aber während es an den USB-Anschluss des Computers angeschlossen ist, funktioniert es reibungslos, obwohl die Stromversorgung eingeschaltet ist. Sobald die USB-Versorgung des Computers getrennt wird und das Arduino beginnt, Strom von der Stromversorgung zu erhalten, ändern sich die Analogwerte. Ich habe die Spannungsteilerspannung vor und nach dem Trennen des USB überprüft, die Werte sind genau gleich. etwas ändert sich in der ADC-Referenz oder so, nicht sicher, was passiert.
Ich würde vorschlagen, dass zwischen Ihrer Wechselstromversorgung und Ihrer Backup-Gleichstromversorgung ein Versorgungspegelunterschied von 5 V besteht. Da der A/D die 5 V als Referenz verwendet, würden Sie eine Änderung sehen.
Welche Quelle wird für Vref verwendet? Überprüfen und messen Sie Aref out und alle Gnd-Spannungen in beiden Modi. V REF kann entweder als AV CC , interne 1,1-V-Referenz oder externer AREF-Pin ausgewählt werden. AV CC ist über einen passiven Schalter mit dem ADC verbunden. Die interne 1,1-V-Referenz wird über einen internen Verstärker aus der internen Bandgap-Referenz (V BG ) erzeugt. In jedem Fall ist der externe AREF-Pin direkt mit dem ADC verbunden.
@ TonyStewart.EEseit '75 habe ich keine Referenzspannung angegeben. Ich dachte, dass das Arduino automatisch 5 Volt als Referenz auswählen würde. und so soll es sein, oder?
@JackCreasey Wie kann es einen Pegelunterschied zwischen der Wechselstromversorgung und der USB-Versorgung vom Computer geben?
Wenn 5 V als Vref verwendet wurden und sich das um 10 % ändert, korreliert es mit Ihren Ergebnissen?
@TonyStewart.EEsince'75 Ja. Sobald ich von USB-Stromversorgung auf Netzteil umschalte, erhalte ich eine 10%ige Steigerung meiner analogen Ergebnisse.
Dies kann nur korrigiert werden, indem Vref auf einen stabilen konstanten Wert geändert wird
@ TonyStewart.EEsince'75 Ich habe meine Standard-Referenzspannung überprüft und sie betrug 4 Volt statt 5 Volt, wenn sie mit der externen Stromversorgung betrieben wurde. Wenn das Arduino über USB mit Strom versorgt wird, beträgt die Referenz 5 Volt.
Ich bin durch Ihren Mangel an Klarheit in Frage verloren. Was sind Ihre tatsächlichen ADC- vs. Vref- vs. Vdc-Fehler und was verstehen Sie nicht? Analysieren Sie Fehlerergebnisse in einer Tabelle. Seien Sie auch expliziter in Bezug auf Gnd vs Earth Ground und Floating Ground. Ihr Schaltplan sagt alles. Sie haben keine Ahnung von "Sternmasse" und Erdung oder EMV und dies führt zu Folgen von Messfehlern.
@TonyStewart.EEsince'75 Ich denke, Sie machen das viel komplizierter, als es tatsächlich aussieht. Der Schaltplan ist eine grobe/schnelle Zeichnung von etwas, das ich hier teste. Es hat nichts mit meinem mangelnden Verständnis für das Zeichnen von Schaltplänen zu tun. Meine Frage war und bleibt sehr einfach, warum ändert sich die interne analoge Referenzspannung von 5 Volt auf 4 Volt, wenn ich meine USB-Stromversorgung von Arduino trenne und sie auf ein externes Schaltnetzteil mit 5 Volt lege.
Können Sie nicht einige Tests durchführen, um die Ursache der Ursache zurückzuverfolgen? Die Sensibilität für Veränderungen wird es Ihnen sagen. Verbinden Sie aber zuerst Erde gnd mit 0V.
@TonyStewart.EEsince'75 Ich habe versucht, alles zu testen. Ich habe eine externe 5-Volt-Referenzspannung anstelle von internen 5 Volt aktiviert, und ich hatte immer noch das gleiche Problem, das Problem wurde in diesem Fall schlimmer. die analoge Ablesung hatte einen Offset von 50 %. Es ist nur so, dass, wenn die Stromversorgung von USB 4,9 Volt auf 5 Volt umschaltet, das Analog anfängt, sich schlecht zu verhalten. Alle digitalen IOs funktionieren einwandfrei. Ich werde die Erdung auf 0 V setzen und meine Ergebnisse mit Ihnen besprechen.
Geben Sie Ihre Antwort in Ihrer Frage mit einer Tabelle mit Tests und Werten ein.

Antworten (1)

Lesen Sie das Atmel- Datenblatt für den '328

Abschnitt 28.2 behandelt den A/D. Die Eingänge sehen wie folgt aus:

Geben Sie hier die Bildbeschreibung ein

Standardmäßig wird auf dem Arduino Uno die Referenzspannung von AVCC genommen, was die 5 V VCC ist, die von der MCU verwendet wird.

Das Arduino-Schema ist hier .

Sie können das Gerät so programmieren, dass es AVCC/1.1ref nicht verwendet und eine stabilere Referenz einspeist ... oder Ihre Versorgungsspannung festlegt.

Sie können auch auf die 1,1-V-Referenz umschalten und Ihren Eingangsteiler ändern.

Danke für Ihre Antwort. Ich verstehe, dass ich die Referenz auf interne 1,1 V ändern kann, aber ich versuche immer noch zu verstehen, warum sich die Analogwerte beim Verschieben der Stromversorgung von USB so stark verschieben würden, wenn die Standardeinstellung 5 V beträgt, die vom Arduino-Eingang bereitgestellt werden zur Stromversorgung. Sowohl USB als auch Netzteil liefern konstante 5 VDC.
Wir haben keine Ahnung, wie viel "So viel" ist und wie viel Rauschen auf dem System ist, das korrigiert wird, noch eine Bodenverschiebung mit 3+ externen Gründen. (USB, Akku, Netzteil)
@AmmarSurti. Sie haben nicht sehr viele Informationen geliefert ... wie stark ändert sich Ihr A/D-Messwert? Messen Sie die Spannung mit einem digitalen Messgerät?
@TonyStewart.EEsince'75 Ich habe heute Morgen ein paar Tests durchgeführt: Ich überprüfe die AREF-Spannung, als der USB-Anschluss das Arduino mit Strom versorgte, und es waren 4,9 Volt. Ich habe im Programm die Referenzspannung auf extern geändert und exakt 5 Volt vom Schaltnetzteil bereitgestellt. Die analogen Werte stiegen auf das 2-fache des ursprünglichen Werts. Wenn ich also einen Wert von 5 erhielt, stieg er auf 15.
@JackCreasey Ja, ich überprüfe die Spannung mit einem Digitalmultimeter.
@ TonyStewart.EEsince'75 Eine weitere lustige Sache: Wenn das Arduino an der externen Stromversorgung läuft und ich meinen Computer über USB anschließe, um das Arduino neu zu programmieren, werden die Werte wieder normal und das Problem wird automatisch behoben.
Das sagt mir, dass Sie ein EMI-Problem mit Ihrem Signaleingang und schlechtem CMRR haben. Holen Sie sich Twisted-Pair, abgeschirmt und fügen Sie eine große Ferrithülse hinzu. Das Rauschen wird von der Nichtlinearität des Eingangs zu Gleichstrom gleichgerichtet.
@TonyStewart.EEsince'75 Es gibt kein Problem mit dem analogen Signaleingang. Unter Testbedingungen beträgt der Signaleingang 3,9 Volt, er bleibt dort, unabhängig davon, mit welcher Stromquelle das Arduino arbeitet.
Ich würde vorschlagen, dass Sie versuchen, das Gerät über eine USB-Powerbank mit Strom zu versorgen. Sie haben dann vergleichbare Stromversorgungssysteme ... den PC / USB und die Powerbank. Wenn die Messwerte für beide in Ordnung sind, haben Sie definitiv ein Problem mit Ihrem AC/DC-Netzteil