Hallo
Also ich hab das schon mal gemacht, allerdings in C, mit einem RP6 und mit einem normalen Poti als Joystickersatz:
Im Prinzip ist es einfach: Das Verhältniss PWM zur PWM-Auflösung muss wie Poti zur Poti-Auflösung sein. Eine mittelschülerisch und integerfreundlich umgestellte Formel zur Errechnung von PWM bei vorhandenem Potiwert könnte ich mir so vorstellen:
Poti * PWM-Auflösung
---------------------- = PWM
Poti-Auflösung
Bei einem 10-bit-ADC und 8-bit-PWM wären das bei Potiwert 511 (=Mittelstellung) also:
511 * 256
---------- = 127
1024
Das wäre der Ansatz für eine Ansteuerung von 0% bis 100% PWM ohne Berücksichtigung der Richtung. Um die Richtung ebenfalls einfliessen zu lassen, muss man vor der Umrechnung überprüfen, ob der Potiwert unter- oder oberhalb des Mittenwertes liegt:
Code:
Poti-Mitte = Poti-Auflösung / 2
If Poti > Poti-Mitte
(Poti - Poti-Mitte) * PWM-Auflösung
---------------------------------- = PWM
(Poti-Auflösung / 2)
else
(Poti-Mitte - Poti) * PWM-Auflösung
---------------------------------- = PWM
(Poti-Auflösung / 2)
End If
(bascomähnlicher Pseudocode)
Dass die ADC-Auflösung dabei quasi halbiert wird, fliest so auch in die Berechnung ein.
Noch kurz ein Hinweis zu 15-poligen Joysticks für den Gameport:
https://www.roboternetz.de/community...l=1#post516619
Ich hoffe, das hilft dir. *grins*
Gruß
mic
Lesezeichen