Tu as bien mis à jour le plugin AM et tout ce qui va avec? Je veux dire le firmware de l’arduino?
https://siminnovations.com/wiki/index.php?title=Arduino#Installer
Jacques
function R_flaps_callback (Val)
if Val == 0.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, 0.01)
end
if Val > 0.0 and Val <= 1.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, (((0.016-0.01)/1)*Val)+0.01)
-- Flaps 1 = dutycycle 0.016
end
if Val > 1.0 and Val <= 2.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, (((0.0192-0.016)/2)*Val)+0.016)
-- Flaps 2 = dutycycle 0.0192
end
if Val > 2.0 and Val <= 5.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, (((0.0232-0.0192)/5)*Val)+0.0192)
-- Flaps 5 = dutycycle 0.0232
end
if Val > 5.0 and Val <= 10.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, (((0.027-0.0232)/10)*Val)+0.0232)
-- Flaps 10 = dutycycle 0.027
end
if Val > 10.0 and Val <= 15.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, (((0.0313-0.027)/15)*Val)+0.027)
-- Flaps 15 = dutycycle 0.0313
end
if Val > 15.0 and Val <= 25.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, (((0.0345-0.0313)/25)*Val)+0.0313)
-- Flaps 25 = dutycycle 0.0345
end
if Val > 25.0 and Val <= 30.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, (((0.038-0.0345)/30)*Val)+0.0345)
-- Flaps 30 = dutycycle 0.038
end
if Val > 30.0 and Val <= 40.0 then
hw_output_pwm_duty_cycle(R_flaps_gauge, (((0.0415-0.038)/40)*Val)+0.038)
-- Flaps 40 = dutycycle 0.0415
end
end
R_flaps_gauge = hw_output_pwm_add("Flaps_R", 50, 0.01) -- Arduino mega I D5
fsx_variable_subscribe("PMDG 737NGX:MAIN_TEFlapsNeedle:2", "NUMBER", R_flaps_callback)
#define SERVO_PWM 9
#define SERVO_PERIOD (20000)
int pwm = 1500;
void setup() {
Serial.begin(115200);
pinMode(SERVO_PWM, OUTPUT);
}
void loop() {
if (Serial.available()) {
pwm = Serial.parseInt();
}
digitalWrite(SERVO_PWM, HIGH);
delayMicroseconds(pwm);
digitalWrite(SERVO_PWM, LOW);
delayMicroseconds(SERVO_PERIOD - pwm);
}
hadrien a écrit:Bonjour à tous,
J'ai une nouvelle question, de programmation sur AM cette fois. Je vous explique mon soucis. Lorsque j'ai commandé mon kit EFIS, le fournisseur m'a fourni des boutons poussoirs avec, sauf que ce sont des momentané et non des maintenus (ce sont les petit carré gris, bouton noir et 4 pattes mais bipôles). Je voudrais donc savoir s'il y a une entourloupe logicielle pour en faire des maintenus, car la rangée de poussoirs en bas de l'EFIS fonctionne comme cela. Par exemple, une pression sur "TERR" active la vue du relief, et une nouvelle pression la déactive. Or, dans mon montage, pour garder la fonction "TERR" active, je suis obligé de maintenir le bouton appuyé. Y aurait-il une solution logicielle qui consisterait à dir à AM que quand le bouton renvoi 1, il regarde la position précédente et lance l'inverse. Ainsi, s'il reçoit 1 et que le "TERR" est inactif, alors il l'active. Et si jamais il reçoit 1 du bouton et que "TERR" est actif,alors il le désactive.
J'ai déjà un peu réfléchi à ça mais je parviens pas à demander à AM de lire le statut d'un event. J'arrive à demander à AM d'écrire une nouvelle valeur pour un event mais pas en lire une.
Merci pour votre aide,
Hadrien
terr_switch_active=false
terr_switch_active=not terr_switch_active
if terr_switch_active==true then
...
else
..
end
Retourner vers LUA, Linda, Macros & gauges Air Manager
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 9 invités