Forum: Mikrocontroller und Digitale Elektronik Drehschalter als Taster verwenden


von Ed E. (e3024v)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe folgendes vor: Per Drehschalter möchte ich pro Stellung einen 
Ausgang als Taster, der zb. 2x tastet.

Wenn ich also von Schalterstellung 1 auf 3 drehe, soll der "Taster" 4x 
getastet werden. Wenn ich nun aber von 3 auf 1 drehe, soll ein 2. Taster 
6x getastet werden. Hintergrund: Ich habe ein PC-Programm, bei dem ich 
von 0-100% mittels 2 Tasten fast stufenlos hoch und runter regeln kann. 
Fast bedeutet 50x tasten. Mit dem vorhandenen Drehschalter soll dies 
eben schneller funktionieren.

Vorhanden ist ein Drehschalter mit 20 Stellung. Siehe Bild.
Bei jeder Stellung werden verschiedene Kontakte geschlossen. "X" 
bedeutet geschlossen bzw. durchgang.

Wäre soetwas überhaupt machbar?
Wieviel Aufwand steckt hinter der Steuerung?

Vorhanden wäre auch ein Pokeys57U mit dem Programm Poblocks, jedoch auf 
Englisch und als Laie hab ich dort keinen Durchblick.


Wäre nett, wenn mir jemand dabei helfen könnte.

Danke, Gruß Ede

von Max D. (max_d)


Lesenswert?

Das Problem dürfte sein, dass evtl. mal ein Knopfdruck verloren geht und 
dann das ganze nichtmehr synchron läuft.
Denk mal über einen drehencoder nach

von Besucher (Gast)


Lesenswert?

Oder steck einen alten Joystick mit Dauerfeuer and die Taster. :)

von Peter D. (peda)


Lesenswert?

Ed E. schrieb:
> Wenn ich also von Schalterstellung 1 auf 3 drehe, soll der "Taster" 4x
> getastet werden. Wenn ich nun aber von 3 auf 1 drehe, soll ein 2. Taster
> 6x getastet werden.

Ließe sich mit einem MC machen, z.B. Attiny24.
Das Problem, was ich dabei sehe, wie soll sich ein Bediener so eine 
verrückte Reaktionsweise merken.
Und was soll bei den anderen 759 möglichen Kombinationen geschehen.

von Eric B. (beric)


Lesenswert?

Ed E. schrieb:
> Wenn ich also von Schalterstellung 1 auf 3 drehe, soll der "Taster" 4x
> getastet werden.

Das ist klar.

> Wenn ich nun aber von 3 auf 1 drehe, soll ein 2. Taster
> 6x getastet werden.

Warum 6x?

> Hintergrund: Ich habe ein PC-Programm, bei dem ich
> von 0-100% mittels 2 Tasten fast stufenlos hoch und runter regeln kann.
> Fast bedeutet 50x tasten.

Also, jeder Tastendruck inkrementiert bzw. dekrementiert irgendeinen 
Wert in deinem Programm mit 2%? Sind diese Tasten, einfach Tasten auf 
der Tastatur oder sind die in irgendeinem Gerät (Joystick, 
MIDI-Keyboard, Arduino-mit-Shield) das am PC angeschlossen ist?

von Ed E. (e3024v)


Lesenswert?

Peter D. schrieb:
> Ließe sich mit einem MC machen, z.B. Attiny24.
> Das Problem, was ich dabei sehe, wie soll sich ein Bediener so eine
> verrückte Reaktionsweise merken.
> Und was soll bei den anderen 759 möglichen Kombinationen geschehen.

Der Drehschalter ist auf einer Frontplatte montiert die beschriftet ist. 
0% 5% 10% 15% 20% usw. Dort kann ich dann den Wert schnell ablesen.
Bei den anderen Kombinationen soll nichts passieren.



Eric B. schrieb:
> Ed E. schrieb:
>> Wenn ich nun aber von 3 auf 1 drehe, soll ein 2. Taster
>> 6x getastet werden.
>
> Warum 6x?

Tippfehler, sollte auch 4x heißen. Wäre dies aber ein Problem, wenn man 
zwischen Stellung 1 und 2 2xtasten will und zwischen 2 und 3 5xtasten?

>> Hintergrund: Ich habe ein PC-Programm, bei dem ich
>> von 0-100% mittels 2 Tasten fast stufenlos hoch und runter regeln kann.
>> Fast bedeutet 50x tasten.
>
> Also, jeder Tastendruck inkrementiert bzw. dekrementiert irgendeinen
> Wert in deinem Programm mit 2%? Sind diese Tasten, einfach Tasten auf
> der Tastatur oder sind die in irgendeinem Gerät (Joystick,
> MIDI-Keyboard, Arduino-mit-Shield) das am PC angeschlossen ist?

Die Belegung kann ich mittels Hotkeys anpassen. Momentan nutze ich zwei 
Tasten auf der Tastatur. Wenn ich aber nun schnell von 100% auf 10% 
runtertippen will, dauert das viel zu lange. Hierfür wäre mein Gedanke 
mit den Drehschalter und dem automatischen tippen sinnvoll.

von Peter D. (peda)


Lesenswert?

Ed E. schrieb:
> Der Drehschalter ist auf einer Frontplatte montiert die beschriftet ist.
> 0% 5% 10% 15% 20% usw. Dort kann ich dann den Wert schnell ablesen.
> Bei den anderen Kombinationen soll nichts passieren.

Das klingt schon besser.
Aber woher weiß der Drehschalter, auf welchem Wert das PC-Programm 
gerade steht?

von Ed E. (e3024v)


Lesenswert?

Angenommen ich starte das Programm(ist dann immer 100%) und der Schalter 
steht auf 45%

Einmal "Referenz" fahren, indem ich den Drehschalter auf 100% drehe. 22 
Signale gehen dann ins Leere
Im Programm selber passiert nichts, weil ja schon auf 100%.


Gruß

von Rolf M. (rmagnus)


Lesenswert?

Ed E. schrieb:
>> Also, jeder Tastendruck inkrementiert bzw. dekrementiert irgendeinen
>> Wert in deinem Programm mit 2%? Sind diese Tasten, einfach Tasten auf
>> der Tastatur oder sind die in irgendeinem Gerät (Joystick,
>> MIDI-Keyboard, Arduino-mit-Shield) das am PC angeschlossen ist?
>
> Die Belegung kann ich mittels Hotkeys anpassen. Momentan nutze ich zwei
> Tasten auf der Tastatur. Wenn ich aber nun schnell von 100% auf 10%
> runtertippen will, dauert das viel zu lange. Hierfür wäre mein Gedanke
> mit den Drehschalter und dem automatischen tippen sinnvoll.

Da ergibt sich noch die Frage, wie schnell das System die Tasterei 
überhaupt richtig erkennt. Wenn du deinen Drehschaler wie beschrieben 
verstellst, müsste ja 45 mal getastet werden. Das wird aber auch nicht 
in 10 Millisekunden fertig sein. Wenn z.B. pro Tastvorgang 100 ms nötig 
sind, dauert's trotzdem 4,5 Sekunden, bevor die 10% auch tatsächlich 
erreicht werden. Der Wert hinkt dann deinem Drehschalter entsprechend 
hinterher.

von Der Andere (Gast)


Lesenswert?

Für sowas wurden eigentlich Incremental Drehgeber erfunden.
Meine Meinung

von Ed E. (e3024v)


Lesenswert?

Rolf M. schrieb:
> Da ergibt sich noch die Frage, wie schnell das System die Tasterei
> überhaupt richtig erkennt. Wenn du deinen Drehschaler wie beschrieben
> verstellst, müsste ja 45 mal getastet werden. Das wird aber auch nicht
> in 10 Millisekunden fertig sein. Wenn z.B. pro Tastvorgang 100 ms nötig
> sind, dauert's trotzdem 4,5 Sekunden, bevor die 10% auch tatsächlich
> erreicht werden. Der Wert hinkt dann deinem Drehschalter entsprechend
> hinterher.

Welches System meinst du? Das Programm oder das Bauteil welches nötig 
ist für den Drehschalter?

In dem Programm kann ich entweder per Tasten oder mit der Maus scollen. 
Wenn ich auf einer Taste drauf bleibe, dauert es bisschen mehr als 1sek. 
auf 100%.

Mit der Scollfunktion gehts aber ganz schnell, leider nicht zielgenau 
auf meinen Wunschwert...

von Der Andere (Gast)


Lesenswert?

Ed E. schrieb:
> n dem Programm kann ich entweder per Tasten oder mit der Maus scollen.

Soll das heissen dein Aufbau soll eine PC Tastatur emulieren?

von Rolf M. (rmagnus)


Lesenswert?

Ed E. schrieb:
> Welches System meinst du? Das Programm oder das Bauteil welches nötig
> ist für den Drehschalter?

Der Rechner inklusive der Software und dem Peripheriegerät, das die 
Sachen einlesen soll.

> In dem Programm kann ich entweder per Tasten oder mit der Maus scollen.
> Wenn ich auf einer Taste drauf bleibe, dauert es bisschen mehr als 1sek.
> auf 100%.

Das bringt dir aber nichts. Es geht darum, wie schnell 
aufeinanderfolgende Tastendrücke erkannt werden können, nicht darum, wie 
schnell sich der Wert ändert, wenn man die Taste dauerhaft gedrückt 
hält.

> Mit der Scollfunktion gehts aber ganz schnell, leider nicht zielgenau
> auf meinen Wunschwert...

Das heißt, du willst eine Maus zerlegen und da etwas anschließen, das 
das Scrollrad nachbildet, aber den Wert über den Drehschalter einliest?

von Ed E. (e3024v)


Lesenswert?

Der Andere schrieb:
> Ed E. schrieb:
>> n dem Programm kann ich entweder per Tasten oder mit der Maus scollen.
>
> Soll das heissen dein Aufbau soll eine PC Tastatur emulieren?

Jepp, wobei es wie gesagt mit der Maus auch geht. Wenn ich an meinen 
Pokeys57U zwei Taster anschließe, kann ich aber über diesen den Wert 
verstellen. Leider zu aufwändig.

Rolf M. schrieb:
> Das bringt dir aber nichts. Es geht darum, wie schnell
> aufeinanderfolgende Tastendrücke erkannt werden können, nicht darum, wie
> schnell sich der Wert ändert, wenn man die Taste dauerhaft gedrückt
> hält.

Deshalb der Test mit dem Mausrad. Das Programm kann also nicht das 
Problem sein.

>> Mit der Scollfunktion gehts aber ganz schnell, leider nicht zielgenau
>> auf meinen Wunschwert...
>
> Das heißt, du willst eine Maus zerlegen und da etwas anschließen, das
> das Scrollrad nachbildet, aber den Wert über den Drehschalter einliest?

Nein. Ich möchte, bzw. so war mein Gedanke, den Drehschalter mit seinen 
6 Pins an eine Platine anschließen. Auf der anderen Seite der Platine 
sollen  nur zwei Tastsignale rauskommen, welche ich direkt ins das 
Programm einbinden kann. Die Platine soll eben genau erkennen ob ich nun 
nach rechts oder links drehe und dabei jeweils 2 Tastsignale ausgeben.

Wegen der Ausgabegeschwindigkeit der Signalekommt es sicherlich auf 
einen Versuch an.

Gruß

von Ed E. (e3024v)


Lesenswert?

Der Andere schrieb:
> Für sowas wurden eigentlich Incremental Drehgeber erfunden.
> Meine Meinung


Hallo,

gibt es Drehgeber, sagen wir mal mit 100 Teilungen?

Der Vorteil meines Drehschalter ist, dass es eine Rastfunktion gibt und 
ich nur 2/3 Umdrehung machen muss. Ebenso gibt es an den Schalter 
Festanschläge.

Gruß

von Eric B. (beric)


Lesenswert?

Ed E. schrieb:
> Nein. Ich möchte, bzw. so war mein Gedanke, den Drehschalter mit seinen
> 6 Pins an eine Platine anschließen. Auf der anderen Seite der Platine
> sollen  nur zwei Tastsignale rauskommen, welche ich direkt ins das
> Programm einbinden kann.

Und wie soll die Platine mit deinem Programm bzw deinem PC verbunden 
werden?

von Ed E. (e3024v)


Lesenswert?

Eric B. schrieb:
> Ed E. schrieb:
>> Nein. Ich möchte, bzw. so war mein Gedanke, den Drehschalter mit seinen
>> 6 Pins an eine Platine anschließen. Auf der anderen Seite der Platine
>> sollen  nur zwei Tastsignale rauskommen, welche ich direkt ins das
>> Programm einbinden kann.
>
> Und wie soll die Platine mit deinem Programm bzw deinem PC verbunden
> werden?

Das kann ich dann wieder mit meinem Pokeys57U machen. Dort gibt es die 
Funktion "Matrix Tastatur" welche super mit dem PC funktioniert.

Gruß

von Peter D. (peda)


Lesenswert?

Ed E. schrieb:
> Der Drehschalter ist auf einer Frontplatte montiert die beschriftet ist.
> 0% 5% 10% 15% 20% usw.

Dann kommst Du aber mit 20 Stellungen nur auf max 95%.

Programmtechnisch ist das kein Problem und schnell in C hingeschrieben.
Zuerst wandelst Du den Graycode per Array oder switch in die gewünschten 
Pulswerte um und dann vergleichst Du ihn mit dem Pulszähler. Bei größer 
gibts einen Puls am Ausgang+ und bei kleiner einen Puls am Ausgang-.
Die Pulsdauer/Pause machst Du mit _delay_ms(). Ich würde da mit 100ms 
anfangen.
Zur Matrix gehts mit Analog-Schalter (74HC4066) oder Optokoppler.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.