Toutes les portes logiques nécessitent une alimentation électrique, et leurs entrées et sorties peuvent se trouver dans l'un des trois états possibles, comme le montre le tableau suivant...
State Description
(0) -> No Connection to Power
(1) => Connected to Power, Enabled (True)
(2) ~> Connected to Power, Disabled (False)
Le hic : les états (2) n'empruntent qu'une seule connexion et seuls certains appareils peuvent émettre un état (2). C'est pourquoi les portes logiques doivent être directement connectées à l'appareil qui produit la sortie "Alimenté mais désactivé".
Étant donné que toutes les portes logiques nécessitent une alimentation, AU MOINS UNE entrée doit toujours être soit (1), soit (2). Vous pouvez savoir si une porte logique est alimentée par le petit voyant orange situé en haut à gauche de l'appareil. Une porte NOR (Not Or), par exemple, fonctionnera lorsque les entrées sont [0,2] ou [2,0] ou [2,2], mais pas [0,0], car elle ne serait pas alimentée.
Les portes logiques fonctionnent en vérifiant la sortie du dernier dispositif. Cela va à l'encontre de la manière dont on pourrait s'attendre à ce que l'énergie se comporte en s'écoulant ou en se propageant d'une connexion à l'autre. Étant donné que seuls certains dispositifs peuvent produire un état (2) (c'est-à-dire d'autres portes logiques), dans la plupart des cas, cela signifie que vous devrez connecter directement votre entrée à la sortie d'une autre porte logique lorsque vous aurez besoin d'une entrée Désactivé/Faux.
Une façon simple de se souvenir de cette information est la suivante ;
- Le pouvoir se propage
- La logique vérifie la dernière connexion
Premier exemple :
Une porte NAND produit une sortie alimentée lorsque ses deux entrées sont désactivées (fausses). Ici, les deux entrées sont connectées à un interrupteur qui est éteint, ce qui ne produit aucune énergie. Comme la porte logique n'est pas alimentée, elle ne peut pas produire le résultat escompté, qui devrait être alimenté.
Power Source (1) => Switch, Off (0) -> In 1. NAND Gate (0) => Light (0)
Power Source (1) => Switch, Off (0) -> In 2. ^
Deuxième exemple :
Si nous remplaçons l'un des deux interrupteurs du premier exemple par une porte NOT, le voyant d'entrée de la porte logique sera toujours éteint, mais il est en fait dans l'état (2), c'est-à-dire qu'il est alimenté, mais désactivé. La porte NAND nous donne maintenant la sortie alimentée attendue.
Power Source (1) => Switch, Off (0) -> In 1. NAND Gate (1) => Light (1)
Power Source (1) => NOT Gate (2) ~> In 2. ^
Troisième exemple :
Une lampe connectée directement à une porte NOT ne s'allumera pas. Mais elle s'allumera si elle est connectée à la sortie d'une porte NOR, dont les entrées proviennent de portes NOT alimentées. Ce circuit fonctionnera même si vous déconnectez l'une des entrées, mais comme dans l'exemple 1, si les deux entrées sont supprimées ou remplacées par des interrupteurs réglés sur off, la NOR Gate ne sera plus alimentée, et donc la lumière non plus.
Power Source (1) => NOT Gate (2) ~> In 1. NOR Gate (1) => Light (1)
Power Source (1) => NOT Gate (2) ~> In 2. ^
Exemples quatre et cinq :
Deux NOT Gates en série produiront de l'énergie comme prévu.
Power Source (1) => NOT Gate (2) ~> NOT Gate (1) => Light (1)
Cependant, si un conduit est placé entre les deux portes, la deuxième porte NOT vérifiera à quoi l'entrée est connectée et trouvera que c'est (0), car un conduit d'alimentation ne peut pas produire un état "alimenté, désactivé" (2).
Power Source (1) => NOT Gate (2) ~> Conduit (0) -> NOT Gate (0) => Light (0)
Compte tenu de ce qui précède, si vous n'utilisez pas de vannes négatives (N-anything), vous n'aurez probablement pas besoin de vous soucier de maintenir toutes vos vannes sous tension en permanence. Cependant, le cas le plus courant est celui où l'on souhaite que deux interrupteurs déclenchent un changement d'état de la sortie lorsque l'un d'entre eux est actionné. La logique veut que l'on y parvienne à l'aide d'une porte XNOR. (Équivalente à une porte XOR suivie d'une porte NOT)
La table logique/vérité d'une porte XNOR est la suivante :
Input 1 0 0 1 1
Input 2 0 1 0 1
-------------------------
Output 1 0 0 1
Vous voyez peut-être déjà le problème ici ; le quatrième résultat fonctionne comme prévu, mais dans le jeu, si vous avez utilisé des interrupteurs qui étaient éteints pour essayer de créer le premier résultat, la porte n'aura pas d'énergie.
Power Source (1) => Switch, Off (0) -> In 1. XNOR Gate (0) -> Light (0)
Power Source (1) => Switch, Off (0) -> In 2. ^
Nous pouvons résoudre ce problème en plaçant des portes ET entre chaque interrupteur et les entrées de la porte XNOR, l'une des deux entrées de la porte ET étant connectée en permanence à une source d'alimentation...
Power Source (1) => Switch, Off (0) -> In 1. AND Gate (2) ~> In 1. XNOR Gate (1) => Light (1)
Power Source (1) => ............... => In 2. ^ ^
Power Source (1) => ............... => In 1. AND Gate (2) ~> In 2. ^
Power Source (1) => Switch, Off (0) -> In 2. ^
Nous avons maintenant une paire d'interrupteurs à deux voies qui activeront la sortie finale lorsque les deux sont allumés ou éteints. Nous vous souhaitons beaucoup de plaisir. :)
ADDENDUM : Pratiquement le même résultat peut être obtenu avec une porte XOR seule, avec la mise en garde que la sortie est vraie lorsque les entrées ne correspondent pas, et les entrées de [0,0] auraient bien sûr pour résultat que la porte n'est pas alimentée. Cela ne pose pas de problème pour une simple porte ou une lumière, mais peut en poser dans des circuits plus complexes. Des portes ET sur les entrées corrigeraient bien sûr ce problème. Le dernier exemple utilise une porte XNOR comme démonstration d'une situation où l'alimentation de la sortie est nécessaire et n'est pas nécessairement la solution optimale.