SIOC permet bien entendu d’afficher sur des afficheurs 7 segments la valeur d’une variable. Ce peut être une fréquence radio, un cap, le niveau de carburant, la pression barométrique, mais aussi la valeur quelconque d’une variable interne.
Une variable d’affichage sera tout naturellement liée à une carte « Display » de IOCards, et donc on choisira Link To: IOCARD_DISPLAY.
On indiquera le nombre de digits nécessaire pour cet affichage, si nous mettons 3 par exemple, cela signifie que nous allons utiliser un afficheur à 3 chiffres, comme celui des caps. Il se peut que ce nombre affiché doive être parfois précédé du signe -, dans ce cas, il faudra évidemment prévoir un afficheur de plus (cas de la vitesse verticale par exemple).
Note 1: pour qu’une variable puisse prendre en compte des valeurs négatives, il faut que dans ses paramètres soit indiqué « Type 1 ».
Note 2: la carte Display est dite « multiplexée », car elle fournit une alimentation intermittente à ses afficheurs, à tour de rôle.
Les variables d’affichage peuvent aussi prendre des valeurs « spéciales » parfois très utiles:
Valeur -999999 = éteint tous les digits
Valeur -999998 = les digits affichent tous le signe « – »
Valeur -999997 = les digits affichent « 6 »
Valeur -999996 = les digits affichent « t »
Valeur -999995 = les digits affichent « d »
Valeur -999994 = les digits affichent « _ »
N’oubliez pas le signe – devant ces valeurs.
Les 1 fixes :
On peut économiser des sorties de la carte Display en remarquant que les 1 des fréquences radio (ex: 118.60) sont fixes, c’est bien connu. On peut les brancher directement sur l’alimentation avec une résistance . Inconvénient, ils sont trop lumineux et quand on éteint l’afficheur, ils restent allumés. Solution possible: relier l’anode des segments, qui sont des LEDs, à une ou plusieurs sorties J2 de la carte Master, en faisant attention à ne pas dépasser 20 mA par sortie . Les cathodes, multiplexées, étant communes sur les afficheurs, et reliées à la carte Display, les segments ainsi alimentés seront eux aussi multiplexés, et fonctionneront comme leurs voisins, avec la même luminosité, et sans qu’il soit nécessaire d’intercaler une résistance.
Autre possibilité d’économie, dans le cas des affichages des altitudes, on peut très bien rendre fixes de la même manière les deux derniers zéros de l’altitude, il suffira alors de trois sorties sur la carte Display au lieu de 5.
Dernière solution : économiser des sorties sur la carte Display n’est pas toujours nécessaire: on peut se simplifier la vie, pour les fréquences radio par exemple, en ajoutant 100 à leur valeur. On affichera alors 118.60 et non plus 18.60, celà fait un afficheur de plus, mais tout est plus simple.
Attention: le nombre d’afficheurs doit correspondre au nombre maximum de chiffres à afficher, sinon gros cafouillages.
Exemple d’utilisation: afficher la température extérieure OAT.
Var 0031, name OAT, Link FSUIPC_IN, Offset $0E8C, Length 2, Type 1 // température extérieure
L0 = &OAT / 256
&OAT_DIS = TRUNC L0 // Afficheur 3 digits
}
Var 0600, name OAT_DIS, Link IOCARD_DISPLAY, Digit 0, Numbers 3 // Affichage Temp. extérieure
La variable OAT est de Type 1, pour prendre en compte les températures négatives. On divise sa valeur par 256 pour obtenir la valeur en degrés centigrades. On utilise ensuite la fonction TRUNC pour arrondir cette valeur et être sûr de ne pas dépasser le nombre de chiffres: ici nous avons deux afficheurs pour les chiffres plus un pour le signe moins, soit trois afficheurs, les n° 0,1 et 2 sur la carte Display.
On voit également qu’une variable quelconque, ici OAT, mais ce pourrait être aussi une subroutine, peut commander directement la valeur d’une variable d’affichage, sans variable interne intermédiaire.
On peut bien entendu faire intervenir autant de conditions qu’on le souhaite. Un autre exemple: un afficheur digital indique la tension du bus gauche, sur un Beech 200. Si l’inter de batterie =1, la batterie =1. Deuxième condition: si le générateur gauche a la valeur 2, c’est à dire qu’il est en marche, l’afficheur de tension va indiquer 28 (volts) . Si on coupe le générateur , l’afficheur indiquera 22 volts, la tension de la batterie seule. Si la batterie est coupée, l’afficheur indiquera 0. Jusque là, pas de problème. Mais on a un gros dévoreur de courant à bord, le dégivrage de l’hélice. Quand il est en marche, la tension du générateur chute de 1 volt, malgré sa régulation. On pourra donc écrire: si dégivrage =1 alors afficheur = afficheur -1. Au lieu d’indiquer 28 volts, l’afficheur indiquera 27 volts. Si on coupe le dégivrage, le ELSE prévoit que dans ce cas c’est la subroutine définissant les conditions d’affichage qui reprend la main, et la tension remonte à 28 volts.