Je suis en train de faire la programmation des servos pour les gauges moteur de notre Baron58 et je bute sur un Pb !!!
![gratte gratgrat](./images/smilies/icon_scratch.png)
Pour les gauges qui on un zéro et un maxi bien défini (gauges carburant par Ex.), pas de Pb !
Mais pour les autres, je n'arrive pas a faire en sorte qu'elle indiquent la même valeur que FS ...
Fuel Flow par Ex n'est juste qu'a partir de 10Gal/H, en dessous mes servos indique une valeur trop faible et de plus en plus si je diminue les gaz.
Mon script pour Fuel Flow :
- Code: Tout sélectionner
Var 0036, name serv_FF1, link usb_servos, device 0, output 6, posl 1, posc 512, posr 1023
Var 0037, name serv_FF2, link usb_servos, device 0, output 3, posl 1, posc 512, posr 1023
//
// Fuel flow 1 & 2
//
// Offset $ 0918 et $09B0 donne fuel flow en Pound/Heure (donc un poids/H)
// 1 pound = 0,454 kg 1 kg = 1,39 litres de 100LL (D=0,72) & 1 gallon = 3,78 litres :
// 1 Pound * 0,454 * 1,39 = 0,63106 litres de 100LL
// "X" litres / 3,78 = "Y" gallons (par Heure)
// Servo : 820 pas pour 30 graduations donc 820/30 = 27,33 pas pour 1 gallon/Heure
// D'ou le calcul de la constante :
// 0,454 * 1,39 / 3.78 = 0,1669 puis 0,1669 * 27,33 = 4,5627
// J'ai du mettre "5" pour être conforme à FS pour consommation > 10 Gal/H
// Mais les valeurs basses (< 10) sont quand même trop faibles sur les servos.
//
// Fuel flow 1
//
Var 0030, name fs_fuel_flow1, link FSuiPC_IN, Offset $0918, Length 8
{
// l0 = &fs_fuel_flow1 * 0.454 Une autre méthode de calcul
// l1 = l0 * 1.39 Mais l'aiguille avance
// &serv_FF1 = &Val_fuel_flow1 * 27.33 par sacade
&Val_fuel_flow1 = &fs_fuel_flow1 * 5
&serv_FF1 = &Val_fuel_flow1
IF &serv_FF1 < 140 // Position mini du servo
{
&serv_FF1 = 140
}
}
Var 0031, name Val_fuel_flow1
//
// Fuel flow 2
//
Var 0032, name fs_fuel_flow2, link FSuiPC_IN, Offset $09B0, Length 8
{
// l0 = &fs_fuel_flow2 * 0.454
// l1 = l0 * 1.39
// &Val_fuel_flow2 = l1 / 3.78
// &serv_FF2 = &Val_fuel_flow2 * 27.33
&Val_fuel_flow2 = &fs_fuel_flow2 * 5
&serv_FF2 = &Val_fuel_flow2
IF &serv_FF2 < 140
{
&serv_FF2 = 140
}
}
Var 0033, name Val_fuel_flow2
Quelqu'un aurait-il un exemple avec quelques explications sur la méthode de calcul ?
Une autre question :
En utilisant les variables locale L0 à L3, mon aiguille bouge par sacades.
Si je fait mes calculs par des Variables, pas de Pb, j'en déduit donc que L0 à L3 ne prennent que des valeurs entières ?
D'autres part, comment peut-on voir les valeurs décimales dans la console ?
Merci d'avance.