Arduino und CTS288 Encoder Probleme

U

User 23246

Ey Leute, keine Ahnung was ihr da redet, aber ja das wird schon werden :D

Was für ein Programm...wegen der Buttonmatrix?


Die Bodnar Boards können den Encoder von Haus aus verarbeiten!
 
U

User 23124

So wie Kai es schreibt muss es es funktionieren.

Auslesen, speichern, warten (millis), auslesen, vergleichen und bei Änderung Button Links oder Rechts ausgeben.

Ganz einfach...

Den Code dafür kann ich selbstverständlich NICHT schreiben aber sobald meine CTS von Leo kommen muss ich da auch ran!
 
U

User 23246

Hmm, naja das klingt schon logisch. Ich bin mal gespannt ob sich das so umsetzen lässt.
 
U

User 26677

So wie Kai es schreibt muss es es funktionieren.

Auslesen, speichern, warten (millis), auslesen, vergleichen und bei Änderung Button Links oder Rechts ausgeben.

Ganz einfach...

Den Code dafür kann ich selbstverständlich NICHT schreiben aber sobald meine CTS von Leo kommen muss ich da auch ran!

Werde mir vermutlich auch mal welche bestellen. Vom Prinzip her wäre es ja sehr angenehm die dann auszulesen.

Dein Hinweis auf millis ist immer gut, kann man nicht oft genug anbringen. :D
 
U

User 19590

So !
Da bin ich auch wieder.
Hab mir auch ein paar Gedanken gemacht - zu mehr bin ich bis jetzt noch nicht gekommen.
Um es so einfach wie möglich zu machen - auch um die Encoder in eine normale Buttonmatrix einzufügen - muß
man abfragen ob die beiden Eingänge sich ändern und dann diese Änderung mit dem vorherigem Zustand vergleichen.
Dabei gibt es dann insgesamt 8 Fälle zu unterscheiden, 4 für die eine Drehrichtung und 4 für die andere Drehrichtung:
00 auf 01, 01 auf 10, 10 auf 11 und 11 auf 00 für die Drehrichtung rechts
00 auf 11, 11 auf 10, 10 auf 01 und 01 auf 00 für die Drehrichtung links
Dem entsprechend wird dann der jeweilige Tastendruck/Impuls an das Programm der Buttonmatrix übergeben (an Stelle der Eingänge/Pins des Encoders)
Entprellen der Eingänge mit "millis" - wie Kai passend erklärt - nicht vergessen.
Und auch eine gewisse Impulslänge in "mills" für den Tastendruck mit einplanen.

Nun muß man das ganze nur "mal eben" in ein Programm umsetzen.
Ich werde später mal schaun und auch schonmal einen Testaufbau mit einem Micro Pro machen...
 
U

User 26677

So !
Da bin ich auch wieder.
Hab mir auch ein paar Gedanken gemacht - zu mehr bin ich bis jetzt noch nicht gekommen.
Um es so einfach wie möglich zu machen - auch um die Encoder in eine normale Buttonmatrix einzufügen - muß
man abfragen ob die beiden Eingänge sich ändern und dann diese Änderung mit dem vorherigem Zustand vergleichen.
Dabei gibt es dann insgesamt 8 Fälle zu unterscheiden, 4 für die eine Drehrichtung und 4 für die andere Drehrichtung:
00 auf 01, 01 auf 10, 10 auf 11 und 11 auf 00 für die Drehrichtung rechts
00 auf 11, 11 auf 10, 10 auf 01 und 01 auf 00 für die Drehrichtung links
Dem entsprechend wird dann der jeweilige Tastendruck/Impuls an das Programm der Buttonmatrix übergeben (an Stelle der Eingänge/Pins des Encoders)
Entprellen der Eingänge mit "millis" - wie Kai passend erklärt - nicht vergessen.
Und auch eine gewisse Impulslänge in "mills" für den Tastendruck mit einplanen.

Nun muß man das ganze nur "mal eben" in ein Programm umsetzen.
Ich werde später mal schaun und auch schonmal einen Testaufbau mit einem Micro Pro machen...

Bin nicht ganz sicher ob dir das hilft. Aber im Grunde wird dein Byte größer wenn du nach rechts drehst und kleiner wenn du nach links drehst.

Die Sprünge 11 -> 00 und 00 -> 11 noch abfangen, dann könntest du glaube ich deine Vergleiche etwas abkürzen.
 
U

User 19590

Muß mich da erstmal wieder reindenken und schaun wie ich am einfachsten die Vergeleiche mache, aber
der Gedanke mit dem Byte kleiner größer ist mir auch schon gekommen nur mit der Ausnahme wird die
Programmierung höchstwahrscheinlich auch nicht kürzer ... :unsure::sneaky:
Mal sehen wie umfangreich das überhaupt wird und ob man da auf ein paar Prorammzeilen mehr oder weniger achten muß... ;-)
 
U

User 23124

Wäre es nicht sinnvoll, jeder Stellung ein Zahl zuzuweisen? Idealerweise Stellung 1 die 1, Stellung 2 die 2, usw...

Dann auf größer/kleiner vergleichen und den 0er Übergang als Ausnahme definieren.
 
Zuletzt bearbeitet:
U

User 26677

Wäre es nicht sinnvoll, jeder Stellung ein Zahl zuzuweisen? Idealerweise Stellung 1 die 1, Stellung 2 die 2, usw...

Dann auf größer/kleiner vergleichen und den 0er Übergang als Ausnahme definieren.

Im Grunde machen wir das ja auch:
00 = 0
01 = 1
10 = 2
11 = 3

Ist ja letztlich ein Binärwert.
Das war eben auch die Idee weiter oben. Ich hab mir keine weiteren Gedanken dazu gemacht, daher hab ich noch nicht darüber nachgedacht wie man die Ausnahme am effizientesten testet und dann den Rest. Vermutlich eben genau so, erst die Ausnahme testen und falls die nicht zutrifft eben auf größer/kleiner.
 
U

User 19590

Differenz alter Wert und neuer Wert:
0-1 = -1
1-2 = -1
2-3 = -1
3-0 = 3

0-3 = -3
3-2 = 1
2-1 = 1
1-0 = 1

Das sind die Berechnungen und die Ausnahmen:
Rechts drehen Differenz = -1 oder 3
Links drehen Differenz = 1 oder -3

:D
 
U

User 23246

Verstehe ich das richtig das man für diese Art Encoder dann gar kein spezielles Encoder Sketch benötigt sondern das mit den hier genannten Definitionen einfach in die Buttonmatrix einfügen kann?
 
U

User 19590

Naja eine paar/kleine Programmzeilen/Sketch muss man schon für die Abfrage und "Definition" schreiben, aber das kann man dann
in das Programm für die Buttonmatrix einfügen.
Man kann natürlcih eine eigene Libary für dei CTS erstellen, aber das ist etwas aufwendiger - kann man dann für häufiger Einsätze
ins Angriff nehemen - da sind ja einige die CTS288 Encoder einsetzen möchten.
Ich nehme da übrigens Alps oder auch BI Technologies, Bourns (riesige Auswahl) wenns denn etwas "hochwertiger sein soll...
und dann "normale" Inkrementalencoder. ;-)
 
U

User 23246

Würde ich gerne mal in der Hand haben und dran drehen. Welche nutzt du da genau?
 
U

User 23124

Habe hier auch ein paar ALPS STEC11B09 von reichelt.
Im Vergleich zu den Amazon/China Teilen sind sie schon spürbar besser.
Gegen den CTS sehen die aber ganz schön alt aus.
 
U

User 19590

Es gibt auch von CTS normale Encoder - in wie weit die sich anders drehen/schalten/rasten im Vergleich zu
den CTS288 kann ich nicht sagen da ich diese nicht kenne.

Das Verhalten der Schalter ist recht unterschiedlich ( Typ, Bauart und Herstellerabhängig) und das muß jeder für sich selbst entscheiden was er da bevorzugt.
Bei den ALPS hab ich die EC11 o. EC12 Serie eingesetzt, bei Bourns müßte ich mal nachschaun weils etwas länger her ist und
wie geschrieben die Auswahl riesig ist.
Wem manche Encoder zu feinfühlig oder nicht hart genug in der Rastung sind der sollte es mal mit welchen ausprobieren
die weniger Impulse pro Umdrehung liefern.

User 23124 :In wie fern ALPS gegen die CTS "ganz schön alt ausehen" ist natürlich auch mal eine genaue Aussage ?
Vielleicht solltest du das mal genauer Erklären ! :unsure:
 
U

User 23246

Also um das etwas abzukürzen habe ich jetzt gerade mit Mouser telefoniert, Der Vertriebler am Telefon konnte mir jetzt natürlich spontan keine Antwort geben, was aber sehr bemüht und hat ein Ticket für die Technik erstellt. Ich habe ihm gesagt das ich einen EC11 Encoder mit starker Rasterung wünsche. Mal sehen was da zurück kommt. Aber sehr engagierter Service von Mouser.
Trotzdem wäre es natürlich auch schön wenn der CTS288 richtig funktionieren würde.
 
U

User 23246

Mal kurz was zu den Drehmomenten der Encoder:

Ein Bourns EC11: 210 ±70 gf-cm (https://www.mouser.de/datasheet/2/54/pec11h-1879218.pdf man wirbt im Datenblatt mit hohem Drehmoment, die 1€ Dinger haben 30-90 gf-cm)

Der CTS288: 100-500 gf-cm

ich hatte einen CTS dabei der war ganz lasch, fast so wie ein Chinading. Da war das Gehäuse scheinbar nicht richtig verpresst. Den hatte ich mit der Zange ordentlich zusammengestaucht und danach klickte der auch ordentlich
 
Zuletzt bearbeitet:
U

User 23124

Es gibt auch von CTS normale Encoder - in wie weit die sich anders drehen/schalten/rasten im Vergleich zu
den CTS288 kann ich nicht sagen da ich diese nicht kenne.

Das Verhalten der Schalter ist recht unterschiedlich ( Typ, Bauart und Herstellerabhängig) und das muß jeder für sich selbst entscheiden was er da bevorzugt.
Bei den ALPS hab ich die EC11 o. EC12 Serie eingesetzt, bei Bourns müßte ich mal nachschaun weils etwas länger her ist und
wie geschrieben die Auswahl riesig ist.
Wem manche Encoder zu feinfühlig oder nicht hart genug in der Rastung sind der sollte es mal mit welchen ausprobieren
die weniger Impulse pro Umdrehung liefern.

User 23124 :In wie fern ALPS gegen die CTS "ganz schön alt ausehen" ist natürlich auch mal eine genaue Aussage ?
Vielleicht solltest du das mal genauer Erklären ! :unsure:
Sorry, ist halt immer schwer zu beschreiben...

Durch die höhere Auslösekraft, das lautere "klicken" und der Rasterung von 16, statt 20 wie beim ALPS, geht es vom feedback her schon in die Richtung eines Drehschalters.
Das dürfte den CTS als "SimRacingEncoder" ja auch so interessant machen. Könnte natürlich auch an LeoBodnar liegen...

User 23246
Was sagt die "Switch Actuation Force" im Datenblatt aus? Bezieht die sich auf eine eventuell verbaute Push Funktion?
 
Zuletzt bearbeitet:

Ähnliche Themen

Antworten
13
Aufrufe
2K
Benutzer 8762
Oben