Für den Code des Drehgebers, der sehr gut funktioniert: Beitrag "Hilfe zu Drehencoder-Auswertung nach Wiki" Referenz auch von "Beschleunigung": Beitrag "Dynamische "Beschleunigung" bei Encoder-Eingabe" Der Thread ist schon sehr alt. Möchte gerne die händische Stepgröße für die Frequenzwahl automatisieren. Deshalb die Referenzen. µC ist t2313 bzw 4413 in Assembler. Plan: Dreht man schnell, z.B. 6 Pulse soll das Frequenzincrement in den "nächsten Gang" schalten. Warum kann man s.o. lesen. Der DDS geht von 1 Hz bis 31 MHz, deshalb Stepgrößen von 1, 10 , 100, 1000, 5000, 9K, 10K, 100K, 1M, unter anderen wegen des MW-Rasters. Die Stepgröße soll sich aber nach einer praktikablen Zeit wieder reduzieren. Jeweils um eine Stepgröße. So kann es sein, dass es 9 "Gänge" braucht bis man wieder auf 1 Hz landet. Z.B. also 9 * 0,3 sec. Anbei die Schaltung. Funktionen siehe näheres im Radiomuseum.org. https://www.radiomuseum.org/forum/gemeinschaftsprojekt_dds_heimsenderlein.html Den Code will ich nicht veröffentlichen um chin. Nachbauten zu vermeiden. Es wird Timer 0 für den Drehgeber-Interrupt verwendet. Timer 1 wäre an sich noch frei für das z.B. 300 ms Rückkehrtiming. Es kann aber auch der PC-RX Eingang entfallen, wenn das mit Timer 1 nicht gelingen sollte und ein ext. Impuls dort angelegt werden könnte. Für Anregungen wäre ich dankbar. Bin noch nicht sicher, ob für das "hinaufschalten" nicht noch ein Timer nötig sein wird, oder ich warte ein wenig, bis ein Drehimpuls ausgeführt wird. Aber dann wäre das Display wohl träge?
Rudi D. schrieb: > Den Code will ich nicht veröffentlichen um chin. Nachbauten zu > vermeiden. Und was haben wir dann davon? Jörg
es geht ja nur um rauf und runterschalten. Das ist dann für alle verwendbar.
@Rudi D. (rulixa) >Möchte gerne die händische Stepgröße für die Frequenzwahl Das hieß früher (tm) Schrittweite. >automatisieren. >Deshalb die Referenzen. µC ist t2313 bzw 4413 in Assembler. Jaja, Hardcore at it's best. >Der DDS geht von 1 Hz bis 31 MHz, deshalb Stepgrößen von >1, 10 , 100, 1000, 5000, 9K, 10K, 100K, 1M, unter anderen wegen des >MW-Rasters. Klar. >Die Stepgröße soll sich aber nach einer praktikablen Zeit wieder >reduzieren. Auch klar. >Anbei die Schaltung. Na vielen Dank auch! Hast du dir DIESEN Schaltplan mal selber angeschaut! Siehe Bildformate!!! >Funktionen siehe näheres im Radiomuseum.org. >https://www.radiomuseum.org/forum/gemeinschaftspro... >Den Code will ich nicht veröffentlichen um chin. Nachbauten zu >vermeiden. Die Chinesen sagen. Den Meister kopieren ehrt den Meister. Und selbst wenn sie dich kopieren, wo liegt das Problem? Hast du vor, mit dem Verkauf dieser Schaltung reich zu werden? >Es wird Timer 0 für den Drehgeber-Interrupt verwendet. >Timer 1 wäre an sich noch frei für das z.B. 300 ms Rückkehrtiming. Dazu braucht es keinen 2. Timer, das kann man LOCKER mit einem Timer und minimalem Hirnschmalz abdecken. Naja, in ASM ist es etwas aufwändiger ;-) >Es kann aber auch der PC-RX Eingang entfallen, wenn das mit Timer 1 >nicht gelingen sollte und ein ext. Impuls dort angelegt werden könnte. Mein Gott, was für ein Drama. >Für Anregungen wäre ich dankbar. Versuch's erstmal mit lesbaren Schaltplänen. Dann setzt dich mit deiner Chinakopieparanoia auseinander und sieh ein, daß die so oder so unbegründet ist. Und denk mal über den Sinn und Zweck eines derartigen Beitrags OHNE Quelltext nach . . . > Bin noch nicht sicher, ob für das >"hinaufschalten" nicht noch ein Timer nötig sein wird, Nö, das kann man spielend in Software mit einem Timer machen. > oder ich warte >ein wenig, bis ein Drehimpuls ausgeführt wird. Aber dann wäre das >Display wohl träge? Was hat ein Display mit einem beschleunigten Drehgeber zu tun? So gut wie gar nichts, denn die Anzeige auf einem LCD ist sinnvollerweise maximal vom Drehgeber entkoppelt. Sprich, egal wie wild gedreht wird, die Anzeige wird je nach Anwendung nur mit 2-10 Hz aufgefrischt.
Beitrag #5458949 wurde von einem Moderator gelöscht.
Danke für die z.T. ironischen Bemerkungen. Die helfen mir nicht weiter. Der komplette Code bringt auch nichts, da Display, Fixkomma, Wobbelfunktion, Offsetfrequenz, etc. nichts mit dem Problem der automatisierten Schrittweitenumschaltung zu tun hat. Habe gerade gelesen, dass Hannes Lux, von dem ich die Drehgeber SW verwendet habe nicht mehr unter uns weilt. Bei mir reagiert das Display sofort auf jeden Drehimpuls. Dein letzter Satz könnte mir weiterhelfen. Vielleicht hat jemand das Problem schon gelöst.
Beitrag #5458961 wurde von einem Moderator gelöscht.
@Rudi D. (rulixa) >Danke für die z.T. ironischen Bemerkungen. >Die helfen mir nicht weiter. Tja, Pech gehabt, wenn du nicht mal daraus ein paar Denkanstöße ableiten kannst. >Der komplette Code bringt auch nichts, da Display, Fixkomma, >Wobbelfunktion, Offsetfrequenz, etc. nichts mit dem Problem der >automatisierten Schrittweitenumschaltung zu tun hat. Dann schreib ein stark vereinfachtes Programm, das nur die Drehgeberbeschleunigung und Anzeige enthält. >Habe gerade gelesen, Wo denn? > dass Hannes Lux, von dem ich die Drehgeber SW >verwendet habe nicht mehr unter uns weilt. >Bei mir reagiert das Display sofort auf jeden Drehimpuls. Was schon mal nicht sinnvoll ist. > Dein letzter Satz könnte mir weiterhelfen. Na immerhin. >Vielleicht hat jemand das Problem schon gelöst. Sicher. Aber das ist doch DEINE Diskussion, bei der DU DEINE Lösung der Welt vorstellen willst.
Rudi D. schrieb im Beitrag #5458961: > Rudi Rüssler schrieb im Beitrag #5458949: >> ...wenn man Vollblut-Elektroniker an den PC lässt UND sie auch noch >> meinen uC Programmieren zu müssen. >> $FACEPALM > > Und hilft mir das weiter? Bleib sachlich! Na dann spendier ne ordentliche Runde HAM Spirit ! Nix da mit Closed Source welche mit FoRUMshilfe enststehen soll...
Rudi D. schrieb: > µC ist t2313 bzw 4413 in Assembler. Ich verstehe nicht, wie man sich heutzutage noch Tage/Wochenlang mit so einem µC mit wenig Speicher und Peripherie herumquälen kann. Müsste ich das machen, würde ich den kleinsten STM32 nehmen und die Firmware z.B. mittels FreeRTOS aufbauen. Da kannst Du Dir dann praktisch soviele unabhängige Threads und SW-Timer machen wie Du willst, bist schnell fertig und das ganze ist auch noch problemlos erweiterbar. Von den Kosten her ist z.B. ein ATtiny84 etwa gleich teuer wie ein kleiner STM32F051.
Johnny B. schrieb: > Von den Kosten her ist z.B. ein ATtiny84 etwa gleich teuer wie ein > kleiner STM32F051. Und den STM betreibst Du von 1,8 - 5,5 V? Auch so, das brauchst Du nicht. Rudi D. schrieb: > 1, 10 , 100, 1000, 5000, 9K, 10K, 100K, 1M, unter anderen wegen des > MW-Rasters. Diese Dynamik willst Du nicht haben; damit läßt sich kein Gerät bedienen! Steht hier in der Codesammlung und ist in China weit verbreitet: Beitrag "Schrittmotor als Drehgeber mit Dynamik, AVR"
>>Habe gerade gelesen, > > Wo denn? Hier: http://www.hanneslux.de/ gleich am Beginn der Seite. Sehr schade und traurig. > >> dass Hannes Lux, von dem ich die Drehgeber SW >>verwendet habe nicht mehr unter uns weilt. > > Sicher. Aber das ist doch DEINE Diskussion, bei der DU DEINE Lösung der > Welt vorstellen willst. Ich will nicht MEINE Lösung vorstellen, wenn jemand schon eine Lösung gefunden hat. Der Welt will ich schon gar nichts vorstellen, sonst hätte ich ja den Code des DDS veröffentlicht. Ich will nur die Bedienung vereinfachen. Im Bild ein sehr schöner Nachbau des Gerätes, das oft nachgebaut wurde. Die digitale Wobbelfunktion ist für Radiofreunde, neben der bis m=100% Modulation, gut zu gebrauchen. Der NF-Ausgang ist mit Durchheulfunktion ggfs. anwählbar ausgestattet. Dann noch ein besseres Bild der Schaltung Bis jetzt scheint niemand im Forum so was gelöst zu haben, jedenfalls nicht jene, die bis jetzt geantwortet haben. Na gut, echte Unterstützung des schon gelösten Problems kriege ich eben nicht. Schade. Also noch mal dasselbe, obwohl unnötig, selbst lösen.
:
Bearbeitet durch User
Rudi D. schrieb: > Bis jetzt scheint niemand im Forum so was gelöst zu haben ------- Rudi D. schrieb: > Na gut, echte Unterstützung des schon gelösten Problems kriege ich eben --------------------------- > nicht Wie jetzt? Entscheidungen fallen manchmal schwer... ;-)
Rudi D. schrieb: > Vielleicht hat jemand das Problem schon gelöst. Du willst also Code kopieren, hast aber ein Problem damit daß jemand anderes (die Chinesen) deinen Code kopieren könnten? Das ist schon irgendwie dreist.
Ich glaube so eine automatische Umschaltung der Schrittweite führt eher zu Frust beim bedienen. Wenn ich an einem Drehgeber drehe gehe ich eigentlich von einer konstanten Schrittweite aus, wenn die nun plötzlich umschalten würde fänd ich das verwirrend... vor allem wenn ich dann auch noch drauf warten müsste das sie wieder zurück schaltet um die letzten hz genau einzustellen.
Falsch gedacht. Wenn es eine Lösung gibt ist sie ja öffentlich hier im Forum.
Tek schrieb: > wenn die nun plötzlich > umschalten würde fänd ich das verwirrend... Und bei deiner Maus verwirrt dich das nicht? Georg
Also, ich verwende so eine Beschleunigung eigentlich überall, wo mehr als 10 Werte einzustellen sind. Und nach dem 2. oder 3. Drehen hat bisher jeder mitbekommen, dass der Geber bei schnellerem (nicht längerem!) Drehen den angezeigten Wert schneller ändert. So kann ich z.B. die über 500 DMX-Adressen oder einen der 127 Midi-Werte recht locker und intuitiv ohne "Kurbeln" zielgenau einstellen. Bei mir geht das so: http://www.lothar-miller.de/s9y/archives/71-Drehgeberauswertung-mit-Beschleunigung.html
Erwin D. schrieb: >> Na gut, echte Unterstützung des schon gelösten Problems kriege ich eben >> nicht > > Wie jetzt? Entscheidungen fallen manchmal schwer... ;-) Hi Erwin erfindest du das Rad gerne NEU? Was sinnvolles zu antworten wäre zielführender.
@Lothar Vielen Dank, werde es genau studieren. Endlich eine Gute Antwort. Werde berichten!
Hannes ist tot! Scheisse... Mein tiefempfundenes Beileid. Auch wenn es mir jetzt erst zu Ohren gekommen ist, so ist es aufrichtig und ernst gemeint. Ruhe in Frieden
Rudi D. schrieb: > Erwin D. schrieb: > >>> Na gut, echte Unterstützung des schon gelösten Problems kriege ich eben >>> nicht >> >> Wie jetzt? Entscheidungen fallen manchmal schwer... ;-) > > Hi Erwin erfindest du das Rad gerne NEU? > Was sinnvolles zu antworten wäre zielführender. Dich darauf hinzuweisen ist schon sinnvoll, daß du einerseits schreibst, daß bisher niemand das Problem gelöst hätte (was ja durchaus nicht so ist, Lösungen wurden schon viele im Forum vorgestellt) und andererseits sprichst du vom "schon gelösten Problem". Die Entscheidung zwischen beiden Aussagen scheint dir schwer zu fallen.
Rudi D. schrieb: > @Lothar > > Vielen Dank, werde es genau studieren. > Endlich eine Gute Antwort. > > Werde berichten! Bei mir läuft der Interrupt auch mit ca 1 ms. Verwende eine LOT zur Auswertung der Richtung bzw nicht gedreht. Auch die Abfrage, ob die neue Info schon abgeholt wurde, die ja bei Dir als inc/dec Info verwendet wird. Eine Tabelle mit den Schrittweiten gibt es natürlich auch bei mir. Werde die Lösung, basierend auf Deiner Lösung berichten. An Alle: Weitere Info a la Lothar willkommen. Alle anderen bitte um Zurückhaltung um den Thread nicht unnötig zu verlängern.
Ich würde keine Gänge festlegen, zwischen denen umgeschaltet wird, sondern es analog nach Geschwindigkeit inkrementieren/dekrementieren. Also die Zeit seit dem vorherigen Impuls messen und eine Konstante durch diese Zeit dividieren. Wert += richtung * (ZEITKONSTANTE / (zeitdifferenz + 1)+1); So kann man mit der Drehgeschwindigkeit beliebig zwischen Fein- und Grobeinstellung variieren.
Jobst Q. schrieb: > Ich würde keine Gänge festlegen, zwischen denen umgeschaltet wird, > sondern es analog nach Geschwindigkeit inkrementieren/dekrementieren. > > Also die Zeit seit dem vorherigen Impuls messen und eine Konstante durch > diese Zeit dividieren. > > Wert += richtung * (ZEITKONSTANTE / (zeitdifferenz + 1)+1); > > So kann man mit der Drehgeschwindigkeit beliebig zwischen Fein- und > Grobeinstellung variieren. Danke. Ist ähnlich Lothar. Das einzige, was noch zu bedenken ist, ist der Variationsbereich, da ich von 1 Hz bis 1 MHz Schrittweite einstellen will. Vielleicht mach ich's nicht additiv sondern multiplikativ, aber krumme Schrittweiten will ich auch nicht. Vielleicht doch über eine LOT, wo nur gewünschtw Steigerungsschritte vorkommen. Das Integral über alle Ändeungen ist dann die aktuelle Schrittweite, die eh im Display bisher auch steht. Es wird schön langsam. Man wird sich, wie Lothar schreibt gewöhnen müssen, da schnell oder langsam bzw normal schnell ein Zeitfenster vorgibt.
@ Rudi D. (rulixa)
>Vielleicht doch über eine LOT,
Was ist bei dir ein LOT? Oder meinst du eher LUT?
Look Up Table?
Falk B. schrieb: > @ Rudi D. (rulixa) > >>Vielleicht doch über eine LOT, > > Was ist bei dir ein LOT? Oder meinst du eher LUT? > > Look Up Table? ja, ein Tippfehler. Ist mir auch schon aufgefallen.
Anbei die neue ISR für Encoder mit Beschleunigung in asm für AVR tiny. Basis ist die ISR in C von Lothar. Sie arbeitet mit einer LUT, da man Drehgeber mit 1 oder 2 Impulsen je Rastung verarbeiten kann. Gray code der das leistet kenne ich nicht. Damit bedanke ich mich bei Lothar, der mir geholfen hat und Jenen, die Hilfe angeboten haben. Sinnvolle Kommentare sind willkommen. Akismet, wie z.B. in Wordpress, hat dieses Forum leider nicht. Die Tabs sind in der Formatierung im Forum leider nicht in Linie.
:
Bearbeitet durch User
@Rudi D. (rulixa) >encoder_accel.asm (3,93 KB, 9 Downloads) | Codeansicht Glaubst du ernsthaft, daß dieses Fragment irgendwem nützt? Wenn man sowas weitergeben will, sollte man wenigstens ein MINIMALES, VOLLLSTÄNDIGES Beispiel mitliefern. Eine ISR allein ist das mal sicher NICHT. >Sie arbeitet mit einer LUT, da man Drehgeber mit 1 oder 2 Impulsen je >Rastung verarbeiten kann. >Gray code der das leistet kenne ich nicht. Jaja, schön geschwätzt. Weißt du überhaupt, wovon du redest? >Die Tabs sind in der Formatierung im Forum leider nicht in Linie. Weil man auch TABs aus seinem Quelltext besser entfernt, zumindest dann, wenn man diesen hier im Forum anhängt. Das können die meisten Editoren auf Knopfdruck.
Hi Falk Danke für Deine sehr nützlichen Kommentare. Du solltest Doch lesen wofür ich das Forum um Hilfe bat. Lothar hat mir geholfen. Du nicht. Lothars Fragment habe ich als AVR asm Fragment zurückgegeben. Ich konnte mit einem Fragment etwas anfangen. Viele andere hoffe ich auch.
Das mit der Gangschaltung ist ein interessantes Thema. Ich habe jetzt nicht alles genau gelesen, aber nur soviel: Da gibt es schon eine Reihe von unterschiedlichen Lösungen in der Industrie, da musst Du keine Angst haben, etwas auszuplaudern. Es kommt halt darauf an, wie viele Schaltung zu da hinein investieren möchtest. Ich habe das so gelöst, dass die Beschleunigung und die Geschwindigkeit, die aus der Drehbewegung ermittelt werden, in diskrete Tiefpassfilter laufen und das aktuelle Ergebnis mit den Schritten multipliziert wird. Damit ist das Verhalten kontinuierlich, es gibt keine Stufen und es ist vom Bediener leicht erlernbar. (und es wird ein Patent umgangen :-) ) Je länger, öfter und schneller jemand "hektisch" am Encoder werkelt, desto mehr "mehr" wird hinzuaddiert. Sobald er langsamer wird, fällt der Multiplikator ab und es wird weniger "mehr" addiert. Es ist im Prinzip ein Epander (wie man in der Audiotechnik sagt) "zweiter Ordnung", wenn man das so nennen kann. Es ist allerdings einer mit unendlicher Verstärkung. Es gibt aber ein reales Limit infolge der Drehgeschwindigkeit. Für deinen Bereich ist das aber wahrscheinlich noch zu fein. Du könntest daher noch eine Dimension hinzunehmen, also die Beschleunigung der Beschleunigung mit draufaddieren. Entscheidend ist, dass der Status der Geschwindigkeit eine Weile "gespeichert" bleibt, damit die unwillkürlichen Pausen zwischen zwei schnellen Bewegungen, die man ungewollte machen muss, überbrückt werden. Diese müssen ab einer gewissen Geschwindigkeit überlesen werden. Diese einfache Lösung ist im Bild dargestellt. Du könntest bei jeder Vorwärtsdrehperiode, die mindestens 90% der Impulsdichte des vorherigen Pakets hat, den Multiplikator des Inkrements erhöhen und bei weniger, als 50% verringern.
Zu dem Bild: Man kann den Werten noch einen TP hinzufügen, der eine Trägheit simuliert, dann kann die Regler träge machen und mit dem Finger vorwärts und rückwärts anschnippen, damit sie von selber rollen. Das ist insbesondere bei touch screens hilfreich. Hier ist das realisiert: Die Drehgeber aus der MIDI-Konsole sind virtuell nachgebildet und haben eine "Masse". Gemäß der Fingerbewegung auf dem Schirm werden sie angeschubst und rollen vorwärts mit beschleunigter Interpretation. Zusätzlich können sie aus Informationen der realen Konsole gesteuert werden, deren Drehgeber wie oben angegeben ausgewertet werden. Hilfreich ist da ein diskretes Filter, das ab einer gewissen Geschwindigkeit überproportional ansteigt und ein Halteglied hat. Für die o.b. Anwendung würde ich es so machen, dass das Halteglied im Wert nicht wesentlich abnimmt, also ein einmalig schnell angeworfener Regler sehr lange weiterblättert, bis der Encoder wieder angefasst wird. Man lernt das sehr schnell, wie man den zu bedienen hat. Ich brauche nur noch 3-4 Bewegungen um rasch alle Werte zwischen 0 und 8191 einzustellen.
:
Bearbeitet durch User
@Jürgen Danke für die vielen Inputs. Die Plattform von Dir dürfte erheblich über einem tiny 4313 liegen. Was will ich, ist an sich im Theadstart schon gesagt: Es gibt einen DDS von 1 Hz bis 31 MHz. Daneben hat er viele andere Funktionen, siehe Thread mit Link aufs radiomuseum.org. So, wie mein Berater Lothar in einer Liste auf und ab geht, auch in größeren dynamisierten Schritten, will ich die Frequenz auch in größeren Schritten durcheilen können, was mit Hilfe des Forums nun vorliegt. Es hat eine Erweiterung zu Lothar gegeben, da die Schrittweite aus einer Tabelle entnommen wird, da die Schritte für den AD950 krumme Werte sind. Es wird in 10er Schritten inc/decrementiert. Was mir gefällt ist die "Masse", was zumindest sehr professionell aussieht. Die Haltezeit wird sich noch herausstellen, auch was ist "schnell drehen". Jetzt sind, fürs erste, die Werte von Lothar übernommen. Das was ich vom Forum als Input bekam, habe ich jedenfalls angepasst wieder zurückgegeben. Vielen Dank.
Hallo Rudi, schön das Du die Funktion dem "Heimsender" noch hinzugefügt hast, wir haben ja schon kurz über Mail miteinander gesprochen. Ich denke irgendwann sehen (lesen) wir uns im Radiomuseum wieder! Ich habe meine Heimsenderchen wie schon gesagt auf PICs in C und mit dem 9833/34/35 realisiert, ein AD9850 liegt hier auch noch ungenutzt rum, aber der Bausatz aus dem Radiomuseum hat ja nicht wenige Nachbauer! Deshalb DANKE! Aktuell hänge ich (die Freizeit fehlt) noch an meinem Normenwandler, der auf STM32 realisiert ist und der dann über UKW, (W)LAN ein Radioprogramm empfängt und per SDR (also alles in Software auf dem Controller realisiert) in ein AM, SSB und FM Signal wandelt und von 0 bis 108 MHz aussenden kann. Das ist dann sicher ein interessantes Projekt für das Radiomuseum, dort sind sicher mehr "Radiologen" unterwegs als hier. Vielleicht findet sich dort noch ein Platinendesigner der das ganze als Bausatz weiterentwickelt. Danke auch an Jürgen für die Ideen im Umgang mit Encodern. Meiner Meinung nach reicht eine Idee völlig aus um weiterzukommen, da muss es nicht einmal einen Code-Teil geben wie von Lothar oder Rudi eingefügt, man kann sich das alles leicht selbst codieren. 73 und 55
Johnny B. schrieb: > Ich verstehe nicht, wie man sich heutzutage noch Tage/Wochenlang mit so > einem µC mit wenig Speicher und Peripherie herumquälen kann. > Müsste ich das machen, würde ich den kleinsten STM32 nehmen und die > Firmware z.B. mittels FreeRTOS aufbauen. Eine Echtzeit-Software als BS für eine Anwendung im Bereich Drehknopfinterpretation?
Tech N. schrieb: > Eine Echtzeit-Software als BS für eine Anwendung im Bereich > Drehknopfinterpretation? Natürlich - aber unbedingt mit Internet-Anschluss, und die letzte Stellung wird in der Cloud gespeichert. Georg
Hier findet Ihr Gedanken zu einem professionellen Drehgeber (Rohde&Schwarz-Patent) mit echter Schwungmasse und magnetischer Rastung: Beitrag "Schwungrad-Drehknopf" Beitrag "[S] haptisch hochwertiger Drehgeber" Beitrag "Drehimpulsgeber" Ich würde es so machen: Knopf kurz drücken: Umschalten in Schrittweite-Selekt-Mode additiv nun durch Drehen die gewünschte Weite einstellen, dann nochmal drücken Knopf lang drücken: Umschalten in Schrittweite-Selekt-Mode multiplikativ nun durch Drehen den gewünschten Faktor einstellen, dann nochmal drücken Da man die Drehknöpfe mit Schwungmasse sowohl sehr schnell und weit als auch sehr genau bedienen kann, braucht man evtl. weniger Schrittweiten.
eProfi schrieb: > Ich würde es so machen: > Knopf kurz drücken: Umschalten in Schrittweite-Selekt-Mode additiv > nun durch Drehen die gewünschte Weite einstellen, dann nochmal drücken > > Knopf lang drücken: Umschalten in Schrittweite-Selekt-Mode multiplikativ > nun durch Drehen den gewünschten Faktor einstellen, dann nochmal > drücken > Viel umständlicher geht es kaum noch. > Da man die Drehknöpfe mit Schwungmasse sowohl sehr schnell und weit als > auch sehr genau bedienen kann, braucht man evtl. weniger Schrittweiten. Man braucht überhaupt keine festen Schrittweiten. Man kann voll analog die Schrittweite aus der Drehgeschwindigkeit bzw dem Impulsabstand berechnen. Schnelles Drehen = Große Schritte, langsames Drehen = Feineinstellung, sowie alles dazwischen. Beitrag "Re: Drehgeber mit "Gangschaltung" = Beschleunigung" Ein Schrittmotor ist ideal dafür, die Stärke der magnetischen Rasterung kann über die Belastungswiderstände eingestellt werden.
Jobst Q. schrieb: > Feineinstellung, sowie alles dazwischen. Kommt halt auf den Einstellumfang an. 6 Dezimalstellen möchte ich so nicht einstellen. Da braucht es intelligente Beschleunigung. Hatte ich in dem gelinkten thread ja auch skizziert.
> Man braucht überhaupt keine festen Schrittweiten.
Respekt, du kannst hellsehen, was andere brauchen.
Additiv z.B. 9 kHz Kanalschrittweite wurde bereits mehrfach erwähnt.
Multiplikativ z.B. für Tonerzeugung Faktor 2^(1/12)=1,059463
(Halbtonschritt). Das läuft auf eine logarithmische Skala hinaus.
Wenn ich etwas ausführlich erkläre, heißt das noch lange nicht, dass es
kompliziert ist. Es werden zwei Szenarien (additiv und multiplikativ)
beschrieben, von denen man zu gegebener Zeit nur nur eines braucht.
Ein Schrittmotor ist schon brauchbar, aber für das
Röhrenradio-Schwungmassen-Gefühl braucht man dann eine relativ große
Schwungscheibe.
Wer noch nicht an einem damaligen Radio oder einem R&S-Gerät gedreht
hat, kann sich das Gefühl schwer vorstellen. Mit einem beherzten Dreh
kommt man von einem Skalenende zum anderen. Trotz der Schwungmasse
(sieht aus wie eine Beilagscheibe mit knapp dem Knopfdurchmesser) baut
der R&S sehr klein.
Eine Dynamik mit einzubauen ist auch bei dieser Lösung von Vorteil.
Klar, wenn ich schnell drehe, will ich schnell weiterkommen.
eProfi schrieb: > Multiplikativ z.B. für Tonerzeugung Faktor 2^(1/12)=1,059463 > (Halbtonschritt). Das läuft auf eine logarithmische Skala hinaus. Da muss man aber Parameter und Frequenz trennen. Tonhöhen werden durchaus mit Notennummern vorgegeben. Auch in Sub-Skalierung. Für ein Klavier in 1-Cent-Stimmung wären z.B. gut 8000 "lineare" Schritte nötig. Das wird intern umgerechnet. Das hat auch mit den Schrittweiten bei der Interpretation der Drehung nicht direkt etwas zu tun. Ich kann auch mit jedem Schritt des Gebers um einen gewissen Faktor multiplizieren, um ein solches Verhalten zu erreichen. Was er ja haben will sind unterschiedliche Fortschritte bei gleicher Drehung, also im linearen Betrieb z.B. einmal eine Dezimalstelle und in einem anderen Modus 10. Das erfordert ein Umschalten in einen anderen "Gang". Ich würde - wie ich das ausgeführt habe - das kontinuierlich ohne Sprünge machen - ähnlich einem Automatikgetriebe das mit Fliehkraftregler arbeitet.
Falk B. schrieb: > Dazu braucht es keinen 2. Timer, das kann man LOCKER mit einem Timer und > minimalem Hirnschmalz abdecken. So ist es. Man muss einfach nur etwas mehr können, als geklauten Code zu kopieren, nämlich: programmieren. > Naja, in ASM ist es etwas aufwändiger Ach watt, das ist doch trivialste Grundschleimscheisse. Das ist mit der sicheren Beherrschung eines wirklich sehr kleinen Teils der AVR8-Assemblersprache machbar und erfordert keinerlei fortgeschrittene Asm-Programmiertricks. Ich sehe da keinen Mehraufwand verglichen etwa mit einer Umsetzung in C. Ist eher einfacher. Ja, mag sein, dass der nötige Quelltext eine einstellige Zahl mehr Zeilen hat. Dafür sind die dann aber auch kürzer. Und man muss nicht drüber nachdenken, was wohl der Compiler daraus machen wird. Die machen einfach genau das, was sie machen sollen. Ganz direkt. > Was hat ein Display mit einem beschleunigten Drehgeber zu tun? So gut > wie gar nichts, denn die Anzeige auf einem LCD ist sinnvollerweise > maximal vom Drehgeber entkoppelt. Sprich, egal wie wild gedreht wird, > die Anzeige wird je nach Anwendung nur mit 2-10 Hz aufgefrischt. So isses. Schneller als ein Mensch es ablesen kann, muss kein Display mit neuen Inhalten befüllt werden. Allenfalls kann es nötig sein, die alten in schnellerer Folge zu wiederholen. Das hat dann aber endgültig nix mehr mit dem Drehgeber zu tun.
Jürgen S. schrieb: > Jobst Q. schrieb: >> Feineinstellung, sowie alles dazwischen. > > Kommt halt auf den Einstellumfang an. 6 Dezimalstellen möchte ich so > nicht einstellen. Da braucht es intelligente Beschleunigung. Hatte ich > in dem gelinkten thread ja auch skizziert. Wenn man einen sehr großen Bereich braucht,kann man die Schrittweite ja auch exponentiell aus der Geschwindigkeit berechnen. Schrittweite = 1 << Geschwindigkeit;
Warum nimmt man nicht einfach einen zweiten Knopf und stellt den Gang ein? Oder nimmt einen für die groben Änderungen und einen anderen für die kleinen?
Weil man dann die ganze schöne Beschleunigungsmimik nicht bräuchte und es langweilig wäre :-) Jobst Q. schrieb: > Jürgen S. schrieb: >> Jobst Q. schrieb: >>> Feineinstellung, sowie alles dazwischen. >> >> Kommt halt auf den Einstellumfang an. 6 Dezimalstellen möchte ich so >> nicht einstellen. Da braucht es intelligente Beschleunigung. Hatte ich >> in dem gelinkten thread ja auch skizziert. > > Wenn man einen sehr großen Bereich braucht,kann man die Schrittweite ja > auch exponentiell aus der Geschwindigkeit berechnen. > > Schrittweite = 1 << Geschwindigkeit; So ähnlich mache ich es mit der Methode, wie weiter oben beschrieben. Nur glätte ich die Geschwindigkeit, damit ein gleichförmigeres Verhalten erzeugt wird und die Zwangspause, die man beim "Rückdrehen der Finger", die man einlegen muss, ohne sie zu wollen, keine Geschwindigkeit und damit keinen "Gang" verliert. Man muss da das Differenzial mit reinnehmen und das langsamer werden des Greifens der Person interpretieren, die ganz offensichtlich sieht, dass das Ergebnis sich dem Ziel annähert.
Beitrag #5514553 wurde vom Autor gelöscht.
eProfi schrieb: > Hier findet Ihr Gedanken zu einem professionellen Drehgeber > (Rohde&Schwarz-Patent) mit echter Schwungmasse und magnetischer Rastung: was man alles patentieren kann, wann man zuviel Geld in der Firma hat ...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.