Akkorduhr

Ja, das war Quatsch. Ich habe da ein Überlegubgsfehler gemacht. Da ich den Zeitstempel zusätzlich an habe um den Verlauf besser kontrollieren zu können. Der läuft ja aber natürlich nicht automatisch synchron mit dem Zeitmodul, höchstens zufällig.

20:45:03.446 -> Min: WARTE_MIN
20:48:01.159 -> Min: 01:09:00
20:48:01.159 -> altMinuten: 1 posMinuten: 2
20:48:01.159 -> Min: M_ZEIT_FFAHRT
20:48:01.159 -> Minutenpos: 48000
Min: MIN_KLANG
20:48:02.579 -> Min: WARTEN_MIN
20:48:58.376 -> Klang usgelöst: 01:10:00
20:48:58.376 -> Schlagwerk starten
20:48:58.376 -> Schlawerk: GRUND_SCHLAG_MIN
20:48:58.376 -> Schlagwerk: WAIT_MIN
20:48:59.263 -> chlagwerk: STD_SCHLAG
20:48:59.771 -> Schlagwerk: WAIT

Meine Tests heute Nachmittag.
Ich habe fast die ganze Zeit gebraucht um die Maschine wieder funktionsfähig zu machen - ich hatte sie etwas auf die Seite gestellt und musste mich desshalb wieder etwas neu orientieren.

Den Funktionstest betreffend der Referenzierung ergab, dass das so schon noch nicht stimmt. Ich glaube vorallem, dass da noch ein paar pressed respektive state vertauscht sind. Das muss ich nochmal genau anschauen.

Ja, das hatte ich auch vermutet. Allerdings ist das schon schwierig genau zu untersuchen, wenn man die Maschine nicht hat. Ich werde mir das aber auch nochmal genauer anschauen und versuchen zumindest theoretisch durchzuspielen.

So, ich hab die Referenzierung mal etwas bereinigt. So sollte es eigentlich gehen. Ich hab noch ein Bild angefügt welche die Situation etwas erklären sollte. Bei der Referenzierung im Betrieb muss der Schlitten in der letzten Position so liegen, dass die Flag in die Lichtschranke greift und dann wird neu referenziert.
15.1..zip (7,9 KB)

Das ist schonmal gut. Bleibt für mich noch eine Frage:
Wann unterbricht die Fahne die Lichtschranke?

  • zwischen Klangstab 2 und 1
  • genau beim Klangstab 1
  • rechts vom Klangstab 1

Das ist noch nicht definitiv geregelt. im Moment ist es eigentlich genau genommen so wie auf der neuen Zeichnung. Wenn die Flag in der Lichtschranke steht muss sie erst etwa 5000 Steps nach links fahren um an die Position des 1. Klangstabes zu kommen.

Dazu muss aber noch gesagt werden, dass die Reihenfolge der Positionen nicht einfach von rechts nach links geht sondern in dieser Form:

1 - 4 - 5 - 8 - 9 - 12 - 11-10 - 7 - 6 - 3 - 2

D.h. die 1. Position ist ganz links und die 2. Position ganz rechts. Ich muss das noch anpassen im Code. Die Referenzierung im Betrieb müsste also jeweils bei der 2. Position geschehen.

Nach der ersten Position ganz links fährt der Schlitten nach rechts also an der Position 2 vorbei bis die Flag in der Lichtschranke steht, referenziert und fährt dannach links zur 2. Position.

Ok, mein Vorschlag wäre dann, dass man das Anfahren des 1. Klangstabes grundsätzlich über eine Referenzfahrt macht. Dann ist auch sichergestellt, dass alle 12 Stunden eine Referenzfahrt gemacht wird, und bis dahin evtl. aufgetretene Ungenauigkeiten durch das Abschalten in den Pausen wieder ausgeglichen werden. Um die Referenzfahrt sauber zu programmieren, muss natürlich festgelegt werden, wo die Fahne die LS unterbricht. Damit das dann nicht unnötig lange dauert, sollte die schon in der Nähe des 1. Klangstabs sein. 5000 Schritte entfernt muss aber nicht sein.

SInd die Zahlen die Uhrzeiten ( Std ) zu denen die Stäbe angefahren werden, und die Reihenfolge entspricht den Klangstäben? Ganz rechts (2Uhr) ist dann der 1. Klangstab?
Und ist das bei den Minuten die gleiche Reihenfolge also
5 - 20 - 25 - 40 - 45 - 0 - 55 - 35 - 30 - 15 - 10

Eine Referenzfahrt gabe es dann immer um 2Uhr für die Stunden und bei 10 für die Minuten.
Oder habe ich das falsch verstanden und die Zahlen sind die Klangstäbe und die Reihenfolge entspricht der Urzeit?

Unten stehend geht leider doch nicht.
Im Moment ist der 1. Klangstab ganz links und die LS ganz am rechten ende der Anlage. Ich könnte die Klangstäbe aber auch spiegelbildlich tauschen, dann wäre Position 1 auch in der Nähe der Lichtschranke.

Wie meinst du wo? Also zur Zeit taucht die Fahne etwa 50 Umdrehungen der Spindel nach rechts (kann im Moment nicht genau sagen wie viele Steps das sind )
Also vom äusserster Klangstab ganz rechts, sind es etwa 5cm nochmal nach rechts bis die Fahne in die LS ein taucht.

Genau!

Wäre nicht auch möglich die Referenzfahrt erst beim anfahren des 2. Klangstabes zu machen. Der wäre dann schön in der Nähe der Lichtschranke.

Ich bin halt nach deinem Bild gegangen. Vielleicht sollten wir uns darüber einigen wie die Klangstäbe numeriert werden, und was der 1. Klangstab ist. Für mich war, wie auf dem Bild, der 1. Klangstab einfach der, der am nächsten zu Lichtschranke steht. Und wenn der Klöppel dahin positioniert werden soll, macht man das mit einer Referenzfahrt. Das sollte dann auf jeden Fall die Klöppelposition mit der kleinsten Stepposition sein. Zu welcher Uhrzeit die angefahren wird, ist dabei erstmal egal.

Kannst Du das auch noch etwas verkleinern? Wenn wir den äußersten Klangstab immer mit einer Referenzfahrt ansteuern, ist es etwas günstiger, bzw schneller, wenn er dazu nicht allzuweit über den Klangstab hinausfahren muss.

ja, dann ist das gut so. Dann wäre (die Uhrzeit 2) der erste Klangstab mit der kleinsten Stepposition. Der der ganz rechts aussen liegt. Ja, meine Nummerierung in der Zeichnung ist etwas verwirrend.
Also lass uns von links nach rechts so nummerieren:

---->. 2 - 3 - 6 - 7 - 10 - 11 - 12 - 9 - 8 - 5 - 4 - 1

Ok, dann schau ich mir das nochmal etwas genauer an, wie das am besten zu bewerkstelligen ist. Der Abstand vom äußersten ( 1. ) Klangstab zu Lichtschranke ist dann für das Prinzip erstmal irrelevant, das ist dann nur ein Stepanzahl. Ob der Abstand größer oder kleiner ist, macht sich dann nur in der Fahrzeit bemerkbar.

Genau. Das gibt sowieso ein andauerntes 'rumgefahre' Also sicher nichts fürs Schlafzimmer :rofl:

Eine andere Frage:

Kann ich die Drehrichtung des Steppers umkehren, indem ich in der Schritttabelle ein "-" vor die Schritte mach?

Der sollte eben andersrum drehen.

so:

uint32_t schritteM[] =  {-88000,   0,    -8000,   -16000, ......usw

Du fährst dann sozusagen auf die 'andere Seite' des Referenzpunktes, was letztendlich zu einer Drehrichtungsumkehr führt. Wobei Du zur generellen Drehrichtungsumkehr auch einfach die Motoranschlüsse umdrehen könntest. Also statt 1-2-3-4 andersrum als 4-3-2-1 verdrahten.

Dann müsste ich den Rest (Referenzierung usw.) auch alles ändern betreffend Drehrichtung.
Und die Anschlüsse zum Stepper sind eigentlich schon verlötet. Also lieber software mässig wenn das geht. :wink:

Es werden dann seltsame Minutenpositionen angezeigt:

18:15:17.579 -> Minutenpos: 49021662
18:15:17.579 -> Min: MIN_KLANG
18:15:22.599 -> Klang ausgelöst: 10:05:00

Die Tabelle mit den Poitionen ist als uint32_t definiert. D.h. das sind vorzeichenlose Zahlen. Wenn Du da jetzt negative Werte eintragen willst, muss das ein vorzeichenbehafteter Typ sein: 'int32_t' ( oder 'long' ).