สารบัญ:

สร้าง XOR Gate จากทรานซิสเตอร์: 6 ขั้นตอน
สร้าง XOR Gate จากทรานซิสเตอร์: 6 ขั้นตอน

วีดีโอ: สร้าง XOR Gate จากทรานซิสเตอร์: 6 ขั้นตอน

วีดีโอ: สร้าง XOR Gate จากทรานซิสเตอร์: 6 ขั้นตอน
วีดีโอ: Boolean Algebra & Logic Gates EP.4 - XOR Gate & XNOR Gate 2024, พฤศจิกายน
Anonim
สร้าง XOR Gate จากทรานซิสเตอร์
สร้าง XOR Gate จากทรานซิสเตอร์

ประตู OR มีประโยชน์มาก แต่มีคุณสมบัติแปลก ๆ ที่ทำงานได้ดี แต่ในบางแอปพลิเคชันอาจทำให้เกิดปัญหาได้ นั่นคือข้อเท็จจริงที่ว่าหากอินพุตทั้งสองเป็นหนึ่ง เอาต์พุตก็จะเป็นหนึ่งเช่นกัน ถ้าเรามีแอปพลิเคชันที่เราไม่ต้องการสิ่งนี้ บางทีเรากำลังสร้างแอดเดอร์ เราจะใช้สิ่งที่เรียกว่า Exclusive Or Gate ซึ่งย่อมาจาก XOR หรือ EOR

ขั้นตอนที่ 1: ออกแบบ

ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ

วิธีหนึ่งในการบรรลุพฤติกรรม XOR คือการใช้เกท OR ปกติ จากนั้นจัดการกับกรณีที่อินพุตทั้งสองเป็นค่าบวก ถ้าเราผูกเกท AND เข้ากับอินพุต เราสามารถรับสัญญาณได้เมื่อกรณีนั้นปรากฏขึ้น จากนั้นเราสามารถนำสัญญาณนั้น กลับด้าน จากนั้นผูกสัญญาณนั้นกับเอาต์พุตของเกท OR ไปยังเกทอื่นและ สิ่งนี้จะทำให้เมื่อใดก็ตามที่อินพุตไม่ได้เปิดอยู่ ประตู OR จะผ่านเกตที่สองและเกท แต่เมื่ออินพุตทั้งสองสูงขึ้น ประตูแรกและเกตจะปิดประตูที่สองและเก็บไว้ เอาต์พุตปิดโดยไม่คำนึงถึงสถานะของเกต OR

การปรับอย่างหนึ่งที่ฉันได้ทำในวงจรสุดท้ายคือการสลับการรวมกันของ AND/NOT สำหรับเกท NAND ซึ่งเป็นเกท AND กลับด้าน แนวทางการทำงานนี้จะปรากฏให้เห็นในภายหลัง

ทีนี้มาเขียนแผนผังเดียวกันกัน แต่มีทรานซิสเตอร์และตัวต้านทาน ประเภทของทรานซิสเตอร์ที่ฉันใช้คือ 2N2222 BJT ซึ่งค่อนข้างธรรมดา (2N4401 และ 2N3904 ก็ใช้งานได้) ฉันใช้ทรานซิสเตอร์ 6 ตัว, ตัวต้านทาน 20k 3 ตัว, ตัวต้านทาน 3 47k โอห์ม 3 ตัว, ตัวต้านทาน 1 510 โอห์ม, ปุ่มกดสองตัวและ LED ฉันเลือกค่าตัวต้านทานเหล่านี้ตามแหล่งพลังงาน 5v ของฉัน และกระแสขั้นต่ำ 0.1mA หรือ 0.0001A สำหรับ 2N2222 ถ้าคุณใช้กฎของโอห์มในการคำนวณความต้านทานที่ถูกต้องต่อกราวด์สำหรับค่าเหล่านั้น คุณจะได้ 50,000 โอห์ม 47k ohms ใกล้พอสำหรับเกต NAND ล่าง แต่ทำไมค่าที่ต่ำกว่าสำหรับเกท OR และอินพุตแรกของเกท AND ที่สอง เหตุผลก็เพราะอีซีแอลของทรานซิสเตอร์ที่ประกอบเป็นเกท OR เชื่อมต่อผ่านฐานของทรานซิสเตอร์อีกตัวหนึ่ง ดังนั้นจึงวิ่งผ่านตัวต้านทานตัวที่สอง ไม่ใช่ลงกราวด์โดยตรง (ตัวต้านทานจำกัดกระแสของ LED มีค่าต่ำพอที่จะไม่มีนัยสำคัญในการคำนวณนี้)

ขั้นตอนที่ 2: การเพิ่มทรานซิสเตอร์ ปุ่ม และ LED

การเพิ่มทรานซิสเตอร์ ปุ่ม และไฟ LED
การเพิ่มทรานซิสเตอร์ ปุ่ม และไฟ LED

ขั้นตอนที่ 3: การเพิ่มตัวต้านทาน

การเพิ่มตัวต้านทาน
การเพิ่มตัวต้านทาน

ขั้นตอนที่ 4: การเพิ่มสาย

การเพิ่มสาย
การเพิ่มสาย
การเพิ่มสาย
การเพิ่มสาย

วิธีที่ฉันจ่ายไฟให้บอร์ดของฉันคือการต่อรางจ่ายไฟเข้ากับแหล่งจ่ายไฟสำหรับห้องปฏิบัติการที่ตั้งค่ากระแสไฟสูงสุด 5v และ 500mA อินพุตแบบเดียวกันสามารถทำได้โดยต่อไฟเข้ากับพิน 5V และ GND ของ Arduino แต่แหล่งจ่ายไฟ 5v ใช้งานได้จริง (แม้ว่าขอแนะนำให้ใช้อันที่ จำกัด ในปัจจุบันเพื่อลดความเสี่ยงที่ส่วนประกอบจะระเบิด)

ขั้นตอนที่ 5: การทดสอบและการแก้ไขปัญหา

เมื่อเชื่อมต่อแล้ว ฉันจะให้คุณทดสอบด้วยตัวเอง หากกดปุ่มใดปุ่มหนึ่ง ไฟ LED จะสว่างขึ้น อย่างไรก็ตาม หากผลักทั้งคู่ ไฟ LED จะดับลง

ปัญหาทั่วไป

  1. หากดูเหมือนว่าอินพุตหนึ่งไม่ทำงานอย่างที่ควรจะเป็น และกรณีที่อินพุตทั้งสองเปิดอยู่ยังคงเป็นศูนย์ ให้ตรวจสอบแรงดันไฟฟ้าที่อินพุตของเกท AND ที่มาจากเกท OR เมื่อกดปุ่มนั้น ถ้ามันต่ำ (< 2V) ให้ลดความต้านทานของตัวต้านทานที่ไปจาก OR ไปยังเกท AND
  2. หากเกตยังคงทำหน้าที่เป็นเกท OR ซึ่งหมายความว่าเมื่ออินพุททั้งสองอยู่บนเอาต์พุตเปิดอยู่ ให้ตรวจสอบแรงดันไฟฟ้าที่เข้ามาในอินพุทของเกท AND ที่มาจากเกท NAND หากค่านั้นสูงเมื่อกดปุ่มทั้งสอง ตรวจสอบให้แน่ใจว่าทรานซิสเตอร์ในเกท AND ทำงาน และตรวจสอบความต้านทานจากที่นั่นถึงกราวด์เมื่อกดปุ่มทั้งสอง หากความต้านทานนั้นสูงและ/หรือแรงดันไฟฟ้าต่ำ ให้เปลี่ยนทรานซิสเตอร์สองตัวนั้น หรือลดความต้านทานของอินพุตไปที่เกท NAND

ขั้นตอนที่ 6: ต้องการเพิ่มเติมหรือไม่

หากคุณชอบคำแนะนำนี้ ให้ลองดูหนังสือของฉันใน Amazon ที่ชื่อว่า "The Beginners Guide to Arduino" มันใช้หลักการพื้นฐานของวงจรเช่นเดียวกับการใช้รหัส C ++ ที่ใช้ในการเขียนโปรแกรม Arduino

แนะนำ: