Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
ARBA vartai yra labai naudingi, tačiau jie turi vieną keistą funkciją, kuri gali veikti puikiai, tačiau tam tikrose programose gali kilti problemų. Tai yra tai, kad jei abu įėjimai yra vienodi, tada išėjimas taip pat yra vienas. Jei turėtume programą, kur to nenorėjome, galbūt statytume papildymą, naudotume tai, kas vadinama „Išskirtiniai arba vartai“, sutrumpintai XOR arba EOR.
1 žingsnis: dizainas
Vienas iš būdų pasiekti XOR elgseną yra paimti įprastus OR vartus, tada spręsti atvejį, kai abu įėjimai yra teigiami. Jei pririšame AND vartus prie įėjimų, galime gauti signalą, kai tas atvejis pasirodys. Tada mes galime paimti tą signalą, apversti jį, tada susieti tą ir OR vartų išvestį su kitais IR vartais. Tai padarys taip, kad kai nebus taip, kad abu įėjimai yra įjungti, ARBA vartai tiesiog praeis pro antrus IR vartus, bet kai abu įėjimai bus aukšti, pirmieji IR vartai uždarys antrus IR vartus ir išėjimas išjungiamas nepriklausomai nuo OR vartų būsenos.
Vienas koregavimas, kurį galiausiai padariau galutinėje grandinėje, yra AND/NOT derinio perjungimas NAND vartams, kurie yra tik apversti AND vartai. Tai, kaip tai veikia, paaiškės vėliau.
Dabar leiskite parašyti tą pačią schemą, bet su tranzistoriais ir rezistoriais. Mano naudojamas tranzistorius yra 2N2222 BJT, kuris yra gana dažnas (2N4401 ir 2N3904 taip pat veikia). Naudojau 6 tranzistorius, 3 20k omų rezistorius, 3 47k omų rezistorius, 1510 omų rezistorių, du mygtukus ir šviesos diodą. Aš pasirinkau šias rezistorių vertes pagal mano 5 V maitinimo šaltinį ir 0,1 mA arba 0,0001A minimalią 2N2222 srovę. jei naudosite Omo dėsnį, kad apskaičiuotumėte teisingą šių verčių atsparumą žemei, gausite 50 000 omų. 47 000 omų yra pakankamai arti apatiniams NAND vartams, bet kodėl mažesnė AR vartų vertė ir pirmasis antrųjų IR vartų įėjimas? Taip yra todėl, kad tranzistorių, sudarančių OR vartus, spinduoliai yra prijungti per kito tranzistoriaus pagrindą, todėl eina per antrąjį rezistorių, o ne tiesiai į žemę. (Šviesos diodo srovės ribojamasis rezistorius yra pakankamai maža vertė, kad atliekant šį skaičiavimą jis yra nereikšmingas).
2 žingsnis: tranzistorių, mygtukų ir šviesos diodų pridėjimas
3 žingsnis: rezistorių pridėjimas
4 žingsnis: laidų pridėjimas
Kaip aš maitinu savo plokštę, prijungiu maitinimo bėgelius prie laboratorijos suolelio maitinimo šaltinio, kurio maksimali srovė yra 5 ir 500 mA. Tos pačios rūšies įvestį galima pasiekti prijungus maitinimą prie „Arduino“5 V ir GND kaiščių, tačiau iš tikrųjų veikia 5 V maitinimo šaltinis (nors dabartinis ribotas maitinimo šaltinis yra rekomenduojamas siekiant sumažinti komponentų susprogdinimo riziką).
5 žingsnis: bandymas ir trikčių šalinimas
Dabar, kai jis prijungtas, leisiu jums išbandyti savo. Paspaudus vieną ar kitą mygtuką, šviesos diodas turėtų užsidegti. Tačiau jei abu stumiami, šviesos diodas išsijungs.
Dažnos problemos
- Jei atrodo, kad viena įvestis neveikia taip, kaip turėtų, ir tuo atveju, kai abu įėjimai yra įjungti, vis tiek yra nulis, patikrinkite įtampą prie AND vartų įėjimo, kuris ateina iš ARBA vartų, kai šis mygtukas yra paspaustas. Jei jis yra žemas (<2V), sumažinkite rezistoriaus, einančio iš OR į AND vartus, pasipriešinimą.
- Jei vartai vis dar veikia kaip ARBA vartai, tai reiškia, kad kai abu įėjimai yra išvestyje, patikrinkite įtampą, patenkančią į AND vartų įvestį, kuri ateina iš NAND vartų. Jei šis rodiklis yra didelis, kai paspaudžiami abu mygtukai, įsitikinkite, kad jūsų tranzistoriai AND vartuose veikia, ir paspaudę abu mygtukus patikrinkite atsparumą nuo žemės iki žemės. Jei šis atsparumas yra didelis ir (arba) įtampa yra žema, pakeiskite šiuos du tranzistorius arba sumažinkite įėjimų į NAND vartus varžą.
6 žingsnis: norite daugiau?
Jei jums patiko šis „Instructable“, eikite į priekį ir peržiūrėkite mano knygą „Amazon“, pavadintą „Pradedantysis„ Arduino “vadovas“. Tai apima pagrindinius grandinės principus ir C ++ kodą, naudojamą programuojant „Arduino“.