Strom messen bei PWM

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • @feuerring oder zweites du, einen interrupt der mit dem Takt von timer1 auslöst, kann ich mir nur durch einen weiteren timer vorstellen, der synchron mit timer1 gestartet wird. Aber überleg nochmal, dein pwm sollte mit einem prescaler von 8 oder weniger laufen. Ich hab' was von 256 in deinem code gelesen. Das wird ein Brummen geben. Wenn du jetzt 16Mhz hast, dann hast du einen interrupt, der alle 2000000 Takte los legt und weitere Takte verbrät. Da bleibt für anderes immer weniger.

      Wenn du die Bewegung mit einen decoder überwachst/mitzählst, hast du doch schon alles. Keine Pulse aus dem decoder, obwohl der Motor Spannung kriegt, ergibt Störung. Noch genauer geht's, wenn du die zu erwarteten Pulsabstände von decoder überwachst. Sowas ist doch leichter zu erfassen, als Ströme zu messen, zumal auch abgefallene Ritzel oder Kettenriss als Störung erkannt werden.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Habe meine Test Schaltung mit einem Motor noch mal überarbeitet,

      hatte ja zuerst einem Prescale = 256 (125 Hz ) gearbeitet, der Motor brummt leicht, mit welligem Sense-Signal

      Prescale = 64 ergibt eine 500 Hz der Motor hat im unterem Bereich weniger Kraft,
      aber ich kann das Strom-Sense Signal recht gut Filtern, so das ich fast ein gerade Linie bekomme,
      auch das Ansprechverhalten bei Belastung ist träger aber ausreichend.

      Also das abtasten innerhalb einer PWM-Periode hat sich somit erledigt ...

      Danke noch mal an alle, manchmal ist man einfach auf den Holzweg ...
    • Update ...

      aus der Test-Stellung ist mittlerweile eine fast fertige Schaltung geworden,
      um meine analoge HUB-Bett Steuerung zu ersetzen ...

      CIMG0039_K.jpg

      hier bin ich gerade dabei die Incremental Encoder im Programm zu testen ...
      den Encoder betreibe ich mit 12V deswegen habe ich die Ausgänge mit ein Komperator (Lm339) für den MCU aufbereitet.

      alle Eingänge sind mit Optokoppler ausgestattet, das Bedienteil ein HT16K33 wird dann über I2C ( 12V P82B96 ) angebunden,

      Alle ein und Ausgänge werden über eine LED angezeigt, bin kein Freund von Back-Boxen
    • Hier mal ein Schaltungs-Beispiel, wie man mit einem Eingang gleichzeitig auch schalten kann
      HB_MCU_Steuerung_002.JPG

      mit dem Schalter S1 wird dann am Bedienteil die Steuerung eingeschaltet, der Eingang PIND.7 mit aktiviertem Pullup wird auf GND gezogen
      und damit überwacht, schaltet man nun den S1 aus, wird die Schaltung über den Pullup am leben gehalten,
      sind alle wichtigen Parameter abgespeichert, kann durch das deaktivieren des Pullup die MCU sich selber und die Steuerung abschalten ...
    • Update ...

      ich habe die Steuerung bereits verbaut und bin am anpassen,
      was mir aber immer noch Kopfzerbrechen macht ist die Überlast (Stromabschaltung)

      die Motoren werden über PWM beschleunigt und haben deswegen auch dabei einen erhöhten Strom, nach der Beschleunigungsphase sinkt der Strom.

      Wie realisiere ich eine Sinnige Überlast-Abschaltung, derzeit ermittle ich einen Duschschnitts-Wert über die 10 letzten Messwerte,
      diesen Wert kann man gut nach der Beschleunigung als Schwellwert nehmen, sobald dieser sinkt wird der dann dynamisch als neue Schwelle Übernommen ...

      nur wie bekomme ich eine Abschaltung in der Beschleunigungsphase hin ...
      Dateien
      • stromkurve.JPG

        (21 kB, 2 mal heruntergeladen, zuletzt: )
    • Über die Zeit, in der ein hoher Strom fließt? Fließt nach der Zeit zum Beschleunigen immer noch hoher Strom, dann passt was nicht. Der Motor braucht ja bisschen, bis er zum Klumpen zusammen schmilzt, also kann er auch bisschen blockiert sein, bevor abgeschaltet wird.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Mr_Martini schrieb:

      Wie realisiere ich eine Sinnige Überlast-Abschaltung, derzeit ermittle ich einen Duschschnitts-Wert über die 10 letzten Messwerte,
      Sinnvollerweise nimmt man einen Komperator und vergleicht Ist-und Sollstrom und schaltet die PWM-Periode beim Erreichen des Schwellwertes ab. Schaltregler machen das oder Strombegrenzungen bei Schrittmotoren (L297/L298)
      Die Messung über AD-Wandler ist zu langsam und nicht sinnvoll.
    • Der Motor braucht ja bisschen, bis er zum Klumpen zusammen schmilzt,
      Es geht nicht darum das der Motor blockiert, der hat so viel Kraft das er alles zerstören würde !

      ein statischer Komparator macht über Haupt keinen Sinn, denn der müsste so hoch eingestellt werden das er beim beschleunigen nicht auslöst,
      und im späteren Lauf nicht bei einem Hindernis auslösen würde, hatte ich in meiner analogen Schaltung(ohne PWM) also nur motor an/aus,
      dann später mit einer Schwellwert Anhebung im Beschleunigungs-Zeitraum, war aber auch nicht das gelbe vom Ei, deswegen die MCU-Lösung mit PWM geregelten Motoren ...

      Ich muss per Software die Trend-Kurve (letzte 10 Messwerte) so analysieren , das ein Hindernis erkannt wird ... nach dem beschleunigen geht es schon und das auch recht dynamisch,
      da die Motoren und das was angetrieben wird je nach Temperatur unterschiedliche Werte haben können ...

      Eine andere Möglichkeit wäre den Motor beim beschleunigen mit einem gerade reichenden Konstantstrom (PWM-geregelt) zu versorgen, so das er bei einem Hindernis blockieren könnte ...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Mr_Martini ()

    • Mr_Martini schrieb:

      ein statischer Komparator macht über Haupt keinen Sinn, denn der müsste so hoch eingestellt werden das er beim beschleunigen nicht auslöst,
      das wäre dann keine Strombegrenzung und das wolltest du doch nicht?

      Mr_Martini schrieb:

      Eine andere Möglichkeit wäre den Motor beim beschleunigen mit einem gerade reichenden Konstantstrom (PWM-geregelt) zu versorgen, so das er bei einem Hindernis blockieren könnte ...
      das wäre dann eine Strombegrenzung, nur macht man das eben in Hardware, weil eine Software hier viel zu langsam ist.

      Du könntest ja die Sollvorgabe für den Strom-abschaltenden Komparator per Controller vorgeben, wenn du unbedingt eine Stromvorgabe brauchst.
    • nur macht man das eben in Hardware, weil eine Software hier viel zu langsam ist.
      Aha ... bei meinem Roboter, habe ich genau das im Bezug auf die Drehzahl gemacht,
      PWM wird an die Drehzahl des Motor angepasst und das funktioniert verdammt gut,
      Drehzahl bleibt immer konstant egal wie belastet wird ...

      Also kann ich auch den Messwert des Strom als Bezugsquelle nehmen und das PWM danach anpassen,
      so das ein gewisser Strom nicht überschritten wird ...
    • Dann bleibt doch nur die Pwm über den Strom zu regeln, dann ist halt das Anfahren nicht mehr so rasant, aber wenn was im Weg ist, wird nur mit einer gewissen Kraft dagegen gedrückt (Konstantstrom, vielleicht mit einer kurzen Überhöhung am Anfahrpunkt). Wenn du den Weg noch überwachen würdest, dann könntest du mit einer Zeitabschaltung diese Kraft gegen Widerstand noch abschalten. Ohne Wegüberwachung geht es auch, irgendwann wäre das Bett ja in der gewünschten Position, das wäre ja auch eine Zeitvorgabe.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Update ...

      konnte das Problem lösen :)

      ich schiebe die zehn letzten Messwerte und berechne zwischen jeden dieser die Differenz,
      diese addiere ich dann auf und bekomme so einen Wert der die Steigung der Strom-Kurve sehr gut wiedergibt ...
      Im Idealfall liegt der bei Null, bei einem Hindernis steigt der Wert sehr schnell im positiven Bereich an,
      wesentlich schneller und stärker als bei der Beschleunigung ...

      Um den optimalen Abschalt-wert zu bekommen habe ich für jeden Motor und jede Richtung einen eigenen Schwellwert,
      diese können durch eine Messfahrt automatisch ermittelt und dann im ERAM abgelegt werden ...

      Zusätzlich werden noch über die beiden Positionsgeber die beiden Motore für jede Richtung synchronisiert,
      so richtet sich das Hub-Bett während der Fahrt immer 100%ig aus ... was das ganze noch ein wenig erschwerte,
      wird das Hub-Bett ganz nach oben gefahren wird es am oberen Ende zum Fahrzeugdach schief ausgerichtet.
      Beim runter fahren muss der eine Motor dadurch erst mal alleine fahren und das Bett gerade stellen,
      der zweite wird dann dazugeschaltet und synchronisiert, alles ohne Unterbrechung und in durchgehender fahrt ....

      Das ganze hat mich gut 6 Stunden im Wohnmobil gekostet, die unzählige Probefahrten hat die Mechanik super weg gesteckt ...
      aber immer wieder schön wenn man danach das Ergebnis sieht ...
    • Ein Blockieren der Mechanik durch erhöhten Strom schnell erkennen, aber zum Anfahren der Mechanik einen erhöhten Strom zulassen.
      Raum für Notizen

      -----------------------------------------------------------------------------------------------------

      -----------------------------------------------------------------------------------------------------
    • Ein Blockieren der Mechanik durch erhöhten Strom schnell erkennen, aber zum Anfahren der Mechanik einen erhöhten Strom zulassen.
      Wow ... besser hätte ich es nicht erklären können ...

      bei meiner Lösung (feuerring) ist nicht der Strom als solches relevant sondern die Steilheit beim Anstieg der letzten zehn Messwerte ...

      PS. wenn ich von fahrten spreche meine ich natürlich nicht das ich mit dem WoMo rum gefahren bin, sondern das Bub-Bett hoch und runter