فهرست مطالب:

از ترانزیستورها یک دروازه XOR بسازید: 6 مرحله
از ترانزیستورها یک دروازه XOR بسازید: 6 مرحله

تصویری: از ترانزیستورها یک دروازه XOR بسازید: 6 مرحله

تصویری: از ترانزیستورها یک دروازه XOR بسازید: 6 مرحله
تصویری: How does a COMPUTER CPU actually WORK? 2024, نوامبر
Anonim
از ترانزیستورها یک دروازه XOR بسازید
از ترانزیستورها یک دروازه XOR بسازید

OR دروازه ها بسیار مفید هستند ، اما دارای یک ویژگی عجیب هستند که می تواند به خوبی کار کند ، اما در برنامه های خاص می تواند مشکلاتی را ایجاد کند. این واقعیت است که اگر هر دو ورودی یک باشند ، خروجی نیز یک است. اگر برنامه ای داشتیم که نمی خواستیم ، شاید در حال ساخت یک جمع کننده بودیم ، از چیزی به نام Exclusive Or Gate ، که مخفف XOR یا EOR است ، استفاده می کردیم.

مرحله 1: طراحی

طرح
طرح
طرح
طرح
طرح
طرح

یک راه برای دستیابی به رفتار XOR این است که از یک دروازه OR معمولی استفاده کنید ، سپس با موردی که هر دو ورودی مثبت هستند برخورد کنید. اگر یک دروازه AND را به ورودی ها وصل کنیم ، با نمایش آن مورد می توانیم یک سیگنال دریافت کنیم. سپس می توانیم آن سیگنال را گرفته ، آن را وارونه کنیم ، سپس آن و خروجی دروازه OR را به یک دروازه AND دیگر گره بزنیم. این امر باعث می شود تا هر زمان که هر دو ورودی روشن نباشد ، دروازه OR به سادگی از دومین دروازه AND عبور کند ، اما وقتی هر دو ورودی بالا رفتند ، دروازه اول AND دروازه دوم AND را بسته و نگه می دارد خروجی خاموش بدون در نظر گرفتن وضعیت دروازه OR.

یکی از تنظیماتی که من در مدار نهایی انجام دادم ، تغییر ترکیب AND/NOT برای یک دروازه NAND است که فقط یک دروازه AND معکوس است. نحوه عملکرد این روش بعداً آشکار خواهد شد.

حالا اجازه دهید همان طرح کلی را بنویسیم ، اما با ترانزیستورها و مقاومت ها. نوع ترانزیستوری که استفاده کردم 2N2222 BJT است که نسبتاً متداول است (2N4401 و 2N3904 نیز کار می کنند). من از 6 ترانزیستور ، 3 مقاومت 20k اهم ، 3 مقاومت 47k اهم ، 1 مقاومت 510 اهم ، دو دکمه فشاری و یک LED استفاده کردم. این مقادیر مقاومت را بر اساس منبع تغذیه 5 ولت و 0.1 میلی آمپر یا حداقل جریان 0.0001A برای 2N2222 انتخاب کردم. اگر از قانون اهم برای محاسبه مقاومت صحیح در برابر زمین برای این مقادیر استفاده کنید ، 50،000 اهم دریافت می کنید. 47k اهم به اندازه کافی برای دروازه NAND پایین تر است ، اما چرا مقدار پایین تر برای دروازه OR ، و اولین ورودی گیت AND دوم؟ دلیل این امر این است که ساطع کننده ترانزیستورهایی که دروازه OR را تشکیل می دهند از طریق ترانزیستور دیگری به یکدیگر متصل می شوند ، بنابراین از طریق مقاومت دوم عبور می کنند ، نه مستقیماً به زمین. (مقاومت محدودکننده LED یک مقدار کافی پایین است که در این محاسبه ناچیز است).

مرحله 2: اضافه کردن ترانزیستورها ، دکمه ها و LED

اضافه کردن ترانزیستورها ، دکمه ها و LED
اضافه کردن ترانزیستورها ، دکمه ها و LED

مرحله 3: افزودن مقاومت ها

افزودن مقاومت ها
افزودن مقاومت ها

مرحله 4: اضافه کردن سیم

افزودن سیم
افزودن سیم
افزودن سیم
افزودن سیم

نحوه تغذیه برد من این است که ریل های برق را به منبع تغذیه نیمکت آزمایشگاهی متصل می کنم که روی حداکثر جریان 5 ولت و 500 میلی آمپر تنظیم شده است. همان نوع ورودی را می توان با اتصال قدرت به پین های 5 ولت و GND آردوینو به دست آورد ، اما در واقع یک منبع تغذیه 5 ولت کار می کند (اگرچه برای کاهش خطر انفجار قطعات ، محدودیت فعلی توصیه می شود).

مرحله 5: آزمایش و عیب یابی

حالا که وصل شده است ، به شما اجازه می دهم خود را آزمایش کنید. اگر یکی از دکمه ها فشار داده شود ، LED باید روشن شود. اگر هر دو تحت فشار قرار گیرند ، LED خاموش می شود.

مشکلات رایج

  1. اگر به نظر می رسد که یک ورودی آنطور که باید کار نمی کند ، و در صورتی که هر دو ورودی همچنان صفر هستند ، ولتاژ ورودی گیت AND را که هنگام فشار دادن دکمه از دروازه OR می آید ، بررسی کنید. اگر کم است (<2V) ، مقاومت مقاومت را از OR به دروازه AND کاهش دهید.
  2. اگر گیت هنوز مانند یک دروازه OR عمل می کند ، به این معنی که وقتی هر دو ورودی در خروجی هستند روشن است ، ولتاژ ورودی ورودی AND را که از دروازه NAND وارد می شود بررسی کنید. اگر با فشار دادن هر دو دکمه این مقدار زیاد است ، مطمئن شوید که ترانزیستورهای شما در دروازه AND کار می کنند و وقتی هر دو دکمه را فشار می دهید ، مقاومت را از آنجا به زمین بررسی کنید. اگر این مقاومت زیاد است و/یا آن ولتاژ کم است ، آن دو ترانزیستور را جایگزین کنید یا مقاومت ورودی ها را در برابر دروازه های NAND کاهش دهید.

مرحله 6: بیشتر می خواهید؟

اگر این دستورالعمل را دوست داشتید ، بروید و کتاب من را در آمازون با عنوان "راهنمای مبتدیان آردوینو" بررسی کنید. این به اصول اولیه مدار و همچنین کد C ++ مورد استفاده برای برنامه نویسی آردوینو می پردازد.

توصیه شده: