Мазмұны:

Транзисторлардан XOR қақпасын жасаңыз: 6 қадам
Транзисторлардан XOR қақпасын жасаңыз: 6 қадам

Бейне: Транзисторлардан XOR қақпасын жасаңыз: 6 қадам

Бейне: Транзисторлардан XOR қақпасын жасаңыз: 6 қадам
Бейне: Магия транзисторов: как мы научили компьютеры думать с помощью кусочков кремния? 2024, Қараша
Anonim
Транзисторлардан XOR қақпасын жасаңыз
Транзисторлардан XOR қақпасын жасаңыз

НЕМЕСЕ қақпалар өте пайдалы, бірақ олардың бір ғана ерекшелігі бар, олар жақсы жұмыс істейді, бірақ кейбір қосымшаларда проблемалар туындауы мүмкін. Егер екі кіріс те бір болса, онда шығыс бір болады. Егер бізде мұны қаламайтын қосымша болса, мүмкін біз қосқыш құратын болсақ, біз XOR немесе EOR қысқартылған Exclusive or Gate деп аталатын нәрсені қолданар едік.

1 -қадам: Дизайн

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

XOR мінез -құлқына қол жеткізудің бір жолы - тұрақты OR қақпасын алу, содан кейін екі кіріс те оң болатын жағдаймен айналысу. Егер біз кірістерге AND қақпасын байланыстыратын болсақ, онда бұл жағдай пайда болған кезде сигнал алуға болады. Содан кейін біз бұл сигналды қабылдай аламыз, оны төңкереміз, содан кейін оны және OR қақпасының шығысын басқа AND қақпасына байланыстырамыз. Бұл мүмкіндік береді, егер екі кіріс те қосылмаса, НЕМЕСЕ қақпасы екінші ЖӘНЕ қақпасынан өтеді, бірақ екі кіріс те жоғары көтерілгенде бірінші ЖӘНЕ қақпа екінші ЖӘНЕ шлюзді жауып қалады. OR қақпасының күйіне қарамастан шығыс өшіріледі.

Мен соңғы тізбекте жасаған бір түзету - бұл NAND қақпасының AND/NOT комбинациясын ауыстыру, ол жай ғана инверттелген және қақпа. Бұл жұмыс әдісі кейінірек белгілі болады.

Енді сол схеманы жазайық, бірақ транзисторлар мен резисторлармен. Мен қолданатын транзистордың түрі - 2N2222 BJT, ол өте кең таралған (2N4401 және 2N3904 де жұмыс істейді). Мен 6 транзистор, 3 20к ом резистор, 3 47к ом резистор, 1 510 ом резистор, екі түймешік пен жарықдиодты қолдандым. Мен бұл резистордың мәндерін 5В қуат көзіне және 2N2222 үшін 0,1мА немесе 0,0001А минималды токқа сүйене отырып таңдадым. егер сіз Ом заңын осы мәндер үшін жерге дұрыс қарсылықты есептеу үшін қолдансаңыз, сіз 50 000 Ом аласыз. 47к Ом төменгі NAND қақпасы үшін жеткілікті жақын, бірақ неге OR қақпасының төменгі мәні мен екінші AND қақпасының бірінші кірісі? Себебі, НЕМЕ қақпасын құрайтын транзисторлардың эмитенті басқа жерге транзистордың негізі арқылы қосылады, сондықтан жерге тікелей емес, екінші резистор арқылы өтеді. (Жарық диодты токтың шектеу резисторы - бұл жеткілікті төмен мән, ол бұл есепте маңызды емес).

2 -қадам: транзисторларды, түймелерді және жарықдиодты қосу

Транзисторларды, түймелерді және жарықдиодты қосу
Транзисторларды, түймелерді және жарықдиодты қосу

3 -қадам: резисторларды қосу

Резисторларды қосу
Резисторларды қосу

4 -қадам: сымдарды қосу

Сымдар қосу
Сымдар қосу
Сымдар қосу
Сымдар қосу

Менің тақтаны қалай қуаттайтын болсам, бұл рельстерді 5в және 500мА максималды токқа орнатылған зертханалық қуат көзіне қосу. Дәл осындай кіруге Arduino 5V және GND түйреуіштерін қосу арқылы қол жеткізуге болады, бірақ шын мәнінде 5в қуат көзі жұмыс істейді (бірақ компоненттердің жарылу қаупін азайту үшін ағымдағы шектеулі қуат ұсынылады).

5 -қадам: тестілеу және ақауларды жою

Енді ол қосылды, мен сізге өзімді сынауға рұқсат етемін. Егер түймелердің бірі немесе екіншісі басылса, жарық диоды жанады. Егер екеуі де итерілсе, онда жарық диоды өшеді.

Жалпы мәселелер

  1. Егер бір кіріс дұрыс жұмыс істемейтін сияқты болып көрінсе және екі кіріс қосулы болса да нөлді қамтамасыз ететін болса, OR түймесінен шыққан AND қақпасының кірісіндегі кернеуді тексеріңіз. Егер ол төмен болса (<2В), НЕМЕСЕ ЖӘНЕ қақпасына өтетін резистордың кедергісін азайтыңыз.
  2. Егер қақпа әлі де НЕМЕСЕ қақпасы сияқты әрекет етсе, яғни екі кіріс те қосулы болса, NAND қақпасынан келетін AND қақпасының кірісіне келетін кернеуді тексеріңіз. Егер бұл екі түймені басқанда жоғары болса, AND қақпасындағы транзисторлар жұмыс істейтініне көз жеткізіңіз және екі түйме басылғанда жерден қарсылықты тексеріңіз. Егер бұл қарсылық жоғары болса және/немесе кернеу төмен болса, сол екі транзисторды ауыстырыңыз немесе NAND қақпаларына кірістердің кедергісін азайтыңыз.

6 -қадам: Көбірек алғыңыз келе ме?

Егер сізге осы нұсқаулық ұнаған болса, жалғастырыңыз және Amazon -дағы «Arduino -ға жаңадан бастаушыларға арналған нұсқаулық» атты кітабымды қараңыз. Ол схеманың негізгі принциптерін, сонымен қатар Arduino бағдарламалау үшін қолданылатын C ++ кодын қарастырады.

Ұсынылған: