Оглавление:

Сделайте вентиль XOR из транзисторов: 6 шагов
Сделайте вентиль XOR из транзисторов: 6 шагов

Видео: Сделайте вентиль XOR из транзисторов: 6 шагов

Видео: Сделайте вентиль XOR из транзисторов: 6 шагов
Видео: Логический вентиль НЕ (инвертор) - как устроен и как собрать самостоятельно 2024, Ноябрь
Anonim
Сделайте вентиль XOR из транзисторов
Сделайте вентиль XOR из транзисторов

Логические элементы ИЛИ очень полезны, но у них есть одна странная функция, которая может работать нормально, но в некоторых приложениях может вызывать проблемы. Дело в том, что если оба входа равны единице, то и выход также будет единицей. Если бы у нас было приложение, в котором мы этого не хотели, возможно, мы создавали сумматор, мы бы использовали что-то под названием Exclusive Or Gate, что сокращенно XOR или EOR.

Шаг 1. Дизайн

Дизайн
Дизайн
Дизайн
Дизайн
Дизайн
Дизайн

Один из способов добиться поведения XOR - взять обычный логический элемент ИЛИ, а затем рассмотреть случай, когда оба входа положительны. Если мы привяжем логический элемент И к входам, мы сможем получить сигнал, когда появится этот случай. Затем мы можем взять этот сигнал, инвертировать его, а затем связать его и выход логического элемента ИЛИ с другим вентилем И. Это сделает так, что всякий раз, когда оба входа не включены, вентиль ИЛИ будет просто проходить через второй вентиль И, но когда оба входа станут высокими, первый вентиль И отключит второй вентиль И и сохранит выход выключен независимо от состояния логического элемента ИЛИ.

Одна настройка, которую я сделал в последней схеме, - это переключение комбинации И / НЕ для логического элемента И-НЕ, который является просто перевернутым вентилем И. Как это работает, станет ясно позже.

Теперь давайте напишем ту же схему, но с транзисторами и резисторами. Я использовал тип транзистора 2N2222 BJT, который довольно распространен (также работают 2N4401 и 2N3904). Я использовал 6 транзисторов, 3 резистора 20 кОм, 3 резистора 47 кОм, резистор 1 510 Ом, две кнопки и светодиод. Я выбрал эти значения резистора на основе моего источника питания 5 В и минимального тока 0,1 мА или 0,0001 А для 2N2222. если вы используете закон Ома для расчета правильного сопротивления заземления для этих значений, вы получите 50 000 Ом. 47 кОм достаточно близко для нижнего логического элемента И-НЕ, но почему меньшее значение для логического элемента ИЛИ и первого входа второго логического элемента И? Причина в том, что эмиттер транзисторов, составляющих затвор ИЛИ, подключен через базу другого транзистора, поэтому он проходит через второй резистор, а не напрямую на землю. (Токоограничивающий резистор светодиода имеет достаточно низкое значение, поэтому в данном расчете оно несущественно).

Шаг 2: добавление транзисторов, кнопок и светодиода

Добавление транзисторов, кнопок и светодиода
Добавление транзисторов, кнопок и светодиода

Шаг 3: добавляем резисторы

Добавление резисторов
Добавление резисторов

Шаг 4: Добавление проводов

Добавление проводов
Добавление проводов
Добавление проводов
Добавление проводов

Я запитываю свою плату так, как будто подключаю шины питания к лабораторному стенду, настроенному на максимальный ток 5 В и 500 мА. Тот же тип входа может быть достигнут путем подключения питания к контактам 5V и GND Arduino, но на самом деле работает источник питания 5V (хотя рекомендуется использовать ограниченный по току, чтобы снизить риск взрыва компонентов).

Шаг 5: Тестирование и устранение неполадок

Теперь, когда он подключен, я позволю вам протестировать свой собственный. При нажатии одной или другой кнопки должен загореться светодиод. Однако, если нажать оба, светодиод погаснет.

Общие проблемы

  1. Если один вход работает не так, как должен, и случай, когда оба входа включены, по-прежнему дает ноль, проверьте напряжение на входе логического элемента И, которое поступает от логического элемента ИЛИ при нажатии этой кнопки. Если оно низкое (<2 В), уменьшите сопротивление резистора, идущего от ИЛИ к логическому элементу И.
  2. Если вентиль по-прежнему действует как вентиль ИЛИ, что означает, что когда оба входа включены, выход включен, проверьте напряжение, поступающее на вход логического элемента И, поступающее от логического элемента И-НЕ. Если это высокое значение при нажатии обеих кнопок, убедитесь, что ваши транзисторы в логическом элементе И работают, и проверьте сопротивление оттуда до земли при нажатии обеих кнопок. Если это сопротивление велико и / или напряжение низкое, замените эти два транзистора или уменьшите сопротивление входов вентилей И-НЕ.

Шаг 6. Хотите большего?

Если вам понравилась эта инструкция, посмотрите мою книгу на Amazon под названием «Руководство для начинающих по Arduino». В нем рассматриваются основные принципы схемотехники, а также код C ++, используемый для программирования Arduino.

Рекомендуемые: