Gast
#1180208
Hallo zusammen, ich habe einen Potentiometer und 5 verschiedene Taster für feste Werte an einem ATmega128 angeschlossen und möchte nun folgende Featurette in mein Dimmerprogramm einbauen: Startet man den Controller, wird ganz normal der Potiwert verwendet (verstellt die PWM...). Drückt man einen der Taster wird der fest einprogrammierte Wert übernommen und der Poti wird erstmal deaktiviert. Nun kommts: Dreht man wieder an dem Poti, soll verhindert werden, daß Sprünge in den Helligkeitswerten auftreten. Ich hatte es mir so vorgestellt, daß man entweder den Poti zuerst auf 0 drehen muss um dann den per Taster eingestellten Wert beim Hochdrehen zu "fangen" (vgl. mit einem mechanischem Mitnehmer, o.Ä.) oder der Poti erst wieder aktiv wird, wenn der Wert sich in der Nähe des Festwertes befindet. Jetzt habe ich folgendes Codefragment, aber es funktioniert nicht zufriedenstellend, weil wenn der Poti nahe einem Tasterwert steht, dieser nicht immer übernommen wird... Problem ist, daß ich eine Gammakorrektur eingebaut habe (Poti ist linear, Helligkeit soll aber logarithmisch sein) und der Poti nicht immer fängt, zumal meine Abfrageroutine nur alle 50ms erfolgt, was einerseits die Entprellung der Taster brachte, andererseits aber zu große Abstände liefert, wenn man zu schnell am Poti dreht.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
Hat jemand vielleicht eine Idee, wie man das eleganter lösen könnte, bzw. das wie man die Rückkehr zur Poti-Bedienung am besten realisieren könnte. Herzlichen Dank schonmal für Eure Kommentare.