Créer une porte XOR à partir de transistors: 6 étapes

Créer une porte XOR à partir de transistors: 6 étapes

Table des matières:

Anonim

Les portes OU sont très utiles, mais elles ont une fonctionnalité étrange qui peut très bien fonctionner, mais peut causer des problèmes dans certaines applications. C’est le fait que si les deux entrées sont des unités, la sortie est également un. Si nous avions une application pour laquelle nous ne voulions pas cela, peut-être que nous construisions un additionneur, nous utiliserions un système appelé Exclusive Or Gate, qui est abrégé en XOR ou EOR.

Provisions:

Étape 1: Conception

Une façon d’obtenir le comportement XOR consiste à utiliser une porte OU classique puis à traiter le cas où les deux entrées sont positives. Si nous relions une porte ET aux entrées, nous pouvons obtenir un signal lorsque ce cas se présente. Nous pouvons ensuite prendre ce signal, l’inverser, puis lier ce signal et la sortie de la porte OU à une autre porte ET.Ainsi, chaque fois que les deux entrées ne sont pas activées, la porte OU passera simplement par la deuxième porte ET, mais lorsque les deux entrées seront hautes, la première porte ET fermera la deuxième porte ET et restera la sortie désactivée quel que soit l'état de la porte OU.

Un réglage que j'ai fini par effectuer dans le dernier circuit est la commutation de la combinaison ET / NON pour une porte NAND, qui est simplement une porte ET inversée. La façon dont cela fonctionne deviendra évident plus tard.

Maintenant, écrivons ce même schéma, mais avec des transistors et des résistances. Le type de transistor que j'ai utilisé est le 2N2222 BJT, qui est assez commun (le 2N4401 et le 2N3904 fonctionnent également). J'ai utilisé 6 transistors, 3 résistances de 20k ohms, 3 résistances de 47k ohms, une résistance de 1 510 ohms, deux boutons-poussoirs et une LED. J'ai choisi ces valeurs de résistance en fonction de ma source d'alimentation 5v et du courant minimum de 0.1mA ou 0.0001A pour le 2N2222. Si vous utilisez la loi d'Ohm pour calculer la résistance à la terre correcte pour ces valeurs, vous obtenez 50 000 ohms. 47k ohms est suffisamment proche pour la porte NAND inférieure, mais pourquoi la valeur inférieure pour la porte OU et la première entrée de la deuxième porte ET? La raison en est que les émetteurs des transistors qui composent la porte OU sont connectés à la base d’un autre transistor traversant ainsi une seconde résistance, et non directement à la masse. (La résistance de limitation de courant de la LED est une valeur suffisamment basse pour être négligeable dans ce calcul).

Étape 2: Ajout de transistors, de boutons et de la LED

Étape 3: Ajout de résistances

Étape 4: Ajout de fils

J'alimente ma carte en connectant les rails d'alimentation à un bloc d'alimentation pour banc de laboratoire alimenté en courant max. 5v et 500mA. Le même type d’entrée peut être obtenu en connectant l’alimentation aux broches 5V et GND d’un Arduino, mais c’est vraiment une alimentation 5V qui fonctionne (bien qu’une alimentation limitée en courant soit recommandée pour réduire le risque de destruction des composants).

Étape 5: tests et dépannage

Maintenant que tout est connecté, je vous laisse tester les vôtres. Si l’un ou l’autre des boutons est enfoncé, le voyant doit s’allumer. Si les deux sont poussés, le voyant s'éteindra.

Problèmes communs

  1. Si une entrée semble ne pas fonctionner correctement et si le cas où les deux entrées sont activées fournit toujours un zéro, vérifiez la tension à l'entrée de la porte ET qui provient de la porte OU lorsque ce bouton est enfoncé. Si elle est basse (<2V), réduisez la résistance de la résistance allant du OU à la porte ET.
  2. Si la porte agit toujours comme une porte OU, ce qui signifie que lorsque les deux entrées sont sur la sortie est activée, vérifiez la tension qui entre dans l'entrée de la porte ET provenant de la porte NAND. Si la valeur est élevée lorsque les deux boutons sont enfoncés, assurez-vous que les transistors de la porte ET fonctionnent et vérifiez la résistance entre ceux-ci et la masse lorsque vous appuyez sur les deux boutons. Si cette résistance est élevée et / ou cette tension est faible, remplacez ces deux transistors ou réduisez la résistance des entrées des portes NAND.

Étape 6: Vous voulez plus?

Si vous avez aimé Instructable, allez voir mon livre sur Amazon intitulé "Le Guide du débutant à l'Arduino". Il aborde les principes de base des circuits ainsi que le code C ++ utilisé pour programmer un Arduino.