- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 31

Thema: Arduino AD-Wandler abgleichen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    908
    Schön, unter Laborbedingungen scheinst Du ja die Funktion hinzukriegen. Damit sind wir auch schon im prallen Leben.
    Du kannst mal nachschauen, wie Du die Masse zum Controller gezogen hast. Ist das nur ein Abzweig zwischen Akku und Treibern? Dann wird Dir wahrscheinlich die Controllermasse durch den Treiberstrom wegfloaten. Da reichen 20..30mV Spannungsabfall im Leiterbahnabschnitt zwischen Akku und Controller, um unschöne Effekte im ADC auszulösen.
    Wenn Du allerdings die Masse direkt sternförmig am Akkuanschluss einmal in Richtung Controller und einmal in Richtung Treiber geführt hast, bist Du auf der sicheren Seite. Mehr kann man kaum tun.

    An VCC sollte es eigentlich nicht liegen, wenn da der LDO zwischensitzt. Der LDO ist in der Regel schnell genug, hat eingangs-/ausgangsseitig auf die Regelgeschwindigkeit angepasste Siebkondensatoren und frisst damit Ripple ganz gut. Er regelt aber immer in Bezug auf seine Masse und wie gesagt, wenn die driftet, hat der ADC ein Problem.

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.668
    Bei der Masseführung habe ich aufgepasst , dass die Leitungen möglichst breit sind, die engste Stelle, zum LDO-Regler für den ATmega328 (der die Messung durchführt), ist eine Bahn mit vielleicht 3cm Länge und 1.5mm Breite. Auch bei den Treibern sind die schmalsten Bahnstücken 1.5mm breit. Die Masse zu den Treibern und die Masse zu dem LDO-Regler führen in entgegengesetzten Richtungen vom Akkupack weg und sind auf der Platine außen umlaufend durch eine 1.5mm-Bahn verbunden. Wo Platz war, sind die Masseflächen größer und überall auf der Platine verteilt, teils aber nur durch diese 1.5mm-Bahnstücken verbunden.

    Spannungsregler regeln diese hochfrequenten Signale nicht weg, dafür sind die nicht gemacht. Damit hatte ich mich schon mal beschäftigt. Die Signale kommen durch den Regler dann durch. Ich habe schon im Netz darüber gelesen. Viele meinen, das ist das Chopper-Signal von den Treibern. Von der Frequenz könnte es hinkommen, das Oszi hatte da auch was von 20 bis 30kHz angezeigt, meine ich.

    Nachtrag zu der Masseführung auf der Platine:

    Ich habe vergessen, beide Layer anzuschauen. Sowohl Bottom als auch Top führen die Masse. Auf dem Top-Layer sieht es sogar noch besser aus: min. 1.5mm breite, wesentlich kürzere Bahnen (wenige Millimeter), die auf große Masseflächen treffen.
    Geändert von Moppi (09.10.2020 um 07:35 Uhr)

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.668
    So. Jetzt habe ich die gesammelten Erfahrungen und Eindrücke von gestern erst mal verarbeitet
    Daraufhin habe ich meine Software-Funktion geändert, so dass ich die Schwankungsbreite, der Eingangsspannung, übergeben kann und den Pin, an dem ich den Analogwert lesen will.
    So kann ich die Fälle abdecken, stabile und nicht so stabile Werte einzulesen.

    Das Letzte war nun noch die Genauigkeit, da habe ich heute Morgen direkt gerechnet.
    Wenn ich, durch den Spannungsteiler, bei ca. 11.5V einen Wert von 630 bekomme, dann sind das etwa 0,018V.
    Dumm ist, dass ich während einer Fahrt schlecht die Treiber und Motoren abschalten kann. Das Ab- und Anschalten würde u.U. auch etwas störend sein. Vielleicht findet sich da noch eine Lösung, das irgendwie gekonnt hinzubekommen.
    Sonst bliebe die Möglichkeit nur grob die Gesamtspannung am Akkupack zu messen, mit einer Genaugkeit von wenigsten 0.3V (wegen der dann nicht so stabilen Messwerte). Da könnte ich die Schwelle bei meinetwegen 11.5V setzen, wo das Gerät zum Laden fahren muss. Das entspräche dann im äußersten Fall 11.2V. Wenn die Zellen genauer gemessen werden können (im Stillstand, vor dem Laden z.B.) kann ich irgendwo im Speicher hinterlegen, wie viel Volt die schwächste Zelle dann hat. Dann kann dieser Punkt, diese 11.5V, nach oben verschoben werden, dass keine Gefahr besteht, die schlechteste Zelle zu tief zu entladen. Bis dann irgendwann Werte erreicht werden, wo der Akku getauscht werden muss. So in etwa sollte das funktionieren. Muss ich nur noch prüfen, ob die drei Spannungsteiler beim Laden stören.

    Dann so weit erst mal Danke an alle!

    MfG
    Geändert von Moppi (09.10.2020 um 07:43 Uhr) Grund: Zeichensetzung

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    908
    Ach, Du hattest die Motoren bislang schon angeschlossen? Und das sind Schrittmotoren mit Haltestrom?
    Wenn dem so ist: Siehst Du denn mit dem Oszi diesen getakteten Haltestrom als kleine Spannungseinbrüche auf der Akkuspannung?

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.668
    Ja, aus Bequemlichkeit hatte ich die angeschlossen gelassen. Wäre ja eigentlich der Normalzustand, auch wenn das Fahrzeug steht, dass ich die Motoren nicht abschalte. Sondern das Teil soll ja stehen bleiben, da fließt dann aber der Haltestrom. Wenn die Motoren stehen, summt es auch hochtönig.

    Achso: ja Nema17 ( A4988 )

    Aber ich habe ja auch einen Plan dazu:

    Bild hier  

    In meinem Album ist, auf den blauen Platinen, sogar die Masseführung gut zu erkennen. Allerdings nur einseitig. Bei dem anderen Lack, auf den weißen Platinen, sieht man das nicht mehr.
    Man sieht dort auch die Anordnung der Bauteile. Entspricht im Grunde dem Schaltplan, wenn man den um 90° nach links dreht.
    Geändert von Moppi (09.10.2020 um 08:07 Uhr)

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    908
    Dann miss doch mal mit dem Oszi die Akkuspannung. Wenn die auch im Takt der Chopperfrequenz leicht einbricht, dann wird der ADC nichts anderes messen. (Du musst aber wahrscheinlich Dein Oszi auf AC-Kopplung stellen, damit Du die Störung zoomen/triggern kannst)

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.668
    Das habe ich getan. Ich messe nur mit AC, wenn ich Störungen suche. Mit DC finde ich da nichts.
    Bloß bei den sehr kleinen Signalen zeigt der mir zwar eine Frequenz an, aber ich weiß nicht, ob das dann so richtig ist.
    Manche Werte (Spannung) wird auch falsch angezeigt, je nach eingestelltem Messbereich (1V, 50mV, 10mV ...). Die STörungen sind nur bei den allerkleinsten Messbereichen deutlich sichtbar. Da zeigte das Teil dann auch irgendwie etwa 27khz oder was ähnliches (ändert sich aber auch mit dem Messbereich etwas oder sogar sehr stark). Einzig, wenn ich am Spannungsteiler nach den 10k messe, zeigt das Oszi weder eine Amplitude an, noch eine Frequenz. An der Stelle ist der AC-Anteil deutlich, um einiges geringer. Ansonsten ist auf der Versorgungspsannung der Bauteile überall diese Frequenz überlagert; wenn die Motor-Treiber aktiv sind.

    - - - Aktualisiert - - -

    Interessant fände ich noch, wenn man, statt umfangreicher, platzraubender Filterung der hochfrequenten Überlagerungen, vielleicht das anders angeht und den Mikrokontroller über eine 3V Knopfzelle oder eine andere Minibatterie versorgt. Vielleicht auch einen Superkondensator. Nur für die Zeit der Messung dann die IC-Versorgung vom Akkupack trennen, nat. dann auch die Ladebeschaltung der Knopfzelle, bzw. des Kondensators. So dass, während der Messungen, der Kontroller nicht mehr vom Akkupack versorgt wird. Vielleicht reicht da ja schon ein FET zum Wegschalten aus, um die Störungen draußen zu halten.
    Geändert von Moppi (09.10.2020 um 09:21 Uhr)

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.04.2015
    Beiträge
    908
    Hmmm, ich hab jetzt noch einmal einen intensiveren Blick auf Deinen Schaltplan geworfen.
    Die 100nF an VCC kannst Du nicht über drei Controller sharen. Goldene Regel: Jedes IC wird einzeln abgeblockt. Kondensator nah an VCC und GND.
    Das ist beim DIP AVR sehr einfach zu routen, weil GND und VCC direkt nebeneinander liegen. Es bietet sich an, den Kondensator direkt vor die beiden Pins zu setzen. Du kannst jetzt auch noch nachträglich die Kondensatoren auf der Unterseite der Platine an die Pins anlöten. Gleiches gilt für VRef. (Dranhalten bringt nix, Du musst wirklich für die Filterung der Controllerfrequenz die Beine kurzschneiden und anlöten)

    Aber um endgültig zu Unterscheiden, was nun Wechselanteil auf dem zu messenden Signal und was Störung am ADC ist:
    Wenn Du einen zweiten Lipo hast, steck ihn an den Balanceranschluss und verbinde nur seine Masse mit der Masse des ersten Akkus. Der zweite Lipo liefert so die Eingangsspannungen für den ADC, wird aber durch den Rest der Schaltung nicht belastet.

    Seine Zellspannungen sind also garantiert stabil. Wenn die ADC-Werte dann gar nicht mehr wackeln, hast Du keine Störungen im ADC.
    Geändert von Holomino (09.10.2020 um 10:59 Uhr)

Ähnliche Themen

  1. STM32 contra ARM Cortex M3 (Arduino Due, Teensy): Performance per Arduino vs. nativ C
    Von HaWe im Forum ARM - 32-bit-Mikrocontroller-Architektur
    Antworten: 14
    Letzter Beitrag: 22.11.2017, 11:53
  2. Antworten: 13
    Letzter Beitrag: 07.11.2015, 01:21
  3. Mit Näherungssensor Drehzahlen abgleichen und anzeigen?
    Von blubb111 im Forum Sensoren / Sensorik
    Antworten: 1
    Letzter Beitrag: 12.06.2010, 20:56
  4. 6DOF: Gyro, Beschleunigung, GPS was mit was abgleichen?
    Von reflection im Forum Sensoren / Sensorik
    Antworten: 5
    Letzter Beitrag: 03.02.2009, 17:39
  5. I/0 Ports ; A/D Wandler ; D/A Wandler am Laptop?
    Von jojo.glaser im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 31.05.2006, 19:15

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress