Auf der Suche nach einem Lösungsansatz für eine Motorwegskalibrierung

In Arduino ist millis() eingebaut.
Damit lassen sich Zeiträume bis zu 49,X Tagen automatisch verwalten.
Wenn es genauer werden muss gibt es die micros()

Und woher bekomme ich die Zeit die der Motor läuft ohne, dass ich es selbst stoppe ?

Die Endschalter und millis()/micros()

Ach dein Ansatz ist, die Endschalter abzugreifen, statt zu ermitteln ob noch Strom fließt. Mein Ansatz war, die bestehende Schaltung unberührt zu lassen und mit Hilfe des Stroms zu ermitteln ob der Motor schon läuft oder steht. Wenn ich dann beim Kalibrieren zum unteren Endschalter fahre und von dort die Messung starte bis zum oberen Endschalter (bis also kein Strom mehr fließt, da die Endschalter angefahren wurden), und dadurch die Zeit automatisch erfasse. Ich könnte natürlich auch die Endschalter abgreifen, wäre auch möglich. Wie würde ich dann im Code die Zeitmessung auswerten ? Hast du hier vielleicht einen Ansatz ?

Von einer bestehenden Schaltung war bisher noch gar nicht die Rede. Oder?
Tut mir leid, aber deine bestehende Schaltung ist mir gänzlich unbekannt.
Also kann ich auch dazu keine Aussagen treffen.

Wie wäre es mal mit: Zeige was du da hast!

Die Salamitaktik, Scheibchen für Scheibchen, macht es vielleicht spannend, ist aber nicht Lösungsorientiert, eher nervig.

Naja grundsätzlich haben die Bühnen 2 Taster - einen für hoch, einen für runter, sowie 2 Endschalter. Die Taster sind gegenseitig verriegelt. Schaltung fertig. Bilder kann ich gerade leider nicht zeigen, bin nicht in der Werkstatt. Ich würde es generell aber dabei belassen und die Ausgänge des ESP8266 nur parallel zu den Tastern schalten. Bilder liefere ich später.

Nachtrag: Ich dachte aus meinem ersten Post wurde klar, dass es sich um bereits bestehende elektrische Hebebühnen handelt, die ich um einen ESP8266 erweitern möchte.

Tja....
So ist sie: Die Salamitaktik.....

Weiß nicht was du mir hier mitteilen möchtest. Ich denke es ist klar was ich vor habe - der Hinweis mit dem Shelly 2.5 macht deutlich, dass es sowas schon gibt und auch funktioniert (bei mir in jedem Rollladen). Tut mir leid wenn du in deinen scheinbar 100 Projekten sowas noch nicht umgesetzt hast und nur versuchst auf deinen Lösungsansatz zu pochen, ohne zielbringende Lösungsansätze zu liefern. Meiner Auffassung nach versucht man in Foren genau das. Und ein "Gar Nicht!" ist kein Lösungsansatz - es geht nämlich sehr wohl. Gibt genügend Videos zu Shelly 2.5, kann man sich gerne anschauen und sich vom Gegenteil überzeugen. Die basieren auch auf einem ESP8266 und wie Walter in seinem Post, nochmals Danke, herausgefunden hat, dass die das über einen ADE7953 Chip umsetzen zeigt mir nur, dass er verstanden hat worum es mir geht und wie ich es umsetzen möchte.

Ich sehe nur das, was du schreibst, nicht das was du vor dir liegen hast.

Tja, da ging es ausschließlich um Positionierantriebe im Maschinenbau. Wenn dein Problem ein anderes ist, und so sieht es ja wohl jetzt scheinbar aus.
Dann habe ich mich geirrt.

Ich denke, daran hätte ich mich halten sollen.

Er wollte damit sagen das mal wieder die Infos scheibchenweise kommen. Im 1. Post am besten alles drin was man braucht und möglichst mit Bild damit man sich darunter was vorstellen kann. Laut 1.Post dachte ich an ein Hebebühnenmodell, da ja nur 20x20cm groß...

Das habe ich bisher rauslesen/zusammenreimen können:
4 Hebebühnen, für jedes Rad eine?
1 zentrale Steuerung die alle 4 Motoren steuert und die Endschalter überwacht?

Wie groß ist die Stromaufnahme der 12V Motoren. Du brauchst einen passenden Stromsensor pro Motor.
Die Zeit alleine wird auf jeden Fall ungenau. Ein Rolladen ist immer gleich schwer. Fahrzeuge auf der Hebebühne nicht. Kommt jetzt drauf an wie das gesteuert wird. Nur Strom ein/aus?

Gruß, Jürgen

Hi Jürgen,

vielen Dank für deine Nachricht. Es geht in dem Fall nicht um Autohebebühnen. Es sind kleine Arbeitsbühnen - die fahren 30cm hoch und heben maximal 20kg. Sind eigentlich dafür gedacht, verschiedene Bauteile auf eine Höhe zu heben - für versuchsaufbauten etc. Diese sollen auch nicht gekoppelt werden - jeder Motor (Hebebühne) bekommt 1 ESP8266 und soll losgelöst der anderen gesteuert werden. Grundsätzlich ist der Verwendungszweck aber eigentlich für das Projekt erstmal egal. 1 Motor, 2 Endschalter - irgendwie den Weg dazwischen automatisch ermitteln. Das Argument mit dem Gewicht ist natürlich berechtigt. Der Motor scheint aber für deutlich mehr ausgelegt zu sein - nichtsdestotrotz wirst du natürlich recht haben und es wird Abweichungen geben. Die würde ich aber vorerst gar nicht berücksichtigen. Die Stromaufnahme werde ich mal Messen - mit 20KG Maxgewicht und ohne. Aktuell gibt es lediglich Strom an und aus, ja.

Hallo,
ich bezweifele das der Lösungsansatz über Zeit zu fahren zu einem vernünftigen Ergebnis führt. Das hängt natürlich davon ab welche Genauigkeit erwartet wird. Bei einem Rolladen ist es ziemlich wurscht ob der bei 30%oder 35% stehen bliebt. Bei einer Hebebühne können 5mm aber schon zu viel sein, es entsteht eine Stufe und das war´s dann.
Unterschiedliche Lasten bei heben und senken werden unterschiedliche Laufzeiten zu Folge haben. Bevor du da weiter machst messe erst mal die Laufzeiten manuell mit der Stopuhr.
Leerlauf heben , senken,
Last heben , senken,

Übrigens ich würde auch die Endschalter auf den Controller führen , das ist eigentlich Standard. Bei Rolläden mag das anders sein. Die haben aber auch oft Motoren mit einer Mittelanzapfung und je einen Eingang für Heben und Senken Hilfskondensator umgeschaltete) . Bei einem normalen GS Motor mit 2 Anschlüssen macht das auch wenig Sinn , da der angefahrene Endschalter ja eine Leitung auftrennt und damit dann der Motor auch in der anderen Richtung ohne zus. Hilfsmittel (Diode) nicht mehr wegfahren könnte. Da der Motorstrom dann auch über die Diode fließt geht das sinnvoll nur bei kleinen Strömen.
Nachtrag. Du könntest zur Positionserfassung eine Linear-Poti verwenden. Die gibt es auch als "SchnürchenPoti"

es wird auch ohne Diode gehen , der Taster "Heben"kann den Endschalter "unten" überbrücken.

Heinz

Bei 4 Bühnen bin ich auch von einer Synchronisation ausgegangen....
Auch ein Irrtum.
Ich sammle hier Irrtümer auf meinem Konto.
Aber das hat ja nicht nur Nachteile.

Hallo Heinz,

danke für deine Antwort. Du hast natürlich recht, dass es nicht genau sein wird. So ein Projekt entwickelt sich ja - theoretisch könnte man über die Stromaufnahme ja auch eine Matrix erstellen, die je nach Gewicht (also mehr Strom beim fahren) den Weg anpasst. Damit wäre eine Annäherung vielleicht möglich ? Dafür reichen aber meine Programmierkenntnisse nicht aus. Mir würde es im ersten Schritt reichen wenn Sie überhaupt von 0 - 100% fahren. Eventuell kann man das dann weiter ausbauen. Macht mein Ansatz mit der Matrix sinn ?

Ah, der Ansatz mit dem Poti gefällt mir auch gut. Ich würde also jedem Widerstandswert eine Prozentzahl zuordnen und mich in dieser Range bewegen. Wäre für die Genauigkeit sicherlich auch nicht schlecht.

Gruß,
Christopher

Womit wir dann bei den Hunderten von Positionierantrieben angekommen sind.

Richtig so ist es, anders macht es keinen Sinn denke ich.
Ich hab die Seilzugpotentiometer recht viel auch im Maschinenbau eingesetzt. Wenn Antriebe nur recht selten gefahren werden ist das einfachere Kostengünstiger als ein Absolut Encoder. Es gibt ja Fälle bei denen man nicht jedesmal referenzieren kann.
Beispiel: Besaümeinrichtung für Papier, verfahren geht nur wenn kein Papier in der Anlage ist, oder die Produktion läuft.

Hallo Heinz,

danke - der Ansatz hat mir gefehlt. Da es sich um eine Scherenbühne handelt, würde ich also auf dem Boden ein Seilzugpotentiometer montieren und das andere Ende des Seils an der Oberseite befestigen. Ich habe also verschiedene Widerstandswerte von Weg X zu Weg Y, in meinem Fall unteres Ende und oberes Ende der Bühne. Diese nehme ich als Grundlage für die Umrechnung des Weges. Somit könnte ich ja auch Hubhöhe als CM bspw. ausgeben lassen - es ist ja dann recht genau. Kann ich, zurück zu meiner Ausgangsfrage, den Weg mit einer automatischen Kalibrierung ermitteln lassen ? Also als Beispiel - die Bühne ist im unteren Endschalter, also unten = Startwiderstandswert, ich fahre dann in den anderen Endschalter (Widerstand ändert sich ab da nicht mehr - im Programmcode vielleicht dadurch zu erkennen, dass sich der Wert über eine längere Zeit nicht mehr ändert) und daraus dann die Zwischenschritte ermitteln ? Gibt es solche Seilzugpotentiometer bspw. aus dem Modellbau ? Welche recht klein sind und kein vermögen kosten ?

Liebe Grüße,
Christopher

Ja.
Und ja, dafür brauchst Du den Stromsensor.

Ich hab jetzt nur oben die ersten Post gelesen.
Das ist wie mein Garagentor.
Die Endschalter sind Sicherheitseinrichtungen und müssen in Ihrer Funktion erhalten bleiben.
Dazu soll wenn möglich die manuelle Bedienung ebenfalls erhalten bleiben.

Dann brauchst Du:

  • den Stromsensor
  • ein Relais für die Versorgungsumschaltung manuell/Automatik
  • ein Relais für die Umschaltung auf / ab

Das ginge auch m.E. nur mit dem Stromsensor mit einer annehmbaren Wiederholgenauigkeit.
Denn je nach Belastung der Antriebe ziehen diese auch dementsprechend Strom.
Wenn Du also die Stromaufnahme im Leerlauf kennst, kannst Du ggfls. auch für Fahrt unter Last einen Korrekturfaktur zur Ermittlung der tatsächlichen Höhe ermitteln.

Für die grundsätzliche Schaltung wäre das mein Vorschlag:

Im oberen rechten Teil ist die Übergabe und Übernahme aus den selbstverriegelnden Tastern drin.
Die Zuführung erfolgt nur, wenn die Steuerung steht.
Dabei bleibt aber die Messung aktiv, womit es möglich wäre die aktuelle Position trotz manuellem Eingriffs zu ermitteln, bzw. solange wie die Taste(n) gedrückt, wird verhindert das die Steuerung eingreift.

Ich kann die Aussage von combie nur bestätigen daß hier nicht von Anfang an alle infos geliefert wurden.

Ein Potentiometer ist ein Bauteil mit sehr guter Langzeitstabilität und Wiederholbarkeit. Darum braucht es nur eine einmalige Calibrierung bei Einbau. Du fähst auf unten liest den Meßwert aus, fährst die Bühne nach oben liest den Wert aus und programmierst die Höhenmessung anhand der 2 Werte.
Also keine Kalibrierfarten beim einschalten oder ähnliches. Auch keine Messung des Zustandes der Endschalter oder des Stromflusses des Motors.

Da wie du sagst das eine Scherenbühne ist könnte man auch den Drehwinkel der beiden Teile zueinander messen.

Grüße Uwe

Hallo Christopher,
Die Idee von Uwe den Drehwinkel zu nutzen finde ich auch nicht schlecht. Allerdings kann es sein das das nicht linear ist und der nutzbare Winkel nur klein ist. Bei 90 Grad dürfte da Ende sein.
Es gibt Seilzug-Potentiometer die sind für den industriellen Einsatz, die sind aber auch schnell recht teuer, haben aber auch lange Messwege. Linearpotentiometer haben oft recht kurze Wege. Da hilft dann nur eine Stelle beim Anbau zu finden wo der Weg klein ist, nahe der Drehachse der Schere zum Beispiel, allerdings geht das auf die Genauigkeit.
Mit einem Poti misst Du letztlich eine Spannung , die ist dann linear zum Weg. Also ein Messwert vom 0-1023 entspricht theoretisch einem einem Hub von z.B 500mm. Allerdings kann man in der Praxis oft nicht den gesamten Bereich für dem Messwert nutzen, da man oben und unten etwas Reserve lassen muss damit nichts auf Block fährt und kaputt geht. Kalibrieren musst Du das nur einmal und mit mep() geht das in einem Rutsch. Dann hast Du gleich die Höhe des Tisches z.B in mm.
Mann kann das sicher auch automatisieren, fahren bis auf den mech. Endschalter bis es nicht mehr weiter geht und dann die beiden Messwerte für oben und unten auf dem Eprom ablegen. Dann musst Du dem Ding noch mitteilen wie der tatsächliche Hub zwischen den beiden Positionen ist.
Wenn Du die Endschalter aus Sicherheitsgründen so lassen willst wie sie jetzt sich, da muss ich @my_xy_projekt allerdings Recht geben, das mach Sinn, kannst Du die Min und Max Positionen natürlich auch von dem Poti ableiten und "Softwareendschalter" verwenden. Wenn sich nichts mehr ändert beim fahren bist Du auf dem Hardwareendschalter angekommen. Wozu also noch einen Strommessung. Wenn du fährst muss sich der Messwert ändern, wenn er das nicht tut liegt eine Fehler vor. Du kannst dann beliebig viele Sollwert Positionen vorgeben und steuerst den Motor an entweder heben oder senken bis er auf der Position ist. Dabei eventuell einen Nachlauf berücksichtigen , also etwas vor der Sollwertposition abschalten.