Forum: Mikrocontroller und Digitale Elektronik Drehtaster als Tasterersatz gesucht


von Torsten S. (Gast)


Lesenswert?

Hallo,

Ich suche einen Drehencoder/Drehtaster der sich 360° dreht und 
eigentlich nur 2 Taster ersetzen soll.
Hintergrund:
Ich baue derzeit ein Android Smartphone zum Radio um. Hat bisher schon 
hervorragend funktioniert, nur möchte ich diesmal ein schöneres Gehäuse.
Am Smartphone sind die zwei Volume Tasten, die ich gerne herausführen 
und in die Frontplatte verlegen möchte.
Dazu wäre eben eine Art 360° Drehencoder schön. Aber ich möchte direkt 
die Taster ersetzen ohne irgendwelche Zusatzhardware zwischen Smartphone 
und Drehencoder.
Gibt es so etwas?
Quasi, für mich als Laie - eine Dreheingabe, die nach rechts gedreht, 
den Volume+ Taster betätigt und nach links den Volume - Taster betätigt.

Vielen Dank für eine Hilfe!

: Verschoben durch User
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Torsten S. schrieb:
> Gibt es so etwas?

Ohne zusätzliche Elektronik nicht. Die brauchst Du, um aus den Signalen 
des Drehimpulsgebers Deine selektiven Tastendrücke zu erzeugen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Sowas gab es - allerdings habe ich es nur einmal in einem prof. VHS 
Player von JVC gesehen und auch gleich geplündert. Drehte man linksrum, 
wurde ein Kontaktpaar getastet, drehte man rechtrum, ein anderes, das 
Ding war ein Produkt von ALPS.
Allerdings wirklich nur ein einziges Mal gesehen und deswegen fehlen mir 
auch Suchbegriffe für dich.

von Bussard (Gast)


Lesenswert?

Wenn Du bastlerisch nicht 2 linke Hände hat:

Nimm ein beliebiges Poti (möglichst groß mit dicker Achse, 
Blechgehäuse), entferne die Rückplatte mit dem Widerstand,löte an den 
Achsstummel einen dicken Draht (Zeiger, Nagel, ..) und anstelle der 
Rückwand ein Stück Lochrasterplatine o.ä.
Darauf rechts und links der Drehachse je einen Mikrotaster mit 
Federstreifen, fertig.
Für die Mittenrückstellung (bei Bedarf) verlängerst Du den dicken Draht 
über die Achse hinaus und befestigst daran eine kleine Zugfeder. 
Zusammen mit frischem Silikonfett an der Achse läßt es sich gut bedienen 
und läuft sanft in die Mittelstellung zurück.

Hatte ich so über 20 Jahre im WZ-Verstärker im Einsatz.

von Schorschi (Gast)


Lesenswert?

Hi,

ich würde da einfach so einen kleinen dig. Joistick nehmen.
Da sind dann zwar auch Tasten rauf und runter aber die musst du ja nicht 
verwenden.

Oder muss es zwingend was zum drehen sein?

Gruß.

von Torsten S. (Gast)


Lesenswert?

Hallo, vielen Dank für die tolle Hilfestellung!
Bastlerisch habe ich definitiv keine linken Hände, allerdings ist es das 
Radio für ein Kind. Da könnte die Bastellösung vielleicht zu schnell an 
ihre Grenzen kommen. Stichwort Überbeanspruchung...

Zum Drehen wäre eben ganz schön, da das Radio optisch an die schönen 
alten Holzradios aus den 50er 60er Jahren angelehnt sein wird.

Mittlerweile habe ich mir selber noch überlegt, dass ich auch eine Maus 
zerlegen kann, um die 2 Tasten der Maus und das Drehrad nutzen kann für 
die Eingabe. Die Maus kann dauerhaft über den USB Anschluss des 
Smartphone angeschlossen bleiben. Die Stromversorgung geht hinten 
sowieso direkt rein, ohne Akku.
Die Auswertung der Eingabe und die Umsetzung in die Radio App übernimmt 
Tasker.
Grundsätzlich hätte ich gern zwei Drehdrück - Taster am Gerät, einen um 
durch das Menü zu scrollen und um das Radio generell einzuschalten. Den 
anderen wie schon beschrieben für die Lautstärke.

Wenn ich schon Zusatzhardware benötige für die Auswertung der echten 
Drehencoder, gibt es da was, was ich dann mit Android auswerten und 
nutzen kann? Hat sich damit schon jemand zufällig beschäftigt?

Vielen Dank

von georg (Gast)


Lesenswert?

Torsten S. schrieb:
> Wenn ich schon Zusatzhardware benötige für die Auswertung der echten
> Drehencoder, gibt es da was, was ich dann mit Android auswerten und
> nutzen kann

Wozu? Du kannst einen winzigkleinen Controller verwenden, der aus den 
Drehsignalen Auf/Ab-Tastendrücke macht, die schliesst du da an wo die 
bisherigen Tasten angeschlossen sind. Ganz transparent.

Georg

von Torsten S. (Gast)


Lesenswert?

Stimmt., du hast Recht! Das muss ich mir noch durch den Kopf gehen 
lassen.

Zwischenzeitlich fiel mir noch ein, dass der USB Host Anschluss des 
Smartphone ja generell alle Art von Eingabegeräten erkennen müsste. So 
vielleicht auch ein Gamepad, etc.
Möglicherweise ergibt sich dadurch ja eine "Fast-Fertig-Lösung", eben 
auch für mehr als die Lautstärke Regelung.

von fop (Gast)


Lesenswert?

Ich habe in einer lernfähigen Fernbedienung von Philips mal was gesehen 
: Es erinnerte mehr so an ein Glücksrad vom Rummel. Also die Dinger, die 
in der Nähe des Umfangs lauter Stifte haben. Man dreht die Scheibe mit 
der Hand und oben rattert ein kleines Fähnchen über die Stifte, bis die 
Scheibe auf "leider verloren" (angezeigt durch das Fähnchen) stehen 
bleibt.
Wenn mann nun statt des Fähnchens einen Taster nimmt, der einen Kontakt 
schliest, wenn er nach rechts gedrückt wird und einen anderen, wenn er 
nach links gedrückt wird und das Ganze natürlich sehr viel kleiner baut 
als das Vorbild, hat man mechanisch die Lösung gefunden...

von Philipp G. (geiserp01)


Lesenswert?

Viel zu kompliziert. Er will nur zwei Taster mit einer Links- oder 
Rechtbewegung.

Und ich weiss, wo es die Teile gibt: Auf dem Schrottplatz. Bei vielen 
Autos ist im Tacho zur Urzeitverstellung so ein Ding verbaut, genau was 
Du suchst. Links für Stunden, rechts für Minuten.

Such' Dir am besten 91-98er Nissans.

P.S: Wenn du nix findest kann ich dir das Ding auch zuschicken, aber 
such zuerst.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Philipp G. schrieb:
> Viel zu kompliziert. Er will nur zwei Taster mit einer Links- oder
> Rechtbewegung.
Nö, will er nicht:

Torsten S. schrieb:
> Ich suche einen Drehencoder/Drehtaster der sich 360° dreht und
> eigentlich nur 2 Taster ersetzen soll.

Und das Dings in meinem Nissan dreht keinesfalls 360°, sondern höchstens 
30° nach links und rechts.

von Chr. M. (snowfly)


Lesenswert?


von Philipp G. (geiserp01)


Lesenswert?

Matthias S. schrieb:
>> Viel zu kompliziert. Er will nur zwei Taster mit einer Links- oder
>> Rechtbewegung.
> Nö, will er nicht:

Ich denk schon.

Matthias S. schrieb:
>> Ich suche einen Drehencoder/Drehtaster der sich 360° dreht und
>> eigentlich nur 2 Taster ersetzen soll.
>
> Und das Dings in meinem Nissan dreht keinesfalls 360°, sondern höchstens
> 30° nach links und rechts.

Ja, so 30° kommt hin. Er will damit die Volume +- Tasten ersetzen. Ich 
glaube nicht, dass er mit zwei Fingern eine volle 360° Drehung 
vollziehen will, warum auch?

von Philipp G. (geiserp01)


Lesenswert?

Du kannst auch sowas nehmen:

https://www.distrelec.ch/de/rotary-wafer-switch-rnd-components-rnd-210-00082/p/30090538?q=*&filter_Category3=Drehschalter&filter_Buyable=1&filter_Schaltstellungen=3&page=3&origPos=13&origPageSize=25&simi=99.9

Aber das schöne am Nissan Drehschalter ist halt, dass dieser selber 
immer zurück in die Nullstellung geht.

von Luca E. (derlucae98)


Lesenswert?

Philipp G. schrieb:

> Ja, so 30° kommt hin. Er will damit die Volume +- Tasten ersetzen. Ich
> glaube nicht, dass er mit zwei Fingern eine volle 360° Drehung
> vollziehen will, warum auch?

Er möchte das "feeling" eines Potis haben.

von Philipp G. (geiserp01)


Lesenswert?

Luca E. schrieb:
>> Ja, so 30° kommt hin. Er will damit die Volume +- Tasten ersetzen. Ich
>> glaube nicht, dass er mit zwei Fingern eine volle 360° Drehung
>> vollziehen will, warum auch?
>
> Er möchte das "feeling" eines Potis haben.

Das hat er mit dem Nissan _Dreh_schalter ja auch.

Ein Poti federt selten zurück in die Nullstellung.

: Bearbeitet durch User
von W.A. (Gast)


Lesenswert?

Philipp G. schrieb:
> ... zur Urzeitverstellung ...
Die Urzeit ist schon lange, lange her. Da waren noch nicht mal Menschen 
angedacht, geschweige denn irgendwelche Verstellmechanismen für 
Elektronik.

von Kilo K. (kilo81)


Lesenswert?

Selbst mit einem Poti kannst du ohne Hardware/Software keine Taster 
ersetzen.

Wenn er einen Drehencoder haben will dann kommt er ohne Zusatzschaltung 
nicht aus.

Will er so einen drehschalter haben wie bei manchen alten Videorecordern 
dann geht es ohne Zusatzschaltung.
Aber das will er ja nicht

von Philipp G. (geiserp01)


Lesenswert?

Dominik K. schrieb:
> Will er so einen drehschalter haben wie bei manchen alten Videorecordern
> dann geht es ohne Zusatzschaltung.
> Aber das will er ja nicht

Eben. Und für ein Poti im Sinne von 'linker Anschlag 0, rechter Anschlag 
max' fehlt im die Rückmeldung.

von Luca E. (derlucae98)


Lesenswert?

Philipp G. schrieb:

> Ein Poti federt selten zurück in die Nullstellung.

Braucht es ja auch nicht.
Was er sucht ist ein Drehencoder, der statt des Graycodes einfach nur 
Impulse bei rechts- bzw. linksdrehen ausgibt.

von Philipp G. (geiserp01)


Lesenswert?

Luca E. schrieb:
> Braucht es ja auch nicht.
> Was er sucht ist ein Drehencoder, der statt des Graycodes einfach nur
> Impulse bei rechts- bzw. linksdrehen ausgibt.

Dafür fehlt ihm die Synchronisation zum Android.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Philipp G. schrieb:
> Dafür fehlt ihm die Synchronisation zum Android.

Ich verstehe immer noch nicht, was du sagen willst. Nein, der Nissan 
Hebel hat kein Poti-Feeling, weil, wie du selber schreibst:

> Ein Poti federt selten zurück in die Nullstellung.
Aber genau das tut der Nissan Steller.

Und ein Android-Lautstärkesteller muss auch nicht synchronisiert werden 
- was soll das überhaupt sein?

> Und für ein Poti im Sinne von 'linker Anschlag 0, rechter Anschlag
> max' fehlt im die Rückmeldung.

Er will auch keine Rückmeldung, weil die sowieso auf dem Bildschirm 
steht. Alles, was der TE sucht, ist:

Luca E. schrieb:
> Was er sucht ist ein Drehencoder, der statt des Graycodes einfach nur
> Impulse bei rechts- bzw. linksdrehen ausgibt.

So isses. Ich habe gleich zu Anfang gepostet, das es sowas schon gab, ob 
ALPS das heute noch fertigt und verkauft, muss man eben mal rausfinden. 
Ansonsten brauchts nun mal ein MC mit Progrämmchen oder eine Schaltung 
mit Logikgatter.

von Philipp G. (geiserp01)


Lesenswert?

Matthias S. schrieb:
>> Dafür fehlt ihm die Synchronisation zum Android.
>
> Ich verstehe immer noch nicht, was du sagen willst. Nein, der Nissan
> Hebel hat kein Poti-Feeling, weil, wie du selber schreibst:
>
>> Ein Poti federt selten zurück in die Nullstellung.
> Aber genau das tut der Nissan Steller.

Das ist klar, hier bin ich mit Dir einig. Die fehlende Federwirkung war 
auf das Poti bezogen.

Matthias S. schrieb:
> Und ein Android-Lautstärkesteller muss auch nicht synchronisiert werden
> - was soll das überhaupt sein?

Ich weiss nicht, was Du mit ALPS meinst? Haben deren Schalter keine 
Endanschläge? Dann verstehe ich Dich.

Wenn es aber ein klassisches Poti sein soll, muss dieses optimaler weise 
mit dem Android synchronisiert zur Ausgabelautstärke laufen:

Beispiel: Poti hat einen Anschlag links (Volume 0), und einen Anschlag 
rechts (Volume max).

Kind hört Radio.

Kind dreht Volume Regler auf 0.

Kind schaltet Radio aus.

Kind dreht Volume Regler von ganz links nach ganz rechts -> Volume max.

Kind schaltet Radio ein.

Kind will lauter machen, aetsch, geht nicht. Ist schon am Anschlag 
rechts.

Kind muss verstehen, dass man nun ganz ganz nach links drehen muss, bis 
zum Anschlag, und dann wieder nach rechts zur gewünschten Lautstärke.

Kind haut Radio putt.

Klar was ich meine, Matthias?

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Philipp G. schrieb:
> Ich weiss nicht, was Du mit ALPS meinst? Haben deren Schalter keine
> Endanschläge? Dann verstehe ich Dich.

Lies doch einfach den Beitrag. Es gab in diesem prof. VHS Player von JVC 
einen Drehencoder, der beim Rechtsdrehen ein Kontaktpaar taktete und 
beim Linksdrehen ein anderes. Wenn ich Lust habe, durch die Kälte zum 
Schuppen zu traben, hol ich das Ding mal rein und mache Fotos.
Dieser Drehencoder hat keine Anschläge, sondern nur, wie moderne Teile, 
eine Rastung.

Philipp G. schrieb:
> Kind hört Radio.

Woher kommt plötzlich ein Kind? Und warum sollte ein Telefon, was man 
aus- und dann wieder einschaltet, die Lautstärkeeinstellung vergessen? 
Bei meinem alten Wischhandy jedenfalls merkt sich das Dings die 
Lautstärkeeinstellung.

Ausserdem sind Kinder flotter auf den Telefonen unterwegs als alte 
Knacker.

: Bearbeitet durch User
von Philipp G. (geiserp01)


Lesenswert?

Torsten S. schrieb:
> Hallo, vielen Dank für die tolle Hilfestellung!
> allerdings ist es das
> Radio für ein Kind. Da könnte die Bastellösung vielleicht zu schnell an
> ihre Grenzen kommen. Stichwort Überbeanspruchung


daher matthias.

Lies jetzt bitte nochmal mein Beispiel.

: Bearbeitet durch User
von Luca E. (derlucae98)


Lesenswert?

Philipp G. schrieb:
> Ich weiss nicht, was Du mit ALPS meinst? Haben deren Schalter keine
> Endanschläge? Dann verstehe ich Dich.

Ein Drehencoder hat generell keine Endanschläge.

Um mal bei deinem Beispiel zu bleiben:

Kind hört Radio.

Kind dreht Volume Regler nach links.

Android verringert Lautstärke.

Kind dreht weiter nach links.

Lautstärke bleibt auf 0.

Kind schaltet Radio aus.

Kind dreht Volume Regler von ganz links nach ganz rechts -> Nichts 
passiert, da Radio aus.

Kind schaltet Radio ein.

Kind will lauter machen, dreht den Encoder nach rechts.

Kind dreht weiter nach rechts, Lautstärke bleibt auf max.

Kind lässt Radio ganz.

von Rolf M. (rmagnus)


Lesenswert?

Philipp G. schrieb:
> Ich weiss nicht, was Du mit ALPS meinst? Haben deren Schalter keine
> Endanschläge?

Du bist eigentlich der einzige, der hier ständig Endanschläge 
reinbringt. Die waren nirgends gefordert. Und die Probleme, die du 
nennst wie "Synchronisation mit Android" entstehen nur aus diesen 
Endanschlägen.
Der TE möchte etwas, das sich wie ein typischer Drehencoder nutzen 
lässt, aber das nicht sowas wie einen Quadraturcode ausgibt, sondern 
sich elektrisch so verhält wie zwei Taster, einen der der beim 
Linksdrehen betätigt wird und einen beim Rechtsdrehen.

von Hauke Haien (Gast)


Lesenswert?

Meinst du soetwas?

http://www.grayhill.com/assets/1/7/Rotary_Special_Function_Individual.pdf

Typ MDM.

Gibts bei Mouser. Aber gut aufpassen beim Zusammenbasteln der 
Typennummer.

Evtl. 503265-1-03N

von Philipp G. (geiserp01)


Lesenswert?

Rolf M. schrieb:
> Du bist eigentlich der einzige, der hier ständig Endanschläge
> reinbringt. Die waren nirgends gefordert. Und die Probleme, die du
> nennst wie "Synchronisation mit Android" entstehen nur aus diesen
> Endanschlägen.
> Der TE möchte etwas, das sich wie ein typischer Drehencoder nutzen
> lässt, aber das nicht sowas wie einen Quadraturcode ausgibt, sondern
> sich elektrisch so verhält wie zwei Taster, einen der der beim
> Linksdrehen betätigt wird und einen beim Rechtsdrehen.

Ja, schon klar. Er hat nun mal das klassische Radio erwähnt.

von Kilo K. (kilo81)


Lesenswert?

Philipp G. schrieb:
> Ja, schon klar. Er hat nun mal das klassische Radio erwähnt.

Ja aber nur optisch!

Ich hatte mal was ähnliches gemacht per HID um im Flugsimulator ein 
Volume Poti zu simulieren mit einem Drehencoder.
Geht aber wie gesagt nur mit Zusatzhardware dazwischen.
Wenn man den klassischen Drehencoder nimmt.

von Philipp G. (geiserp01)


Lesenswert?

Ich hätte Dir jetzt zwei mögliche Lösungsansätze, die etwas Geschick 
vorausgesetzt, sehr einfach zu realisieren sind - und - funktionieren 
werden. Die eine ist rein elektromechanisch, die andere mit einem uC.

1)

Die RC Helis (für die Gäste im Forum, die ferngesteuerten Modellbau 
Helikopter) sind heutzutage alle ein bisschen ähnlich gebaut. Meist ist 
ein Brushless Motor mit einem Ritzel, welcher den Hauptrotor über einen 
Zahnkranz antreibt. In der Nabe des Zahnrads ist ein Freilauf drin (für 
die Autorotation u.W).

Suchbegriffe: TREX 450 Main Gear

Kosten nix und sind qualitativ hochwertig.

Du besorgst Dir zwei solcher Zahnkränze. Wenn Du keinen Zugang zu einem 
3D Drucker hast, und auch keine Fräsmaschine mit Teilapparat, mit Dremel 
auf den Zahnkranz sagen wir 20 'Nocken' oder grosse 'Zähne' reindremeln.

Nun schiebst Du beide auf die Welle, der eine verkehrt darauf, und 
befestigst unten je ein Endschalter.

https://www.bing.com/search?q=endschalter&qs=n&form=QBRE&sp=-1&pq=endschalter&sc=8-11&sk=&cvid=533C56F57685489EA26FC6B619AE1EDC

2)

Arduino Nano. Und halt doch ein Poti. Du übergibst den Ausschaltvorgang 
dem Arduino Nano. Beim Ausschalten schickt der immer, sagen wir, 20 
Pulse auf den 'Volume - Eingang'. Beim Anschalten fährt je nach 
Potistellung die Lautstärke langsam hoch.

Beim Drehen des Potis misst Du die Spannungsdifferenz, erhöhen schickt 
Pulse an Volume+, die andere Richtung an Volume-.

Das schöne an der zweiten Lösung ist, du lernst was über uC und 
benötigst wirklich nur sehr wenig Zusatzbauteile. Auch das Coding ist in 
wenigen Zeilen gemacht.

Gruss, Philipp

: Bearbeitet durch User
von Luca E. (derlucae98)


Lesenswert?

Philipp G. schrieb:
> Arduino Nano. Und halt doch ein Poti.

Warum ein Poti? Mit einem Drehencoder umgeht er das von dir 
angesprochene Problem mit der Synchronisation. Aber soweit waren wir 
schon gestern.

von W.S. (Gast)


Lesenswert?

Rufus Τ. F. schrieb:
> Ohne zusätzliche Elektronik nicht.

Oooch, ich könnte mir schon eine kleine Mechanik vorstellen, die aus 
einer Drehbewegung zwei unterschiedliche Tastendrücke erzeugt. Aber ob 
der TO auch genügend Feinmechanik-Fertigkeiten im Kreuz hat, ist 
natürlich unklar.

W.S.

von batman (Gast)


Lesenswert?

Drehtaster gibts muß es doch fertig geben. Sowas hab ich im Ofen, um die 
Zeiten einzustellen.
2 Schaltstellungen nach links, 2 rechts, jeweils langsam/schnell f. 
rückwärts/vorwärts. Anschläge und gefederte Rückstellung in die 
Mittenposition.

von Kilo K. (kilo81)


Lesenswert?

batman schrieb:
> Drehtaster gibts muß es doch fertig geben. Sowas hab ich im Ofen, um die
> Zeiten einzustellen.
> 2 Schaltstellungen nach links, 2 rechts, jeweils langsam/schnell f.
> rückwärts/vorwärts. Anschläge und gefederte Rückstellung in die
> Mittenposition.

Das es die gibt steht außer Frage.

Der TO will aber 360° drehen.
Da nützen all die Vorschläge nix mit: Poti, Drehtaster oder Freilauf aus 
einem TRex 450.

von Philipp G. (geiserp01)


Lesenswert?

Warum? Mit der Freilauf Lösung kann er einstellen wie er will. Wenn er 
von 20 Pulse von 0-100 braucht kommen 20Zähne in den Kranz.

: Bearbeitet durch User
von Kilo K. (kilo81)


Lesenswert?

Ich verstehe gerade den Sinn nicht.
Ein Freilauf ist ein Lager welches in der einen Richtung die innere 
Welle frei drehen lässt und in der anderen Richtung sperrt und sich mit 
der Welle zusammen bewegt.
Wenn ich 2 dieser Lager übereinander baue, wobei 1 verkehrt herum sitzt 
sperrt es entweder in beide richtungen und dreht sich frei in beide 
Richtungen.

Von einer 360° Lösung total weit entfernt.

Vor allen Dingen... du weißt wie groß so ein HZR vom TRex ist? Wo soll 
der das denn einbauen?

: Bearbeitet durch User
von batman (Gast)


Lesenswert?

Ich hab solche Freiläufe auch an Wellen von Druckern, ca. 6mm 
Duchmesser.
Die Idee ist wohl, die Dinger nicht als Lager einzusetzen, sondern die 
Welle normal drehbar zu lagern und zusätzlich je einen Freilauf pro 
Richtung, der dann einen Zahnkranz in einer Lichtschranke dreht oder 
einfach einen Schalter über einen Nocken betätigt o.ä.
Originell aber irgendwie bischen sinnlos.

von Torsten S. (Gast)


Lesenswert?

Hallo guten Abend,
leider bin ich außer der Bastelei noch anderweitig stark eingebunden...

Mich wundert es, dass mein kleines Problemchen solche Wellen schlägt.

Hat denn keiner der hier Mitschreibenden etwas von dem Wandel der 
Lautstärkeverstellung in den 90ern mitbekommen???

In den Radios der 80er (Auto, Radio) hatten die Radios die Poti 
Regelung. Danach in den 90ern kam die Tastenbedienung auf, weil es halt 
gerade "in" war, viele Tasten auf ein Gerät zu bretzeln.
Davon kamen allerdings wieder viele namhafte Hersteller ab, weil einfach 
die Haptik nicht die gleiche war, im Auto z.B. kann man eben schneller 
aufdrehen, als auftasten. Moderne gute Geräte haben eben wieder den 
Drehknopf.
Diesmal allerdings eben digital ausgewertet, als Drehencoder...

Dies nur kurz als Begründung meines Wunsches.
Ich möchte keine Mittelstellung, kein Poti mit Endlagen, sondern einfach 
nur beim Drehen des Rades nach rechts lauter, bzw. nach links leiser 
stellen wollen. Für mich stimmt damit die Optik und fürs Kind die Haptik 
(kein Überdrehen einer Endstellung möglich - nur eine Anzeige im 
Display, dass bei 100% wirklich Schluss mit laut ist).
Dafür ist ein Drehencoder tatsächlich perfekt geeignet. Ich dachte nur, 
dass es das auch einfach als fertigen Dreh"taster" gibt und mir nur der 
richtige Suchbegriff für Google fehlt.

Ist offensichtlich nicht so einfach wie ich anfangs dachte, _also habe 
ich mich umorientiert_.
Wenn schon ein Board zwischen Android und Eingabe hängt, dann kann ich 
ein paar mehr Eingaben ermöglichen.

Nun hat sich meine ursprüngliche Fragestellung geändert; kennt einer ein 
nach Möglichkeit ein Board, gerne auch als DIY Anleitung, welches mir 
ermöglicht, zwei Dreh-drück-encoder über USB an den Android USB Host 
zu stecken? Wenn es die Eingaben als Tastatureingabe sendet, kommt 
Android/Tasker locker damit zurecht und ich habe weniger Arbeit.
Grundsätzlich ist programmieren und Feinmechanik kein Problem, nur der 
Tag ist leider immer zu kurz für meine vielen Wünsche...

Für einzelne Drehencoder über USB gibt es einige Fertig und einige DIY 
Anleitungen, z.B. https://www.thingiverse.com/thing:2035590.
Geschaut habe ich mittlerweile bei Adafruit, Sparkfun oder beim 
Aliexpress, aber nichts gefunden.

Leider habe ich so etwas wiederum nicht für mehrere Drehencoder 
gefunden, die wiederum Tastatur Eingaben weitergeben z.B. Drehencoder 1: 
nach rechts drehen - sendet Taste Q; nach links drehen - sendet Taste W.

Zwei Dreh-drück-encoder würde ich nun nehmen für,
Drehencoder 1: Drücken zum Ein/Ausschalten, drehen für das Menü
und
Drehencoder 2: Drücken für Mute, drehen für die Lautstärkeregelung.


Ganz schön langer Text, aber ich möchte verhindern, dass hier noch die 
Fäuste fliegen...

Vielen Dank, Torsten

von Widerstand (Gast)


Lesenswert?

Sowas ähnliches hat die "Mighty Mouse" von Apple in ihrer kleinen grauen 
Kugel, und ich glaube auch der Blackberry: für jede der Richtungen 
links/rechts/oben/unten wird eine eigene Achse gedreht. Auf der aber 
leider ein Magnet und daneben ein Hallsensor sitzt.

Ich hätte sowas gerne für das Mäusekino meiner Klimaanlage im Auto. Von 
16 auf 32°C in 0,5°-Schritten sind 32 Tastendrücke!!! Da man wegen der 
Entprellung nicht beliebig schnell tippen darf, braucht das mehrere 
Sekunden, die man einhändig fährt. Oder man hält die Taste 5-10 Sekunden 
fest.

In dem Fall bräuchte man also eh eine elektronische Mimik, die ein 
beherzte Rundumdrehung in gebremste Einzeltastungen unterteilt. Im 
Prinzip wäre das eine wunderbare Anwendung für ein kleines IC. Wird nur 
keine Industriekunden geben, die sowas kaufen.

von Harlekin (Gast)


Lesenswert?

http://www.alps.com/prod/info/E/HTML/Encoder/Incremental/Incremental_list1.html

Adafruit Itsy Bitsy 32u4 - 3V 8MHz https://www.adafruit.com/product/3675
"USB uploading and debugging"
"Can act as a USB HID Keyboard, Mouse, MIDI or plain USB 'CDC' serial 
device (default)"

Hat genügend I/O, kann als USB-Keyboard dienen. Allerdings sind das 
"Prospektangaben" somit kann ich keine Aussage zur Eignung und zum 
Programmieraufwand machen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Neben dem Adafruit Teil könnte auch der IO Warrior oder ein eigenes 
Projekt mit V-USB geeignet sein, wenn du AVRs programmieren kannst.
Ich würde aber erstmal ausprobieren, ob z.B. eine USB Tastatur vom 
Telefon akzeptiert wird und welche Tasten die Lautstärkefunktion tragen 
- wenn überhaupt.

https://www.codemercs.com/de/io-warrior

https://www.obdev.at/products/vusb/index-de.html

von Axel S. (a-za-z0-9)


Lesenswert?

Torsten S. schrieb:
> Mich wundert es, dass mein kleines Problemchen solche Wellen schlägt.

Das liegt daran, daß es - zumindest unter den von dir vorgegebenen 
Randbedingungen - eben gerade nicht klein ist.

> In den Radios der 80er (Auto, Radio) hatten die Radios die Poti
> Regelung. Danach in den 90ern kam die Tastenbedienung auf, weil es halt
> gerade "in" war, viele Tasten auf ein Gerät zu bretzeln.
> Davon kamen allerdings wieder viele namhafte Hersteller ab, weil einfach
> die Haptik nicht die gleiche war, im Auto z.B. kann man eben schneller
> aufdrehen, als auftasten. Moderne gute Geräte haben eben wieder den
> Drehknopf.
> Diesmal allerdings eben digital ausgewertet, als Drehencoder...

Genau. An einem Mobiltelefon ist aber kein Platz für einen solchen 
Drehgeber. Deswegen dort wieder Tasten, statt des haptisch besseren 
Drehgebers.

> Ich möchte keine Mittelstellung, kein Poti mit Endlagen, sondern einfach
> nur beim Drehen des Rades nach rechts lauter, bzw. nach links leiser
> stellen wollen. Für mich stimmt damit die Optik und fürs Kind die Haptik
> (kein Überdrehen einer Endstellung möglich - nur eine Anzeige im
> Display, dass bei 100% wirklich Schluss mit laut ist).
> Dafür ist ein Drehencoder tatsächlich perfekt geeignet.

Korrekt. Nur ist ein Drehgeber eben ein Drehgeber. Der will elektrisch 
anders ausgewertet werden als zwei Tasten. Mit einem kleinen µC - 4 I/Os 
reichen ja schon - wäre die Umsetzung von Drehgeber auf zwei Tasten 
trivial. Aber wenn du forderst:

Torsten S. schrieb:
> ohne irgendwelche Zusatzhardware zwischen Smartphone und Drehencoder

dann geht es halt nicht so einfach.

> Nun hat sich meine ursprüngliche Fragestellung geändert; kennt einer ein
> nach Möglichkeit ein Board, gerne auch als DIY Anleitung, welches mir
> ermöglicht, zwei Dreh-drück-encoder über USB an den Android USB Host
> zu stecken? Wenn es die Eingaben als Tastatureingabe sendet, kommt
> Android/Tasker locker damit zurecht und ich habe weniger Arbeit.

Fertig wäre mir das nicht bekannt. Mit sehr viel mehr Knöpfchen und 
Rädchen gibt es das als Bedienpult für DJ's. Aber für nur zwei Encoder 
macht sich keiner die Mühe. Andererseits ist das halbwegs trivial. Für 
den Software-USB-Stack für AVR gibt es schon fertigen Code [1] für ein 
HID-Device. Da müßte man nur noch die Auswertung für zwei Drehgeber 
anflanschen und das Ganze auf einen ATMega brennen.

> Zwei Dreh-drück-encoder würde ich nun nehmen für,
> Drehencoder 1: Drücken zum Ein/Ausschalten, drehen für das Menü und
> Drehencoder 2: Drücken für Mute, drehen für die Lautstärkeregelung.

Dein Problem ist, daß du nicht nur Sonderwünsche hast, sondern auch noch 
erwartest, daß andere vor dir genau die gleichen Sonderwünsche gehabt 
haben. Ich würde ja schon die Prämisse in Frage stellen, ob ein 
Smartphone überhaupt eine sinnvolle Basis für ein "Radio" darstellt. 
Immerhin konnte man gut 100 Jahre vor der Erfindung des Smartphones 
schon Radios bauen. Und die hatten auch haptisch geeignete 
Bedienelemente.


[1] https://www.obdev.at/products/vusb/prjhid.html

: Bearbeitet durch User
von batman (Gast)


Lesenswert?

Ich glaub die Leute kommen einfach gar nicht mehr auf die Idee, ein 
Problem mit irgendwas anderem als einer App zu lösen.

Daß man ein Radio als Radio verwendet, paßt da schon nicht mehr ins 
Weltbild.

von Torsten S. (Gast)


Lesenswert?

Ich verstehe leider nicht, warum ich mich und meine Beweggründe 
erklären muss.
Ich habe doch versucht, beim zweiten Post zu erklären, warum ich meine 
Meinung mittlerweile geändert habe zum geplanten Aufbau.
Wenn dann natürlich Aussagen des ersten Posts gegen Aussagen des zweiten 
Posts gestellt werden, dann verstehe ich das ehrlich nicht.

Oder Aussagen wie, ein Radio per Smartphone passe nicht zum "Weltbild". 
Das passt wiederum nicht in mein Weltbild.
Oder eben die Frage, warum das Radio "neu" erfunden werden müsse,  da es 
das ja bereits vor 100 Jahren gegeben hätte.

Wenn man so an das Thema ran geht, dann könnten ja sämtliche 
Entwickler/Architekten/Planer/Visionäre einpacken, da es quasi alles 
schon gibt. Bestes Beispiel: Hyperloop - Dampflokomotive...

Meine Lösung mit dem Smartphone ist für mich deshalb die beste, weil 
es am Ende ein Netzwerkradio und Teil des Smart Home ist. Sämtliche 
Musik kommt vom NAS, kein Hantieren und Zerkratzen von CDs möglich.
Radio Sender sind weltweit möglich, was ich mit UKW/DAB nunmal nicht hin 
bekomme. Aktuell sind lokale Radiosender (Sachsen) genauso auf der 
Liste, wie auch Sender aus Berlin bzw. aus Amerika von reinen 
Internetradios.
Oder die Steuerung von mir über das Netzwerk, wenn das Kind z.B. wieder 
mal partout nicht einsieht, dass es eine sogenannte "Zimmerlautstärke" 
gibt. Oder die Option für später problemlos ein Bluetooth Kopfhörer 
nutzen zu können.
Oder die Option, dass dieses Endprodukt "Radio"  Teil meines Smart 
Home ist. Bestes Beispiel ist die Vernetzung der Rauchmelder im Keller, 
mit einem lauten Warnsignal im Kinderzimmer. Ebenso, dass die bunte SMD 
Strip Beleuchtung im Kinderzimmer über das Endprodukt "Radio" mit 
gesteuert wird. Sei es, über das Radiodisplay (Smartphonedisplay), über 
mich von der Stube aus, über das Smart Home zur Signalisierung von 
Events (Feueralarm/jemand klingelt an der Haustür/das Festnetztelefon 
klingelt/etc...)

Die genannten Beispiele sind übrigens keine Fantasie, sondern bereits im 
Einsatz. Wie ich bereits im Eingang geschrieben habe, will ich nur ein 
schöneres Gehäuse für mein Radio/Gerät mit der Option einer Drehregelung 
für die meistgenutzte Eingabe an einem Radio: Der Lautstärkeverstellung.

Mir ist absolut klar, dass es für all das keine Notwendigkeit gibt, daß 
es alles  bereits als Einzellösung im Handel zu erwerben gibt.
Vernetzte Rauchmelder, SMD Strip mit Fernbedienung, Bluetooth Kopfhörer 
mit Sendeeinheit, fertige Radios mit Internetanbindung...
Wie gesagt, es ist mein kleines Projekt, und damit mein kleines 
Problemchen.
Mir muss auch keiner sagen, was mein "wahres" Problem wäre.
##################
*Ich danke auf jeden Fall allen Mitschreibern für die guten Tips und 
Hinweise*, die mich zum Umdenken bei der Planung bewegt haben. 
Dadurch haben sich tatsächlich Lösungen aufgetan, *auf die ich selber 
nicht gekommen bin*.

von batman (Gast)


Lesenswert?

Ich würde ja sagen, gib deinem Kind lieber etwas Taschengeld, damit es 
sich selbst ein Radio kaufen kann. :)

von W.S. (Gast)


Lesenswert?

Torsten S. schrieb:
> Dafür ist ein Drehencoder tatsächlich perfekt geeignet. Ich dachte nur,
> dass es das auch einfach als fertigen Dreh"taster" gibt und mir nur der
> richtige Suchbegriff für Google fehlt.

Also, hättest du gleich zum Anfang das Zauberwort "Drehencoder" 
geschrieben, dann hätte dies den ganzen Thread wesentlich vereinfacht.

Allerdings ist mir noch schleierhaft, wie du so ein Android-Smartphone 
zum Kinder-Radio umbauen willst. Eigentlich müßtest du ja entweder in 
dessen Firmware herumändern, um die ganze Bedienung von Touchscreen auf 
drangebastelte Tasten und Knöpfe zu ändern - oder du müßtest eben die 
Touches mit einer Mechanik nachempfinden, also auf Knopfdrehen außen 
dann drinnen in geeigneter Weise auf dem Display herumwischen.

Sowas kommt mir doch sehr abenteuerlich vor.

W.S.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

W.S. schrieb:
> Also, hättest du gleich zum Anfang das Zauberwort "Drehencoder"
> geschrieben, dann hätte dies den ganzen Thread wesentlich vereinfacht.

Wer lesen kann, ist klar im Vorteil:

Torsten S. schrieb:
> Ich suche einen Drehencoder/Drehtaster der sich 360° dreht und
> eigentlich nur 2 Taster ersetzen soll.

> Allerdings ist mir noch schleierhaft, wie du so ein Android-Smartphone
> zum Kinder-Radio umbauen willst.

Ist doch super als Recycling. Was soll man sonst mit den ganzen alten 
Dingern anfangen? Viele haben ein UKW Radio eingebaut, Netzwerkanbindung 
ist auch da, IP Radio gibts als App.
Bedienung läuft über den Touchscreen, nur eben die Lautstärke liegt ja 
meistens auf Hardware Tasten.

: Bearbeitet durch User
von batman (Gast)


Lesenswert?

Ist aber ein komisches "Radio". Ein nostalgisches Holzgehäuse mit 
unzerstörbarem Lautstärkeregler und ääh Touchscreen.

von Rolf M. (rmagnus)


Lesenswert?

W.S. schrieb:
> Allerdings ist mir noch schleierhaft, wie du so ein Android-Smartphone
> zum Kinder-Radio umbauen willst. Eigentlich müßtest du ja entweder in
> dessen Firmware herumändern, um die ganze Bedienung von Touchscreen auf
> drangebastelte Tasten und Knöpfe zu ändern - oder du müßtest eben die
> Touches mit einer Mechanik nachempfinden, also auf Knopfdrehen außen
> dann drinnen in geeigneter Weise auf dem Display herumwischen.

Die meisten Smartphones haben echte Tasten für die Lautstärke, und die 
Auswahl der "Sender" (also Server) und lokalen Files wird man eh am 
besten über den Touchscrenn machen.

von gnmpf (Gast)


Lesenswert?

ungetestet
1
/* ATtiny25 */
2
3
#include <avr/io.h>
4
#include <stdint.h>
5
6
/* IO - Konfiguration */
7
#define PIN_IN_A (3)
8
#define PIN_IN_B (4)
9
#define PIN_OUT_UP (1)
10
#define PIN_OUT_DN (0)
11
#define OUT_ACTIVE_LOW (0)
12
13
#define STEPS_TO_START (2)
14
#define STEPS_TO_DEC (5)
15
#define DURATION_PRESS ms(100.0)
16
#define DURATION_RELASE ms(100.0)
17
#define DURATION_STARTUP ms(200.0)
18
19
/* Makros */
20
#define ENCODER_IN_A (PINB & _BV(PIN_IN_A))
21
#define ENCODER_IN_B (PINB & _BV(PIN_IN_B))
22
#if (OUT_ACTIVE_LOW)
23
#define OUT_UP() do {PORTB=(PORTB & ~_BV(PIN_OUT_UP))|_BV(PIN_OUT_DN);} while (0)
24
#define OUT_DN() do {PORTB=(PORTB & ~_BV(PIN_OUT_DN))|_BV(PIN_OUT_UP);} while (0)
25
#define OUT_NEITHER() do {PORTB=PORTB | _BV(PIN_OUT_UP) | _BV(PIN_OUT_DN);} while (0)
26
#else
27
#define OUT_UP() do {PORTB=(PORTB & ~_BV(PIN_OUT_DN))|_BV(PIN_OUT_UP);} while (0)
28
#define OUT_DN() do {PORTB=(PORTB & ~_BV(PIN_OUT_UP))|_BV(PIN_OUT_DN);} while (0)
29
#define OUT_NEITHER() do {PORTB=PORTB & ~(_BV(PIN_OUT_UP) | _BV(PIN_OUT_DN));} while (0)
30
#endif
31
32
#define ms(X) ((uint_fast8_t)(((X)/32.768)+0.5))
33
#define IST_A ((uint_fast8_t)1U)
34
#define IST_B ((uint_fast8_t)2U)
35
#define WAR_A ((uint_fast8_t)4U)
36
#define WAR_B ((uint_fast8_t)8U)
37
38
/* Config Bits */
39
FUSES =
40
{
41
  .low = (FUSE_CKSEL1 & FUSE_CKSEL2 & FUSE_CKSEL3 & FUSE_SUT0),
42
  .high = (FUSE_SPIEN & FUSE_DWEN & FUSE_BODLEVEL1),
43
  .extended = (EFUSE_DEFAULT)
44
};
45
46
LOCKBITS = (LB_MODE_1);
47
48
49
int main(void)
50
{
51
    uint_fast8_t warte = 0U;
52
    uint_fast8_t encoder_ist;
53
    uint_fast8_t encoder_war;
54
    int_fast8_t steps_to_go = 0;
55
    enum {AUST_IN_RUHE, AUST_NACH_UNBEKANNT, AUST_BEI_HOCH, AUST_BEI_RUNTER, AUST_NACH_HOCH, AUST_NACH_RUNTER, AUST_GESTARTET} ausgabe_state = AUST_GESTARTET;
56
    /* Port Init */
57
#if (OUT_ACTIVE_LOW)
58
    PORTB = _BV(PIN_IN_A) | _BV(PIN_IN_B) | _BV(PIN_OUT_DN) | _BV(PIN_OUT_UP);
59
#else
60
    PORTB = _BV(PIN_IN_A) | _BV(PIN_IN_B);
61
#endif
62
    DDRB = (uint8_t)(~(_BV(PIN_IN_A) | _BV(PIN_IN_B) | _BV(6) | _BV(7)));
63
    /* Timer Init */
64
    TIMSK = 0x00U;
65
    TCCR1 = 0x0cU;
66
    /* */
67
    if (0U != ENCODER_IN_A)
68
    {
69
        encoder_war = WAR_A;
70
    }
71
    else
72
    {
73
        encoder_war = 0U;
74
    }
75
    if (0U != ENCODER_IN_B)
76
    {
77
        encoder_war |= WAR_B;
78
    }
79
    while (1)
80
    {
81
        /* Timing Wartezeiten */
82
        if (0U != (TIFR & _BV(TOV1)))
83
        {
84
            TIFR = _BV(TOV1);
85
            if (0U != warte)
86
            {
87
                warte--;
88
            }
89
        }
90
        /* Encoderauswertung */
91
        if (0U != ENCODER_IN_A)
92
        {
93
            encoder_ist = IST_A;
94
        }
95
        else
96
        {
97
            encoder_ist = 0U;
98
        }
99
        if (0U != ENCODER_IN_B)
100
        {
101
            encoder_ist |= IST_B;
102
        }
103
        switch (encoder_ist | encoder_war)
104
        {
105
            case WAR_B :    /* fallende Flanke auf B, waehrend A Low bleibt */
106
            case IST_A :    /* steigende Flanke auf A, waehrend B Low bleibt */
107
            case WAR_A|WAR_B|IST_B :    /* fallende Flanke auf A, waehrend B High bleibt */
108
            case IST_B|WAR_A|IST_A :    /* steigende Flanke auf B, waehrend A High bleibt */
109
                if (steps_to_go < INT8_MAX)
110
                {
111
                    steps_to_go++;
112
                }
113
                break;
114
            case IST_B :    /* steigende Flanke auf B, waehrend A Low bleibt */
115
            case WAR_A :    /* fallende Flanke auf A, waehrend B Low bleibt */
116
            case IST_A|WAR_B|IST_B :    /* steigende Flanke auf A, waehrend B High bleibt */
117
            case WAR_B|WAR_A|IST_A :    /* fallende Flanke auf B, waehrend A High bleibt */
118
                if (steps_to_go > INT8_MIN)
119
                {
120
                    steps_to_go--;
121
                }
122
                break;
123
            default :
124
                break;
125
        }
126
        encoder_war = encoder_ist << 2U;
127
        /* Statemachine Ausgabe */
128
        switch (ausgabe_state)
129
        {
130
            case AUST_IN_RUHE :
131
                if (steps_to_go > STEPS_TO_START)
132
                {
133
                    warte = DURATION_PRESS;
134
                    OUT_UP();
135
                    ausgabe_state = AUST_BEI_HOCH;
136
                }
137
                else if (steps_to_go < -STEPS_TO_START)
138
                {
139
                    warte = DURATION_PRESS;
140
                    OUT_DN();
141
                    ausgabe_state = AUST_BEI_RUNTER;
142
                }
143
                else
144
                {
145
                    OUT_NEITHER();
146
                }
147
                break;
148
            case  AUST_BEI_HOCH :
149
                OUT_UP();
150
                if (0U == warte)
151
                {
152
                    warte = DURATION_RELASE;
153
                    ausgabe_state = AUST_NACH_HOCH;
154
                }
155
                break;
156
            case  AUST_BEI_RUNTER :
157
                OUT_DN();
158
                if (0U == warte)
159
                {
160
                    warte = DURATION_RELASE;
161
                    ausgabe_state = AUST_NACH_RUNTER;
162
                }
163
                break;
164
            case AUST_NACH_HOCH :
165
                OUT_NEITHER();
166
                if (0U == warte)
167
                {
168
                    if (steps_to_go > 0)
169
                    {
170
                        if (steps_to_go > STEPS_TO_DEC)
171
                        {
172
                            steps_to_go -= STEPS_TO_DEC;
173
                        }
174
                        else
175
                        {
176
                            steps_to_go = 0;
177
                        }
178
                    }
179
                    ausgabe_state = AUST_IN_RUHE;
180
                }
181
                break;
182
            case AUST_NACH_RUNTER :
183
                OUT_NEITHER();
184
                if (0U == warte)
185
                {
186
                    if (steps_to_go < 0)
187
                    {
188
                        if (steps_to_go < -STEPS_TO_DEC)
189
                        {
190
                            steps_to_go += STEPS_TO_DEC;
191
                        }
192
                        else
193
                        {
194
                            steps_to_go = 0;
195
                        }
196
                    }
197
                    ausgabe_state = AUST_IN_RUHE;
198
                }
199
                break;
200
            case AUST_NACH_UNBEKANNT :
201
                OUT_NEITHER();
202
                if (0U == warte)
203
                {
204
                    ausgabe_state = AUST_IN_RUHE;
205
                }
206
                break;
207
            default:
208
                OUT_NEITHER();
209
                warte = DURATION_STARTUP;
210
                ausgabe_state = AUST_NACH_UNBEKANNT;
211
                break;
212
        }
213
    }
214
}
kann doch nicht so schwer sein...

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.