hw_output_pwm_id = hw_output_pwm_add(hw_id, frequency_hz, initial_duty_cycle)
# Argument Type Description
1 hw_id String The is the reference to the input. You can choose to bind to an existing Hardware ID
2 frequency_hz Number The frequency of the PWM output signal, in Hz.
3 initial_duty_cycle Number The initial PWM duty cycle. Range 0.0 - 1.0, 0.0 being off, and 1.0 on.
D'après ce que j'ai lu (Fab corrigera sûrement):
- la fréquence habituelle d'alimentation d'un servo est de 2ms, soit une fréquence de 500hz (500x2=1000ms), qui est la valeur à mettre en argument 2
- La largeur d'une impulsion standard d'un servo est entre 1 et 2 ms, soit un duty cycle compris entre 50% (0.5x2ms=1ms) et 100%(1.0x2ms=2ms) au maximum.
Il faut vérifier dans les specifications de ton servo, indiques nous de quel modèle s'agit-il STP.
Donc la valeur du duty cycle doit varier entre 0.5 (minimum) et 1.0 (maximum), le reste est une histoire de règle de 3.
les valeurs de duty cycle vont progresser de 0.5/80 à chaque fois=0.0625, en partant de 0.5.
Si je ne me suis pas trompé dans mon raisonnement , ça devrait être un truc comme ça:
- Code: Tout sélectionner
airduct_R_engine = hw_output_pwm_add("ARDUINO_MEGA2560_P_D6", 500, 0.75)
function R_engine_air_callback (Val)
print (Val)
hw_output_pwm_duty_cycle(airduct_R_engine, 0.5+(Val*0.5/80))
end
fsx_variable_subscribe("PMDG 737NGX:AIR_DuctPressNeedle:2", "NUMBER", R_engine_air_callback)
A noter que toutes les broches de l'Arduino ne supportent pas le PWM, se rapporter à la table fournie dans le Wiki d'AM ici:
https://siminnovations.com/wiki/index.php?title=Hardware_id_list
Tiens nous au courant (c'est le cas de le dire!)

Jacques