Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
ELLER porter er veldig nyttige, men de har en merkelig funksjon som kan fungere helt fint, men i visse applikasjoner kan det forårsake problemer. Det er det faktum at hvis begge inngangene er en, er utgangen også en. Hvis vi hadde et program der vi ikke ønsket dette, kanskje vi bygde en adder, ville vi brukt noe som heter Exclusive Or Gate, som er forkortet XOR eller EOR.
Trinn 1: Design
En måte å oppnå XOR -oppførselen på er å ta en vanlig ELLER -gate og deretter håndtere saken der begge inngangene er positive. Hvis vi knytter en OG -port til inngangene, kan vi få et signal når den saken dukker opp. Vi kan da ta det signalet, invertere det, deretter knytte det og utgangen fra ELLER -porten til en annen OG -port. Dette vil gjøre det slik at når det ikke er slik at begge inngangene er på, vil OR -porten ganske enkelt passere gjennom den andre OG -porten, men når begge inngangene går høyt, vil den første OG -porten stenge den andre OG -porten og beholde utgangen av uavhengig av tilstanden til OR -porten.
En justering jeg endte med å gjøre i den siste kretsen, er å bytte AND/NOT -kombinasjonen for en NAND -gate, som bare er en invertert AND -gate. Måten dette fungerer vil bli tydelig senere.
La oss nå skrive det samme skjematiske, men med transistorer og motstander. Transistorstypen jeg brukte er 2N2222 BJT, som er ganske vanlig (2N4401 og 2N3904 fungerer også). Jeg brukte 6 transistorer, 3 20k ohm motstander, 3 47k ohm motstander, 1 510 ohm motstand, to trykknapper og en LED. Jeg valgte disse motstandsverdiene basert på min 5v strømkilde, og 0,1mA, eller 0,0001A minimumsstrøm for 2N2222. Hvis du bruker Ohms lov til å beregne riktig motstand mot bakken for disse verdiene får du 50 000 ohm. 47k ohm er nær nok for den nedre NAND -porten, men hvorfor den lavere verdien for OR -porten, og den første inngangen til den andre OG -porten? Årsaken er fordi emitteren til transistorene som utgjør OR -porten er koblet til bunnen av en annen transistor og derfor går gjennom en andre motstand, ikke direkte til bakken. (Strømbegrensningsmotstanden til LED -en er en lav nok verdi til at den er ubetydelig i denne beregningen).
Trinn 2: Legge til transistorer, knapper og lysdioden
Trinn 3: Legge til motstander
Trinn 4: Legge til ledninger
Måten jeg driver brettet mitt på er å koble til strømskinnene til en strømforsyning for laboratoriebenker som er satt til 5v og 500mA maks strøm. Den samme typen inngang kan oppnås ved å koble strøm til en Arduinos 5V- og GND -pinner, men egentlig fungerer en 5v strømforsyning (selv om en begrenset strøm anbefales for å redusere risikoen for å sprenge komponenter).
Trinn 5: Testing og feilsøking
Nå som den er koblet til, lar jeg deg teste din egen. Hvis du trykker på den ene eller den andre av knappene, bør LED -lampen lyse. Hvis begge skyves, slås imidlertid LED -en av.
Vanlige problemer
- Hvis det ser ut til at en inngang ikke fungerer som den skal, og tilfellet der begge inngangene er på, fortsatt gir null, må du kontrollere spenningen ved inngangen til AND -porten som kommer fra OR -porten når den knappen trykkes inn. Hvis den er lav (<2V), reduser du motstanden til motstanden som går fra OR til AND -porten.
- Hvis porten fremdeles fungerer som bare en ELLER -gate, noe som betyr at når begge inngangene er på, er utgangen på, sjekk spenningen som kommer inn på inngangen til AND -porten som kommer fra NAND -porten. Hvis det er høyt når du trykker på begge knappene, må du kontrollere at transistorene i AND -porten fungerer, og sjekke motstanden derfra til bakken når du trykker på begge knappene. Hvis motstanden er høy, og/eller at spenningen er lav, bytt ut de to transistorene, eller reduser inngangenes motstand til NAND -portene.
Trinn 6: Vil du ha mer?
Hvis du likte denne Instructable, kan du gå til boken min på Amazon som heter "The Beginners Guide to Arduino." Den går over grunnleggende kretsprinsipper samt går over C ++ - koden som brukes til å programmere en Arduino.