Ich benötige mal eure Hilfe.
Ich möchte gern ein vorhandenen motor drehen lassen bis ein gewisser winkel erreicht wurde.
Momentan läuft der Getriebemotor über eine Zeitangabe, diese ist aber wie ihr euch vorstellen könnt ziemlich ungenau.
Zum Projekt:
Jeden Tag dreht sich der Getriebemotor eine Scheibe an, gewünscht sind 2mm (dieses ist aber mal mehr und mal weniger)
dazu kommt das mittels einer Fernbedienung der Motor die Scheibe 10 mal um sich selbst drehen lassen soll, und nach 10 sekunden warten die Scheibe exakt 10 mal wieder zurück drehen soll, bis es sozusagen wieder an der exakten ursprünglichen Position steht.
Das ist mit delay unmöglich
jetzt bin ich auf die Idee gekommen das ganze mit einem encoder zu bewachen.
also den Getriebemotor so zu bearbeiten das ich an der Achse den encoder drauf mache und statt der Zeit angabe nun einzelne schritte zähle und ihn nach 1000 schritten (oder wieviel auch immer) abschalte und diese schritte wieder bis 0 runter fahre.
Momentan läuft der Motor mit Links und Rechts über eine H brücke ( BA6208 )
Kann ich diese H Brücke auch so verwenden das sie am Ende die gezählten Schritte vom Encoder auch auf den Motor wieder gibt? (ich habe da leider keine genauen informationen im Datenblatt gefunden).
Oder vllt sogar mit dem normalen Getriebemotor und dem Encoder ein Servomotor baue?.
Hallo,
ein mechanischer Encoder "verschluckt" sich gerne mal. Hast du noch Platz für ein Mehrgang-Potentiometer auf der Motorachse?
Diese Lösung hat den Vorteil das Motor weiß wo er steht, wenn die Betriebsspannung eingeschaltert wird.
Ich verstehe Dein Problem nicht. Du kannst den Encoder abfragen und feststellen, wann die gewünschte Schrittzahl erreicht ist. Je nach Getriebe sollte der Motor allerdings etwas früher gebremst bzw. abgeschaltet werden, damit er nicht über das Ziel hinausschießt.
mit der geschwindigkeit muss ich noch rumspielen, bei 3v aber dreht es sich so langsam das ich mir glaube ich dies bezüglich keine Gedanken machen muss über das abbremsen.
zu dem Mehrgang Poti: ich habe bis jetzt noch nicht von diesem Poti gehört..., aber nach ersten recherchen, glaube ich nicht das ich so etwas benötige, da es ja einen festen Widerstandswert ausgibt?.
Nach mehreren Tagen würde sich dieser Wert ja ändern und jeden Tag würde es ja wieder einen anderen Wert ausgeben.
DrDiettrich:
Ich verstehe Dein Problem nicht. Du kannst den Encoder abfragen und feststellen, wann die gewünschte Schrittzahl erreicht ist. Je nach Getriebe sollte der Motor allerdings etwas früher gebremst bzw. abgeschaltet werden, damit er nicht über das Ziel hinausschießt.
Okay, also bin ich schon auf dem richtigen weg... hast du denn für mich ein Link in dem das Encoder Abfragen und die festgelegten schritte abfahren irgentwo behandelt wird?, ich habe grade noch keine Idee und google konnte mir bislang auch nicht wirklich weiter helfen.
Das wirst Du wohl von Hand machen müssen; eine fertige Lösung habe ich noch nicht gesehen (was aber nicht heißen muss, dass es keine geben könnte).
Während der Motor in die eine Richtung läuft Schritte (Encoder) zählen. Zum Rückstellen den Motor in die andere Richtung laufen lassen und dabei wieder die Schritte zählen. Rechtzeitig anhalten lassen.
Das erfordert aber blockadearme Programmierung. Das heißt: delay() ist verboten.
durstloescher:
mit der geschwindigkeit muss ich noch rumspielen, bei 3v aber dreht es sich so langsam das ich mir glaube ich dies bezüglich keine Gedanken machen muss über das abbremsen.
zu dem Mehrgang Poti: ich habe bis jetzt noch nicht von diesem Poti gehört..., aber nach ersten recherchen, glaube ich nicht das ich so etwas benötige, da es ja einen festen Widerstandswert ausgibt?.
Nach mehreren Tagen würde sich dieser Wert ja ändern und jeden Tag würde es ja wieder einen anderen Wert ausgeben.
durstloescher:
zu dem Mehrgang Poti: ich habe bis jetzt noch nicht von diesem Poti gehört..., aber nach ersten recherchen, glaube ich nicht das ich so etwas benötige, da es ja einen festen Widerstandswert ausgibt?.
Nach mehreren Tagen würde sich dieser Wert ja ändern und jeden Tag würde es ja wieder einen anderen Wert ausgeben.
Naja... da ist irgendwo ein Logikfehler drin. Bitte berichtige mich:
*einen Startwert
*nach Zyklus einen Endwert
*der Endwert wird im nächsten Zyklus der Anfangswert
3a. *wiederhole 2 und 3 nach "Bedarf"
*Am Ende willst Du zurück auf den Startwert.
Dann ist das mit dem Spindelpoti vielleicht keine schlechte Idee.
Den Startwert einmal kalibrieren und merken.
Dann geht es jeden Tag nur vorwärts.
Egal wieviel tatsächlich gefahren wird, bekommst den Punkt der Rückführung immer wieder.
Du kannst auch den Startpunkt für jeden Zyklus einzeln merken....
Beschreib doch mal, was das tatsächlich werden soll.
my_xy_projekt:
Naja... da ist irgendwo ein Logikfehler drin. Bitte berichtige mich:
*einen Startwert
*nach Zyklus einen Endwert
*der Endwert wird im nächsten Zyklus der Anfangswert
3a. *wiederhole 2 und 3 nach "Bedarf"
*Am Ende willst Du zurück auf den Startwert.
Dann ist das mit dem Spindelpoti vielleicht keine schlechte Idee.
Den Startwert einmal kalibrieren und merken.
Dann geht es jeden Tag nur vorwärts.
Egal wieviel tatsächlich gefahren wird, bekommst den Punkt der Rückführung immer wieder.
Du kannst auch den Startpunkt für jeden Zyklus einzeln merken....
Beschreib doch mal, was das tatsächlich werden soll.
Okay dann gebe ich mal etwas mehr infos...
Das ganze ist/soll ein Orrery (Sonnen System) werden welches relativ genau ist.
Der Motor dreht eine Stange auf der die Sonne sitzt, ebenfalls ist ein Zahnrad fest an dieser Stange mit der Sonne dran, von da an dreht das oberste Zahnrad alle weiteren Zahnräder an, jedes weitere Zahnrad hat einen Arm mit den jeweiligen Planeten.
Jeden Tag sollen sich die Planeten (vor allem die Erde) ein kleines stück bewegen (so das bei 365 Tagen eine umdrehung erreicht ist)
da das ganze aber sehr langweilig ist möchte ich gerne um es zu demonstrieren per fernbedienung das ganze 20 Jahre (oder wieviel auch immer) in die Zukunft drehen und nach einer kleinen Pause wieder zurück drehen lassen, so das der aktuelle Tag wieder auf position ist.
Tommy56:
Der weiß nach Neueinschalten nicht, wo er ist. Du musst da also eine Referenzposition anfahren.
Gruß Tommy
aso ok..., aber er soll ja auch nicht wissen wo er ist.
er soll nur wissen wieviele schritte er fahren soll und wieviele schritte er zurück fahren soll.
oder habe ich da einen denkfehler?
Denkfehler nicht unbedingt. Wenn es nur darauf ankommt, die Planetenbahnen relativ zueinander zu zeigen, geht das so. Willst du aber immer auf die Konetsllation 1.1.2000 zurück, brauchst du einen definierten Ausgangspunkt, sprich Absolutwertgeber
themanfrommoon:
Ja, man könnte auch einen Schrittmotor nehmen. Oder einen Servo...
Am besten ist es, wenn du mal genau beschreibst was deine Apparatur machen soll.
Wer nicht will das man ihm hilft soll sich nicht wundern
Also es handelt sich um ein Orrery welches die Planeten relativ genau anzeigt, angetrieben wird es über einen normalen DC Getriebemotor, wenn das mit dem Encoder nicht so genau klappt wie ich es mir vorstelle werde ich wahrscheinlich auch einen anderen Motor verwenden. hättet ihr da vllt eine empfehlung welchen servo ich auch über 360° oder wieviel auch immer drehen kann?, schrittmotor wäre auch eine überlegung.
ElEspanol:
Denkfehler nicht unbedingt. Wenn es nur darauf ankommt, die Planetenbahnen relativ zueinander zu zeigen, geht das so. Willst du aber immer auf die Konetsllation 1.1.2000 zurück, brauchst du einen definierten Ausgangspunkt, sprich Absolutwertgeber
aso verstehe..., nein ich möchte nicht zurück auf den 1.1.2000.,
es wäre schön wenn sich verschiedene konstellationen realisieren lassen würden, aber das wäre momentan nicht von nöten.
Jeden Tag dreht sich die Scheibe ein paar schritte weiter, und das ist dann immer wieder die jeweilige start position wenn ich auf die Fernbedienung drücke...
Also wenn ich auf die fernbedienung drücke sollen 1000Schritte vor gefahren werden und nach einer Pause 1000 Schritte zurück
und sonst jeden Tag nur 1 Schritt.