🔗 گیت منطقی AND (AND Gate (74HC08))
| اسم انگلیسی | AND Gate (74HC08) |
|---|---|
| در ووکوی (Wokwi) | نسخهی آمادهای سراغ نداریم |
| دسته | 🔀 گیتهای منطقی |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
گیت منطقی AND (AND Gate) مداری است که خروجیاش فقط وقتی ۱ (HIGH) میشود که همهی ورودیهایش ۱ باشند. در دنیای واقعی گیتها داخل آیسیهای کوچک ۱۴ پایهاند؛ آیسی 74HC08 چهار گیت AND دوورودی مستقل دارد. با AND قفل دوکلیدی، کنترل «دودستی» دستگاه پرس (فقط وقتی هر دو دست روی دکمهاند کار کند) یا شرط «هوا تاریک است و کسی آمده» را بدون میکروکنترلر میسازی. در این صفحه آردوینو را به یک «تستر آیسی» تبدیل میکنیم که جدول درستی 74HC08 را خودش امتحان میکند.
گیت AND در ووکوی (Wokwi)
ووکوی در بخش منطق (Logic) گیتهای سادهای مثل AND، OR، NOT و XOR دارد که میتوانی با کلید و LED به هم وصلشان کنی و جدول درستی را ببینی. ولی تا جایی که میدانیم ووکوی نسخهی آمادهی این قطعه را به شکل آیسی ۱۴ پایهی 74HC08، با پایههای تغذیه و چهار گیت، ندارد. برای همین سیمکشی واقعی آیسی را باید روی بردبورد یا در یک شبیهساز مداری تمرین کنی.
در تینکرکد فارسی گیت AND رایگان است و هم در مود ساده و هم در مود آردوینو هست. مدار آمادهی گیت AND با دو دکمه را باز کن یا درس گیت AND در دورهی برق را برو.
سیمکشی با آردوینو
از گیت اول آیسی استفاده میکنیم. آردوینو دو ورودی را میراند و خروجی را میخواند؛ یک LED هم روی خروجی میگذاریم تا نتیجه را با چشم هم ببینی. شمارهی پایهها از گوشهی کنار فرورفتگی (نیمدایره) روی بدنه شروع میشود و خلاف عقربههای ساعت میچرخد.
| پایهی قطعه | وصل به |
|---|---|
| پایهی ۱ (1A) | پین 2 |
| پایهی ۲ (1B) | پین 3 |
| پایهی ۳ (1Y) | پین 4، و از راه مقاومت ۲۲۰ اهم به آند LED (کاتد به GND) |
| پایهی ۱۴ (VCC) | 5V |
| پایهی ۷ (GND) | GND |
| ورودیهای گیتهای بیاستفاده (۴، ۵، ۹، ۱۰، ۱۲، ۱۳) | GND |
کد نمونه
برنامه هر چهار حالت ورودی (00، 01، 10، 11) را یکییکی روی پینهای 2 و 3 میگذارد، خروجی گیت را میخواند، با جواب درست (a & b) مقایسه میکند و در آخر میگوید آیسی سالم است یا نه. همین کد با عوض کردن یک خط، تستر 74HC32 یا 74HC86 هم میشود.
// 74HC08 tester: drive A and B, read Y, compare with A AND B.
const int PIN_A = 2;
const int PIN_B = 3;
const int PIN_Y = 4;
void setup() {
Serial.begin(9600);
pinMode(PIN_A, OUTPUT);
pinMode(PIN_B, OUTPUT);
pinMode(PIN_Y, INPUT);
Serial.println("A B | Y expected");
int errors = 0;
for (int row = 0; row < 4; row++) {
int a = (row >> 1) & 1;
int b = row & 1;
digitalWrite(PIN_A, a);
digitalWrite(PIN_B, b);
delay(5); // let the gate settle
int y = digitalRead(PIN_Y);
int expected = a & b; // change this line for OR or XOR
Serial.print(a);
Serial.print(" ");
Serial.print(b);
Serial.print(" | ");
Serial.print(y);
Serial.print(" ");
Serial.println(expected);
if (y != expected) errors++;
}
Serial.println(errors == 0 ? "PASS: the gate works" : "FAIL: check wiring or chip");
}
void loop() {
}
دکمهی Reset آردوینو را بزن تا تست دوباره اجرا شود.
اشتباههای رایج
- ورودیهای رها: ورودیهای CMOS سری 74HC اگر به جایی وصل نباشند شناور میمانند؛ گیتهای بیاستفاده نوسان میکنند، جریان اضافه میکشند و آیسی گرم میشود. ورودیهای بیاستفاده را به GND یا VCC ببند.
- فراموش کردن تغذیه: آیسی گیت هم برق میخواهد. پایههای ۱۴ و ۷ در نقشههای منطقی معمولاً کشیده نمیشوند و برای همین زیاد فراموش میشوند؛ بدون آنها خروجی هیچ معنایی ندارد.
- شمردن پایهها از گوشهی اشتباه: پایهی ۱ کنار فرورفتگی یا نقطهی روی بدنه است. اگر آیسی را برعکس بگذاری، VCC و GND جابهجا میشوند و آیسی میسوزد.
- 74HC با برد ۳٫۳ ولتی: 74HC از ۲ تا ۶ ولت کار میکند، ولی اگر با ۵ ولت تغذیهاش کنی، سطح HIGH ۳٫۳ ولتی ESP32 یا پیکو را مطمئن HIGH نمیبیند. یا آیسی را با ۳٫۳ ولت تغذیه کن یا نسخهی 74HCT را بگیر.
آموزشهای مرتبط
- مدار منطقی و دیجیتال: گیت AND، OR، NOT و XOR تا شمارنده
- شبیهسازی مدار در ووکوی: دقیقاً چه چیزی شبیهسازی میشود؟
- گیت OR و آیسی 74HC32
- گیت NOT؛ همراه AND یک NAND میسازد
سؤالهای رایج
پایههای آیسی 74HC08 چطور است؟
چهار گیت AND دارد. ورودیهای گیت اول پایهی ۱ و ۲ و خروجیاش پایهی ۳ است؛ پایهی ۷ زمین و پایهی ۱۴ تغذیه است. شمارش از کنار فرورفتگی بدنه شروع میشود و خلاف عقربههای ساعت میچرخد.
ووکوی گیت AND دارد؟
ووکوی در بخش منطق گیتهای ساده مثل AND دارد، ولی تا جایی که میدانیم آیسی ۱۴ پایهی 74HC08 را آماده ندارد. گیت AND در تینکرکد فارسی رایگان شبیهسازی میشود.