Astuce 3 - Le saviez-vous ?? codage des entrées d'une master

Questions sur les cartes Master et USB / Problèmes d'entrée-sortie, LEDS, Interrupteurs, etc...

Astuce 3 - Le saviez-vous ?? codage des entrées d'une master

Messagede chtipilot » Mar 5 Avr 2011 22:43

Coucou me revoilou,

Petit test de connaissances:
Q1 - peut-on coder les entrées d'une Master ?
peurefrayé
Q2 - si oui pourquoi ?
Q3 - si oui comment faire ?
murrouge
Q4 - si oui comment programmer cela dans plusieurs fichiers.txt utilisant les mêmes entrées ? murrouge ecroulerire
Réponse demain ... tapebaton
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede chtipilot » Mer 6 Avr 2011 10:57

Réponses:
Oui, on peut coder les entrées d'une Master grandsoleil

Pourquoi: Pour économiser des entrées grandsoleil

Comment : en codage BCD par diode type 1N4148 (diode signal) que je nomme ici "Bus BCD"

Explication :
Si vous avez par exemple un rotary avec 6 contacts, il suffira de 3 entrées Master pour avoir chacune des 6 positions au lieu de mobiliser 6 entrées.

- Chaque entrée sur la Master représente une puissance de 2 (un bit), du poids fort au poids faible (bit2=2^2 - bit1=2^1 - bit0=2^0)

Nota: chaque "bus BCD" ne peut contenir que des boutons poussoir
mais un interrupteur peut être utilisé seul sur le bit de poids fort pour un "général" par exemple ou servir de bit de retenue ou encore pour un bit de fonction particulière (bascule "Captain<->1°OFF" de l'EFIs ou d'une radio,...)

Le codage est donc réalisé directement avec les diodes comme indiqué sur le shéma SI le commun est un +
Pour nous, les diodes sont dans le mauvais sens car c'est le Gnd qui est notre commun. lolaffiche

--Schéma--Image

Programmation SIOC d'un "Bus BCD"
Prenons un exemple concret: Autobrake du 737 (6 positions)
"RTO" => contact 1 du rotary (shéma - decimal in 1)
"OFF" => contact 2 (shéma - decimal in 2)
"1" => contact 3 (shéma - decimal in 3)
"2" => contact 4 (shéma - decimal in 4)
"3" => contact 5 (shéma - decimal in 5)
"MAX" => contact 6 (shéma - decimal in 6)

On nomme chaque input en rappelant que c'est un "bus BCD":
Var 0010, name Rot_AB_BCD1 // rotary AutoBrake BCD1
Var 0020, name Rot_AB_BCD2
Var 0030, name Rot_AB_BCD3
Chaque Var reçoit donc les impulsions et appel la routine "&Routine_Rot_AB" qui compose le code BCD
La variable temporaire "&Rot_AB_tmp" stocke le code BCD

Maintenant en fonction de la valeur de "&Rot_AB_tmp" il suffit d'affecter la commande souhaitée - CQFD ! applaublanc chouettedoights

Utilisation du "Bus BCD" dans plusieurs fichiers

Si vous souhaitez utiliser le même "bus BCD" dans plusieurs fichiers.txt différents, il suffit de nommé différemment les entrées BCD mais avec les mêmes n° input, ainsi vous n'aurez pas de conflit de nom de variable lors de la compilation. Attention tout de même à bien "scanner" toutes les entrées du code même si dans un fichier vous n'utilisez pas toutes les entrées !!
exemple fichiers
ADF.txt => ADF_BCD1_commun,input 10 ,.....
COM.txt => COM_BCD1_commun,input 10 ,.....
MultiCOM.txt => MultiCOM_BCD1_commun,input 10 ,.....

J'emploie cette technique dans mon PIT dès que c'est possible est ça fonctionne à merveille chouettedoights chouettedoights
byeaffiche

Jean-Louis

photo de mon EFIs avec codage par "bus BCD" pour les 2 encoders et les boutons du BAS
Et oui, une seule carte pour mon EFIs rirebleu
Image

--code--
Code: Tout sélectionner
// *********************************************
// * Rotary BCD for Autobrake By Chtipilot  *
// *********************************************
// * FileName : Rot_AutoBrake_BCD.txt
// * Date : 01/11/2010

// Utilisation d'un rotary 12 positions codé BCD par diodes

// Using BCD coding for twelve positions Rotary with Diode (1N4148)

// Nota: les entrées MASTER n'ont pas besoin de se suivre

// Note: following MASTER's Input It's not necessary// Exemple: rotary Autobrake
//// LO, L1, L2 ne peuvent prendre que la valeur 0 ou 1 (cf SWITCH et DIODES)
// &Rot_AB_tmp (Variable Rotary_AutoBrake_temporaire) contient le code BCD complet [ L2x100 ]+[ L1x10 ]+[ L0 ]
//*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*_*

Var 0946, name Rot_AB_BCD1, Link IOCARD_SW, Device 1, Input 50      // Entrée IOcard pour AutoBrake BCD Input 1
{
  CALL &Routine_Rot_AB
}

Var 0947, name Rot_AB_BCD2, Link IOCARD_SW, Device 1, Input 45      // Entrée IOcard pour AutoBrake BCD Input 2
{
  CALL &Routine_Rot_AB
}

Var 0948, name Rot_AB_BCD3, Link IOCARD_SW, Device 1, Input 53      // Entrée IOcard pour Autobrake BCD Input 3
{
  CALL &Routine_Rot_AB
}
Var 1000, name Routine_Rot_AB, Link SUBRUTINE                                // SUBRoutine Rotary autobrk_BCD: compose le code BCD puis défini la position Autobrake pour FSX

{
  L0 = &Rot_AB_BCD1                           // pour unité   
  L1 = &Rot_AB_BCD2 * 10                    // x10  pour les dizaines
  L2 = &Rot_AB_BCD3 * 100                 // x100 pour les centaines
  &Rot_AB_tmp = L0 + L1                    // addition unité+dizaine
  &Rot_AB_tmp = &Rot_AB_tmp + L2 // addition précédente + centaine = &Rot_AB_tmp contient maintenant le code BCD

  IF &Rot_AB_tmp = 1
  {
    &FS_AutoBrake = 0             // &Rot_AB_tmp = 001 = Position RTO
  }
  ELSE
  {
    IF &Rot_AB_tmp = 10         // &Rot_AB_tmp = 010 =Position OFF
    {
      &FS_AutoBrake = 1                 
     }
    ELSE
    {
      IF &Rot_AB_tmp = 11         // &Rot_AB_tmp = 011 (input3=0, input2=1, input1=1) =Position 1
      {
        &FS_AutoBrake = 2   
      }
      ELSE
      {
        IF &Rot_AB_tmp = 100          // &Rot_AB_tmp = 100 (input3=1, input2=0, input1=0) =Position 2
       {
          &FS_AutoBrake = 3   
        }
        ELSE
        {
          IF &Rot_AB_tmp = 101          // &Rot_AB_tmp = 101 (input3=1, input2=0, input1=1) =Position 3
          {
            &FS_AutoBrake = 4   
          }
          ELSE
          {
            IF &Rot_AB_tmp = 110          // &Rot_AB_tmp = 110 (input3=1,input2=1,input1=0) =Position MAX
           {
              &FS_AutoBrake = 5   
            }
          }
        }
      }
    }
  }
}

Var 1001, name Rot_AB_tmp           // Rotary AB tmp

Dernière édition par chtipilot le Mer 6 Avr 2011 19:33, édité 4 fois.
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede alain » Mer 6 Avr 2011 14:57

OUFFFF!
Moi j'ai absolument rien compris. gratgrat
Ça c'est des affaires pour Bob Pierre ou peut être même Ijack
Mais wow ça a l'air intéressant. Peut être dans une autre vie pour moi. sourirebis
Alain
Construire ses rêves!
http://www.sim-737ng.com/
Avatar de l’utilisateur
alain
 
Messages: 333
Inscription: 19/04/09
Localisation: Quebec, Canada

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede chtipilot » Mer 6 Avr 2011 17:30

Salut Alain,

Quand on connait c'est toujours simple mais l'expliquer simplement devient compliqué peurefrayé

un petit schéma plus simple rien que pour toi sourirebis , ce serait dommage de rester en rade sur ça car ça vaut son pesant de cacahuètes ! (les diodes sont ici dans le bon sens)

Quand tu presse :
le bouton 1 ça donne un code 01 dans SIOC ( gnd -> A)
le bouton 2 ça donne un code 10 dans SIOC (Gnd -> B)
le bouton 3 ça donne un code 11 dans SIOC (Gnd -> A+B) car les diodes envoient le Gnd en même temps sur les 2 fils A et B

Image
Amitiés,
Jean-Louis
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede nonolight » Mer 6 Avr 2011 19:20

ça me parle également déjà mieux applaublanc (Pauvre novice que nous sommes ! lolaffiche )

Nono
Image Image
Avatar de l’utilisateur
nonolight
 
Messages: 4344
Inscription: 21/03/09

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede pierre01 » Mer 6 Avr 2011 20:43

Salut Jean Louis,

Très astucieux, mais je pense qu'il faut que tu inverses le "A" et le "B" dans ton explication non ?

En tout cas, belle économie d'entrées, bravo !
A+
Pierre.
Avatar de l’utilisateur
pierre01
 
Messages: 1767
Inscription: 19/04/09
Localisation: Vers Vesoul (Haute Saône)

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede algue14 » Mer 6 Avr 2011 21:07

Salut

pour ceux que l'anglais ne rebute pas il y a un bon tuto en pdf ici

http://www.cockpitware.com/tricks.html

Salut
A+

Alain
Avatar de l’utilisateur
algue14
 
Messages: 1626
Inscription: 20/04/09
Localisation: Caen ; Normandie

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede chtipilot » Mer 6 Avr 2011 23:00

Hello pierre,

Les entrées sont bien représentées dans le bon sens de droite à gauche soit dans le même ordre que les bits de poids faible et fort et la lecture binaire d'un code.

Algue14 : bon tuto que je ne connaissais pas, la preuve que d'autres ont aussi voulu économiser des entrées applaublanc

Amitiés,
Jean-Louis
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede bat74 » Jeu 7 Avr 2011 20:24

chtipilot a écrit:Hello pierre,

Les entrées sont bien représentées dans le bon sens de droite à gauche soit dans le même ordre que les bits de poids faible et fort et la lecture binaire d'un code.


pierre01 a écrit:Salut Jean Louis,

Très astucieux, mais je pense qu'il faut que tu inverses le "A" et le "B" dans ton explication non ?


Chtipilot , en se référant à ton explication initiale, je pense qu'il fallait comprendre que quand tu presses le bouton 1 tu mets l'entrée attachée à ce bouton à la masse. Sur ton schéma c'est la ligne B et dans ton texte tu dis gnd -> A
chtipilot a écrit:le bouton 1 ça donne un code 01 dans SIOC ( gnd -> A)
le bouton 2 ça donne un code 10 dans SIOC (Gnd -> B)


en fait c'est : [...] le bouton 1 ça donne un code 01 dans SIOC ( gnd -> B)
et tu ne touches pas aux lettres A et B sur ton schéma.
Voilà c'est ça que voulais dire Pierre etonneyeux

Effectivement ce système de codage est très intéressant quand on veut faire des économies.
J'ai utilisé ça dans mon 1er boulot où je codais des boucles de régulations dans des raffineries avec plusieurs centaines de capteurs (mais c'est toujours d'actualité rigolus )

Merci d'avoir donné l'astuce à tout le monde.

Philippe
Vivent les "amateurs" : personnes faisant tout ce qu'elles entreprennent en bons professionnels qui aiment ce qu'ils font ...
Avatar de l’utilisateur
bat74
 
Messages: 504
Inscription: 19/04/09
Localisation: 74 Vallée Verte - Boëge

Re: Astuce 3 - Le saviez-vous ?? codage des entrées d'une ma

Messagede pierre01 » Jeu 7 Avr 2011 21:44

C'est effectivement ce que je veux dire, ce n'est qu'un petit détail de comprehension rigolus
A+
Pierre.
Avatar de l’utilisateur
pierre01
 
Messages: 1767
Inscription: 19/04/09
Localisation: Vers Vesoul (Haute Saône)

Suivante

Retourner vers Cartes Master & USB-Expansion





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité