Sisällysluettelo:

Tee XOR -portti transistoreista: 6 vaihetta
Tee XOR -portti transistoreista: 6 vaihetta

Video: Tee XOR -portti transistoreista: 6 vaihetta

Video: Tee XOR -portti transistoreista: 6 vaihetta
Video: 30 глупых вопросов рекрутеру [IT карьера] 2024, Marraskuu
Anonim
Tee XOR -portti transistoreista
Tee XOR -portti transistoreista

TAI portit ovat erittäin hyödyllisiä, mutta niissä on yksi outo ominaisuus, joka voi toimia hienosti, mutta tietyissä sovelluksissa voi aiheuttaa ongelmia. Tämä on tosiasia, että jos molemmat tulot ovat yhtä, niin myös lähtö on yksi. Jos meillä olisi sovellus, jossa emme halunneet tätä, ehkä olisimme rakentamassa lisäosaa, käyttäisimme jotain Exclusive Or Gate -nimistä, joka on lyhenne XOR tai EOR.

Vaihe 1: Suunnittelu

Design
Design
Design
Design
Design
Design

Yksi tapa saavuttaa XOR -käyttäytyminen on ottaa tavallinen TAI -portti ja käsitellä tapaus, jossa molemmat tulot ovat positiivisia. Jos sidomme AND -portin tuloihin, voimme saada signaalin, kun kyseinen tapaus tulee näkyviin. Voimme sitten ottaa tämän signaalin, kääntää sen ja sitoa sen ja TAI -portin lähdön toiseen AND -porttiin. Tämä tekee siitä niin, että aina, kun molemmat tulot eivät ole päällä, TAI -portti kulkee yksinkertaisesti toisen JA -portin läpi, mutta kun molemmat tulot nousevat korkealle, ensimmäinen JA -portti sulkee toisen JA -portin ja pitää lähtö pois TAI -portin tilasta riippumatta.

Yksi säätö, jonka tein lopullisessa piirissä, on AND/NOT -yhdistelmän vaihtaminen NAND -portille, joka on vain käänteinen AND -portti. Tämä tapa paljastuu myöhemmin.

Kirjoitetaan nyt sama kaavio, mutta transistoreilla ja vastuksilla. Käytetty transistorin tyyppi on 2N2222 BJT, joka on melko yleinen (myös 2N4401 ja 2N3904 toimivat). Käytin 6 transistoria, 3 20 k ohmin vastusta, 3 47 k ohmin vastusta, 1 510 ohmin vastusta, kaksi painonappia ja LED. Valitsin nämä vastusarvot perustuen 5v virtalähteeseeni ja 0,1 mA: n tai 0,0001A: n minimivirtaan 2N2222: lle. Jos lasket Ohmin lain avulla oikean maadoitusresistanssin näille arvoille, saat 50 000 ohmia. 47 k ohmia on tarpeeksi lähellä alempaa NAND -porttia varten, mutta miksi OR -portin alempi arvo ja toisen AND -portin ensimmäinen tulo? Syynä on se, että OR -portin muodostavien transistorien säteilijä on kytketty toisen transistorin kannan läpi, joten se kulkee toisen vastuksen läpi, ei suoraan maahan. (LEDin virranrajoitusvastus on riittävän alhainen arvo, joten se on merkityksetön tässä laskelmassa).

Vaihe 2: Transistorien, painikkeiden ja LED -valon lisääminen

Transistorien, painikkeiden ja LED -valojen lisääminen
Transistorien, painikkeiden ja LED -valojen lisääminen

Vaihe 3: Vastusten lisääminen

Vastusten lisääminen
Vastusten lisääminen

Vaihe 4: Johtojen lisääminen

Johtojen lisääminen
Johtojen lisääminen
Johtojen lisääminen
Johtojen lisääminen

Tapa, jolla saan virran levylleni, on kytkeä virtakiskot laboratoriopöydän virtalähteeseen, jonka virrankulutus on 5 ja 500 mA. Samanlainen tulo voidaan saavuttaa kytkemällä virta Arduinon 5V- ja ja GND -nastoihin, mutta todella 5V -virtalähde toimii (vaikka nykyinen rajoitettu on suositeltava komponenttien räjähdysvaaran vähentämiseksi).

Vaihe 5: Testaus ja vianmääritys

Nyt kun se on kytketty, annan sinun testata omasi. Jos jompaakumpaa painiketta painetaan, LED -valon pitäisi syttyä. Jos molempia kuitenkin painetaan, LED sammuu.

Yleisiä ongelmia

  1. Jos yksi tulo ei näytä toimivan kuten pitäisi, ja jos molemmat tulot ovat edelleen päällä, nollaa, tarkista jännite AND -portin tulosta, joka tulee OR -portista, kun painiketta painetaan. Jos se on alhainen (<2V), pienennä OR: sta AND -porttiin menevän vastuksen vastusta.
  2. Jos portti toimii edelleen vain TAI -porttina, eli kun molemmat tulot ovat ulostulossa, tarkista NAND -portista tulevan AND -portin tuloon tuleva jännite. Jos se on korkea, kun molempia painikkeita painetaan, varmista, että AND -portin transistorit toimivat, ja tarkista vastus maasta, kun molempia painikkeita painetaan. Jos vastus on korkea ja/tai jännite on alhainen, vaihda nämä kaksi transistoria tai vähennä NAND -porttien tulojen vastusta.

Vaihe 6: Haluatko lisää?

Jos pidit tästä Instructable -ohjelmasta, mene eteenpäin ja tutustu Amazon -kirjaani "The Beginners Guide to Arduino". Se ylittää piirin perusperiaatteet sekä Arduinon ohjelmointiin käytetyn C ++ -koodin.

Suositeltava: