🧮 شیفترجیستر 74HC595 (74HC595 Shift Register)
| اسم انگلیسی | 74HC595 Shift Register |
|---|---|
| در ووکوی (Wokwi) | wokwi-74hc595 |
| دسته | ⬛ آیسی، درایور و رگولاتور |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
شیفترجیستر 74HC595 (74HC595 Shift Register) آیسی شانزدهپایهای است که با سه سیم از آردوینو، هشت خروجی مستقل میسازد. بیتها را یکییکی و پشت سر هم میگیرد و با یک فرمان «قفل» (Latch) همه را با هم روی پایههای Q0 تا Q7 میگذارد. با آن ردیف LED، نوار نوری نایت رایدر، نمایشگر هفتقسمتی و حتی ماتریس LED را بدون تمام شدن پایههای اونو راه میاندازی، و اگر هشت خروجی کم بود، چند آیسی را زنجیر میکنی.
74HC595 در ووکوی (Wokwi)
ووکوی این آیسی را با شناسهی wokwi-74hc595 دارد و پایههایش همان اسمهای دیتاشیت را دارند. کمترین diagram.json برای یک LED روی Q0 این است:
{
"version": 1,
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0 },
{ "type": "wokwi-74hc595", "id": "sr1", "top": -120, "left": 80 },
{ "type": "wokwi-resistor", "id": "r1", "top": -180, "left": 200, "attrs": { "value": "220" } },
{ "type": "wokwi-led", "id": "led1", "top": -240, "left": 280, "attrs": { "color": "red" } }
],
"connections": [
[ "uno:11", "sr1:DS", "blue", [] ],
[ "uno:12", "sr1:SHCP", "orange", [] ],
[ "uno:8", "sr1:STCP", "yellow", [] ],
[ "uno:5V", "sr1:VCC", "red", [] ],
[ "uno:5V", "sr1:MR", "red", [] ],
[ "uno:GND.1", "sr1:GND", "black", [] ],
[ "uno:GND.1", "sr1:OE", "black", [] ],
[ "sr1:Q0", "r1:1", "green", [] ],
[ "r1:2", "led1:A", "green", [] ],
[ "uno:GND.1", "led1:C", "black", [] ]
]
}
| پایه در ووکوی | کار | وصل به |
|---|---|---|
| DS | ورودی دادهی سریال | uno:11 |
| SHCP | کلاک شیفت (Clock) | uno:12 |
| STCP | کلاک قفل (Latch) | uno:8 |
| OE | فعالسازی خروجی، فعالپایین | GND |
| MR | ریست، فعالپایین | 5V |
| Q0 تا Q7 | هشت خروجی | هر کدام با یک مقاومت به یک LED |
| Q7S | خروجی سریال برای زنجیر | DS آیسی بعدی |
| VCC / GND | تغذیه | 5V / GND |
هفت LED دیگر را هم به همین شکل به Q1 تا Q7 بده. در تینکرکد فارسی هم 74HC595 در هر دو مود رایگان است؛ پروژهی آمادهاش ۸ LED با ۳ پین است.
سیمکشی با آردوینو
| پایهی آیسی (شماره) | وصل به |
|---|---|
| DS (۱۴) | پین 11 |
| SHCP (۱۱) | پین 12 |
| STCP (۱۲) | پین 8 |
| OE (۱۳) | GND |
| MR (۱۰) | 5V |
| VCC (۱۶) و GND (۸) | 5V و GND، با یک خازن ۰٫۱ میکروفاراد کنار آیسی |
| Q0 (۱۵) و Q1 تا Q7 (۱ تا ۷) | مقاومت ← آند LED، کاتد به GND |
| Q7S (۹) | آزاد، یا DS آیسی دوم |
عددهای پایهی آیسی با عددهای پین آردوینو قاطی نشوند: «پایهی ۱۱ آیسی» به «پین 12 آردوینو» میرود.
کد نمونه
// 74HC595: binary counter, then a running light, on 8 LEDs.
const int DATA_PIN = 11; // DS
const int CLOCK_PIN = 12; // SHCP
const int LATCH_PIN = 8; // STCP
void writeByte(byte value) {
digitalWrite(LATCH_PIN, LOW);
shiftOut(DATA_PIN, CLOCK_PIN, MSBFIRST, value);
digitalWrite(LATCH_PIN, HIGH); // all 8 outputs change together here
}
void setup() {
pinMode(DATA_PIN, OUTPUT);
pinMode(CLOCK_PIN, OUTPUT);
pinMode(LATCH_PIN, OUTPUT);
}
void loop() {
for (int n = 0; n < 256; n++) { // count 0..255 in binary
writeByte(n);
delay(60);
}
for (int i = 0; i < 8; i++) { // one LED walks from Q0 to Q7
writeByte(1 << i);
delay(120);
}
}
با MSBFIRST بیت هفتم اول فرستاده میشود و آخر کار روی Q7 مینشیند؛ پس عدد ۱ یعنی فقط Q0 روشن. برای دو آیسی زنجیری، Q7S اولی را به DS دومی بده، دو کلاک را مشترک کن و قبل از بالا بردن latch دو بار shiftOut بزن؛ بایتی که اول میفرستی به آیسی دورتر میرسد.
اشتباههای رایج
- OE و MR آزاد ماندهاند: OE باید به GND و MR به 5V برود؛ وگرنه خروجیها خاموش میمانند یا آیسی تصادفی ریست میشود.
- جابهجایی SHCP و STCP: LEDها بهجای الگوی مرتب، چشمکهای عجیب میزنند.
- جریان کل زیاد: کل جریان آیسی حدود ۷۰ میلیآمپر مجاز است؛ هشت LED با ۲۰ میلیآمپر از آن بیشتر میشوند. مقاومت ۴۷۰ اهم تا ۱ کیلواهم بگذار.
- ترتیب بیتها: اگر الگو برعکس دیده میشود،
MSBFIRSTرا باLSBFIRSTعوض کن.
آموزشهای مرتبط
- ۴۰ مدار آردوینو برای ووکوی (مدار ۸ LED با شیفت رجیستر)
- گسترش خروجی با 74HC595 در ۱۵ مدار پایه
- مدار منطقی و دیجیتال تا شمارنده
- نمایشگر هفتقسمتی در ووکوی
- درس شیفت رجیستر
سؤالهای رایج
چند 74HC595 را میشود پشت سر هم زنجیر کرد؟
از نظر منطقی محدودیتی نیست: Q7S هر آیسی به DS آیسی بعدی میرود و پایههای SHCP و STCP همه مشترکاند. هر آیسی هشت خروجی اضافه میکند و فقط به ازای هر کدام یک shiftOut بیشتر میزنی. در عمل طول سیم کلاک و تغذیهی کافی محدودیت میشوند.
74HC595 در ووکوی چه شناسهای دارد؟
wokwi-74hc595. پایههایش DS، SHCP، STCP، OE، MR، Q0 تا Q7، Q7S، VCC و GND هستند؛ همان اسمهای دیتاشیت.
با 74HC595 میشود دکمه خواند؟
نه، 74HC595 فقط خروجی میدهد. برای خواندن چند دکمه با چند سیم، آیسی 74HC165 ساخته شده که ورودی موازی میگیرد و خروجی سریال میدهد.