XOR хаалгыг транзистороор хий: 6 алхам
XOR хаалгыг транзистороор хий: 6 алхам
Anonim
Транзистороор XOR хаалга хий
Транзистороор XOR хаалга хий

ЭСВЭЛ хаалга нь маш хэрэгтэй, гэхдээ тэдгээр нь зүгээр л сайн ажилладаг нэг сондгой шинж чанартай боловч зарим хэрэглээнд асуудал үүсгэж болзошгүй юм. Энэ бол хэрэв оролт хоёулаа хоёулаа адилхан байвал гаралт нь бас нэг юм. Хэрэв бид үүнийг хүсээгүй аппликейшнтэй байсан бол магадгүй бид хавсаргагч барьж байсан бол XOR эсвэл EOR гэсэн товчлол бүхий Exclusive Or Gate гэх зүйлийг ашиглах байсан.

Алхам 1: Дизайн

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

XOR -ийн зан төлөвт хүрэх нэг арга бол ердийн OR хаалгыг авч, оролт хоёулаа эерэг байх тохиолдолд шийдвэрлэх явдал юм. Хэрэв бид AND хаалгыг оролтод уявал энэ тохиолдол гарч ирэх үед бид дохио авах боломжтой болно. Дараа нь бид тэр дохиог авч, эргүүлж, дараа нь OR хаалганы гаралтыг өөр AND хаалгатай холбож болно. Энэ нь оролт хоёулаа асаалттай байдаггүй тохиолдолд OR хаалга нь хоёр дахь AND хаалгаар дамжин өнгөрөх болно, гэхдээ хоёулаа оролт өндөр байх үед эхний AND хаалга нь хоёр дахь ба хаалгыг хаагаад хадгална. OR хаалганы төлөв байдлаас үл хамааран гаралтыг унтраана.

Эцсийн хэлхээнд миний хийсэн нэг тохируулга бол AND/NOT хослолыг NAND хаалгаар солих явдал юм. Үүнийг хэрхэн яаж хийх нь хожим тодорхой болно.

Одоо ижил схемийг бичье, гэхдээ транзистор ба резистор. Миний ашигладаг транзисторын төрөл бол 2N2222 BJT бөгөөд нэлээд түгээмэл байдаг (2N4401 ба 2N3904 бас ажилладаг). Би 6 транзистор, 3 20 к ом эсэргүүцэл, 47 47 ом эсэргүүцэл, 1 510 ом эсэргүүцэл, хоёр товчлуур, LED ашигласан. Би 5V тэжээлийн эх үүсвэр, 2N2222 -ийн хамгийн бага гүйдэл 0.1mA буюу 0.0001A дээр үндэслэн эдгээр эсэргүүцлийн утгыг сонгосон. Хэрэв та эдгээр утгуудын хувьд газрын эсэргүүцлийг зөв тооцоолохын тулд Омын хуулийг ашиглавал 50 000 ом авна. 47k ом нь NAND доод хаалганы хувьд хангалттай ойрхон боловч яагаад OR хаалганы доод утга, хоёр дахь AND хаалганы эхний оролт яагаад байна вэ? Үүний шалтгаан нь OR хаалгыг бүрдүүлдэг транзисторын ялгаруулагч нь өөр транзисторын суурин дээр холбогдсон байдаг тул шууд газарт биш хоёр дахь эсэргүүцэлээр дамждаг. (LED -ийн одоогийн хязгаарлах резистор нь хангалттай бага утга бөгөөд энэ тооцоонд ач холбогдолгүй болно).

Алхам 2: Транзистор, товчлуур, LED нэмэх

Транзистор, товчлуур, LED -ийг нэмж оруулах
Транзистор, товчлуур, LED -ийг нэмж оруулах

Алхам 3: Эсэргүүцэл нэмэх

Резистор нэмж байна
Резистор нэмж байна

Алхам 4: Утас нэмэх

Утас нэмж байна
Утас нэмж байна
Утас нэмж байна
Утас нэмж байна

Миний самбарыг тэжээх арга бол 5в ба 500мА хамгийн их гүйдэл дээр суурилуулсан лабораторийн вандан цахилгаан тэжээлд цахилгаан төмөр замыг холбох явдал юм. Arduino -ийн 5V ба GND зүү рүү хүч залгаснаар ижил төрлийн оролтыг олж авах боломжтой боловч 5V цахилгаан хангамж үнэхээр ажилладаг (бүрэлдэхүүн хэсгүүдийг дэлбэлэх эрсдлийг бууруулахын тулд одоогийн хязгаарлагдмал төхөөрөмжийг ашиглахыг зөвлөж байна).

Алхам 5: Туршилт ба алдааг олж засварлах

Үүнийг холбосон болохоор би танд өөрийгөө туршиж үзэхийг зөвшөөрөх болно. Хэрэв товчлууруудын аль нэгийг дарвал LED гэрэл асах ёстой. Хэрэв хоёуланг нь түлхсэн бол LED унтрах болно.

Нийтлэг асуудлууд

  1. Хэрэв нэг оролт зохих ёсоор ажиллахгүй байгаа юм шиг санагдаж байгаа бөгөөд оролт хоёулаа асаалттай байгаа тохиолдолд тэг гэсэн утгатай хэвээр байгаа бол энэ товчлуур дарагдах үед OR хаалганы оролт дахь AND хаалганы оролтын хүчдэлийг шалгана уу. Хэрэв энэ нь бага (<2V) байвал OR -ээс AND хаалга руу орох эсэргүүцлийн эсэргүүцлийг бууруулна.
  2. Хэрэв хаалга нь зүгээр л OR хаалга шиг ажилладаг хэвээр байгаа бөгөөд энэ нь оролт хоёулаа гаралт асаалттай байгаа үед NAND хаалганаас ирдэг AND хаалганы оролтонд орж буй хүчдэлийг шалгана гэсэн үг юм. Хэрэв хоёр товчлуурыг дарахад энэ нь өндөр байвал AND хаалганы транзистор ажиллаж байгаа эсэхийг шалгаарай, хоёр товчлуурыг дарахад тэндээс газрын эсэргүүцлийг шалгана уу. Хэрэв энэ эсэргүүцэл өндөр ба/эсвэл хүчдэл бага байвал эдгээр хоёр транзисторыг солих эсвэл NAND хаалганы оролтын эсэргүүцлийг бууруулна уу.

Алхам 6: Илүү ихийг хүсч байна уу?

Хэрэв танд энэхүү зааварчилгаа таалагдсан бол Амазон дээрх "Arduino -ийн анхан шатны гарын авлага" номыг үзээрэй. Энэ нь хэлхээний үндсэн зарчмуудаас гадна Arduino програмчлахад ашигладаг C ++ кодыг судлах болно.

Зөвлөмж болгож буй: