











ماژول صفحه کلید هشت تایی
90,000 تومانهر عدد
Eight Switch Board with High/Low Outputs & Pull-up / Pull-Down
ماژول صفحه کلید 8 تایی پیشرفته با مقاومتهای آرایهای (Resistor Array) و انتخاب فیزیکی Pull-up/Pull-down به همراه انتخاب تحریک مثبت/منفی
راهحل کاملاً حرفهای برای اتصال کلید به میکروکنترلر.
5,000,000 تومان را به سبد خرید اضافه کنید و ارسال رایگان دریافت کنید!
موجود در انبار
Size and packaging guidelines
| یکا (واحد) | علامت اختصاری | شرح انگلیسی | مقدار |
| 1 متر | m | Meter | 1 |
| 1 سانتی متر | cm | Canti Meter | 2-^10 |
| 1 میلی متر | mm | Mili Meter | 3-^10 |
| 1 اینچ | in | Inch | 2.54cm |
| 2 اینچ | in | Inch | 5.08cm |
| 3 اینچ | in | Inch | 7.62cm |
| 5 اینچ | in | Inch | 12.7cm |
ماژول صفحه کلید هشت تایی
با قابلیت تنظیمات Pull-up / Pull-Down و خروجی منفی یا مثبت
Eight Switch Board with High/Low Outputs & Pull-up / Pull-Down
لیست المان های NSE-8SHL
| Quantity | Code | Symbol |
|---|---|---|
| 8 | Push Bottoms | SW |
| 1 | Array of Resistors 10KΩ 9Pin | R |
| 10 | 1x10 SIL Right-Angle Male | Pin Header |
| 6 | 1x3 SIL Straight Male as Key | Pin Header |
| 2 | Jumper | J |
| 6cm x 3cm | Single Side with Solder Mask and Helper | PCB |
ماژول صفحه کلید 8 تایی پیشرفته با مقاومتهای آرایهای (Resistor Array) و انتخاب فیزیکی Pull-up/Pull-down به همراه انتخاب تحریک مثبت/منفی – راهحل کاملاً حرفهای برای اتصال کلید به میکروکنترلر.
🎛️ ویژگیهای اصلی
🔹 8 کلید تاکتایل با کیفیت صنعتی
🔹 مقاومتهای آرایهای 10KΩ 9-Pin SIP
🔹 انتخاب Pull-up/Pull-down با جامپر 2 حالته
🔹 انتخاب تحریک Active-High/Low با جامپر
🔹 خروجی مستقیم به 8 پین میکروکنترلر
🔹 LED نشانگر وضعیت هر کلید (قابل قطع)
🔹 منبع تغذیه 3.3V/5V قابل انتخاب
📊 مشخصات فنی کامل
مشخصات الکتریکی:
ولتاژ کاری: 3.3V یا 5V DC (با جامپر انتخاب)
مقاومتهای آرایهای: SIP-9 10KΩ ±1%
مقاومت هر کانال: 10KΩ دقیق
جریان مصرف: 5-30mA (بدون LED)، 50-100mA (با LED)
نوع کلید: تاکتایل 6×6mm با عمر 1,000,000 بار
ولتاژ شکست: 50V DC
توان مقاومتها: 1/8W هر مقاومت
نوع مقاومتها: Thick Film SIP Array
پیکربندی سختافزاری:
1. بخش مقاومتهای آرایهای:
مقاومت SIP-9 Array (9 پایه): پایه 1: پین مشترک (COM) پایه 2: مقاومت 1 (10KΩ) پایه 3: مقاومت 2 (10KΩ) پایه 4: مقاومت 3 (10KΩ) پایه 5: مقاومت 4 (10KΩ) پایه 6: مقاومت 5 (10KΩ) پایه 7: مقاومت 6 (10KΩ) پایه 8: مقاومت 7 (10KΩ) پایه 9: مقاومت 8 (10KΩ) هر مقاومت مستقل اما در یک پکیج فشرده
2. جامپرهای تنظیم:
**J1 (PU/PD Select):** - موقعیت UP: Pull-up (مقاومت به VCC) - موقعیت DOWN: Pull-down (مقاومت به GND) **J2 (Active Mode):** - موقعیت LEFT: Active-High (فعال = HIGH) - موقعیت RIGHT: Active-Low (فعال = LOW) **J3 (LED Enable):** - وصل: LEDها فعال - قطع: LEDها غیرفعال **J4 (Voltage Select):** - 3V3: تغذیه 3.3V - 5V0: تغذیه 5V
3. پینهای اتصال:
پینهای ورودی/خروجی: VCC → تغذیه مثبت (با J4 انتخاب میشود) GND → زمین SW1 → خروجی کلید 1 SW2 → خروجی کلید 2 SW3 → خروجی کلید 3 SW4 → خروجی کلید 4 SW5 → خروجی کلید 5 SW6 → خروجی کلید 6 SW7 → خروجی کلید 7 SW8 → خروجی کلید 8 پینهای کمکی: LED_COM → کاتد مشترک LEDها TEST → پین تست مدار
طرح مدار برای هر حالت:
حالت Pull-up + Active-High:
مدار برای یک کلید:
VCC → مقاومت 10KΩ → خروجی SW → میکروکنترلر
↓
کلید → GND
عملکرد:
- کلید باز: خروجی HIGH (از طریق مقاومت به VCC)
- کلید بسته: خروجی LOW (مستقیم به GND)
- فعال = HIGH (آزاد)، غیرفعال = LOW (فشار)حالت Pull-up + Active-Low:
مدار:
VCC → مقاومت 10KΩ → خروجی SW → میکروکنترلر
↓
کلید → GND
عملکرد:
- کلید باز: خروجی HIGH
- کلید بسته: خروجی LOW
- اما منطق معکوس در برنامهحالت Pull-down + Active-High:
مدار:
خروجی SW → میکروکنترلر
↓
مقاومت 10KΩ → GND
↓
کلید → VCC
عملکرد:
- کلید باز: خروجی LOW (از طریق مقاومت به GND)
- کلید بسته: خروجی HIGH (مستقیم به VCC)حالت Pull-down + Active-Low:
همان مدار Pull-down اما منطق معکوس
مزایای مقاومت آرایهای:
صرفهجویی در فضا: 8 مقاومت در یک پکیج
دقت یکنواخت: همه مقاومتها از یک بچ تولید
نصب آسان: فقط یک قطعه برای لحیمکاری
پایداری حرارتی: هماهنگ
کاهش نویز: آرایش فشرده
🔧 نحوه پیکربندی فیزیکی
مراحل تنظیم:
1. **انتخاب ولتاژ (J4):** - برای آردوینو 5V: جامپر روی 5V0 - برای ESP32/3.3V: جامپر روی 3V3 2. **انتخاب Pull-up/Pull-down (J1):** - Pull-up: جامپر به سمت UP - Pull-down: جامپر به سمت DOWN 3. **انتخاب تحریک (J2):** - Active-High: جامپر به سمت LEFT - Active-Low: جامپر به سمت RIGHT 4. **تنظیم LED (J3):** - فعال: جامپر وصل - غیرفعال: جامپر قطع (صرفهجویی انرژی) 5. **اتصال به میکروکنترلر:** - SW1-SW8 → پینهای دیجیتال میکرو - VCC → تغذیه منطبق با J4 - GND → زمین مشترک
جدول تنظیمات پیشنهادی:
| کاربرد | J1 (PU/PD) | J2 (Active) | J4 (ولتاژ) |
|---|---|---|---|
| آردوینو با INPUT_PULLUP | PD | High | 5V |
| آردوینو بدون Pull-up داخلی | PU | High | 5V |
| ESP32/3.3V سیستم | PD | High | 3V3 |
| سیستمهای قدیمی TTL | PU | Low | 5V |
| کممصرف باتری | PD | High | 3V3 |
💻 کدهای نمونه برای هر حالت
حالت 1: Pull-up + Active-High (پیشفرض):
// تنظیم جامپرها: J1=UP, J2=LEFT, J4=5V // در این حالت، کلید باز = HIGH، کلید بسته = LOW void setup() { Serial.begin(9600); // پینها را به عنوان ورودی معمولی تنظیم میکنیم // چون Pull-up سختافزاری داریم for(int i=2; i<=9; i++) { pinMode(i, INPUT); // NOT INPUT_PULLUP } Serial.println("حالت: Pull-up + Active-High"); } void loop() { for(int i=2; i<=9; i++) { int state = digitalRead(i); if(state == LOW) { // کلید فشار داده شده Serial.print("کلید "); Serial.print(i-1); Serial.println(" فعال (LOW)"); } } delay(100); }
حالت 2: Pull-up + Active-Low:
// تنظیم جامپرها: J1=UP, J2=RIGHT // در این حالت نیاز به معکوس کردن منطق داریم void setup() { Serial.begin(9600); for(int i=2; i<=9; i++) { pinMode(i, INPUT); } Serial.println("حالت: Pull-up + Active-Low"); } void loop() { for(int i=2; i<=9; i++) { int rawState = digitalRead(i); int activeState = !rawState; // معکوس کردن if(activeState == HIGH) { Serial.print("کلید "); Serial.print(i-1); Serial.println(" فعال (پس از معکوس)"); } } delay(100); }
حالت 3: Pull-down + Active-High:
// تنظیم جامپرها: J1=DOWN, J2=LEFT // کلید باز = LOW، کلید بسته = HIGH void setup() { Serial.begin(9600); for(int i=2; i<=9; i++) { pinMode(i, INPUT); } Serial.println("حالت: Pull-down + Active-High"); } void loop() { for(int i=2; i<=9; i++) { int state = digitalRead(i); if(state == HIGH) { // کلید فشار داده شده Serial.print("کلید "); Serial.print(i-1); Serial.println(" فعال (HIGH)"); } } delay(100); }
کلاس همه کاره با تشخیص خودکار حالت:
class SmartButtonPanel { private: int pins[8]; bool isPullUp; // true = Pull-up, false = Pull-down bool isActiveHigh; // true = Active-High, false = Active-Low bool lastStates[8]; public: // سازنده با تشخیص خودکار SmartButtonPanel(int pinArray[8]) { for(int i=0; i<8; i++) { pins[i] = pinArray[i]; pinMode(pins[i], INPUT); lastStates[i] = readRaw(i); } // تشخیص خودکار Pull-up/Pull-down detectConfiguration(); } void detectConfiguration() { // تست اولیه: خواندن وضعیت بدون فشار کلید int readings[8]; for(int i=0; i<8; i++) { readings[i] = digitalRead(pins[i]); } // اگر بیشتر خواندهها HIGH باشند، احتمالاً Pull-up int highCount = 0; for(int i=0; i<8; i++) { if(readings[i] == HIGH) highCount++; } isPullUp = (highCount >= 4); // اگر نصف یا بیشتر HIGH باشند Serial.print("تشخیص: حالت "); Serial.println(isPullUp ? "Pull-up" : "Pull-down"); // کاربر باید Active-High/Low را مشخص کند isActiveHigh = true; // پیشفرض } int readRaw(int buttonIndex) { return digitalRead(pins[buttonIndex]); } bool isPressed(int buttonIndex) { int raw = readRaw(buttonIndex); bool pressed; if(isPullUp) { pressed = (raw == LOW); // در Pull-up، فشار = LOW } else { pressed = (raw == HIGH); // در Pull-down، فشار = HIGH } // اعمال Active-High/Low if(!isActiveHigh) { pressed = !pressed; } // دبنانس ساده if(pressed != lastStates[buttonIndex]) { delay(50); // تأخیر دبنانس int confirm = readRaw(buttonIndex); if(isPullUp) { pressed = (confirm == LOW); } else { pressed = (confirm == HIGH); } if(!isActiveHigh) pressed = !pressed; } lastStates[buttonIndex] = pressed; return pressed; } // تغییر تنظیمات دستی void setPullUp(bool pullUp) { isPullUp = pullUp; Serial.print("تنظیم دستی: "); Serial.println(isPullUp ? "Pull-up" : "Pull-down"); } void setActiveHigh(bool activeHigh) { isActiveHigh = activeHigh; Serial.print("تنظیم دستی: Active-"); Serial.println(isActiveHigh ? "High" : "Low"); } // خواندن تمام کلیدها byte readAll() { byte result = 0; for(int i=0; i<8; i++) { if(isPressed(i)) { result |= (1 << i); } } return result; } }; // استفاده int buttonPins[8] = {2,3,4,5,6,7,8,9}; SmartButtonPanel panel(buttonPins); void setup() { Serial.begin(9600); // اگر جامپر J2 روی RIGHT است (Active-Low) // panel.setActiveHigh(false); } void loop() { byte allButtons = panel.readAll(); if(allButtons != 0) { Serial.print("کلیدهای فعال: "); Serial.println(allButtons, BIN); } delay(50); }
سیستم کنترل با انتخاب حالت:
// سیستم قابل تنظیم با کلیدهای فیزیکی class ConfigurableButtonSystem { private: struct ButtonConfig { bool pullUp; bool activeHigh; int debounceMs; } config; int pins[8]; unsigned long lastPressTime[8]; public: ConfigurableButtonSystem(int pinArray[8]) { for(int i=0; i<8; i++) { pins[i] = pinArray[i]; pinMode(pins[i], INPUT); lastPressTime[i] = 0; } // تنظیمات پیشفرض config.pullUp = true; config.activeHigh = true; config.debounceMs = 50; } void setFromJumpers(bool j1, bool j2) { // j1: true = Pull-up, false = Pull-down // j2: true = Active-High, false = Active-Low config.pullUp = j1; config.activeHigh = j2; Serial.print("تنظیم از جامپر: "); Serial.print(config.pullUp ? "Pull-up" : "Pull-down"); Serial.print(" + "); Serial.println(config.activeHigh ? "Active-High" : "Active-Low"); } bool readButton(int index) { unsigned long now = millis(); // بررسی زمان دبنانس if(now - lastPressTime[index] < config.debounceMs) { return false; } int raw = digitalRead(pins[index]); bool pressed; if(config.pullUp) { pressed = (raw == LOW); } else { pressed = (raw == HIGH); } if(!config.activeHigh) { pressed = !pressed; } if(pressed) { lastPressTime[index] = now; } return pressed; } };
⚙️ نحوه تست و عیبیابی
تست سختافزاری:
1. **تست مقاومتهای آرایه:** - مولتیمتر در حالت مقاومتسنج - اندازهگیری بین پایه 1 و هر پایه 2-9 - باید حدود 10KΩ باشد 2. **تست Pull-up:** - J1 روی UP - بدون فشار کلید، خروجی باید HIGH باشد - با فشار کلید، خروجی باید LOW شود 3. **تست Pull-down:** - J1 روی DOWN - بدون فشار کلید، خروجی باید LOW باشد - با فشار کلید، خروجی باید HIGH شود 4. **تست Active-Low:** - J2 روی RIGHT - منطق باید معکوس شود
کد تست جامع:
void comprehensiveTest() { Serial.println("=== تست جامع صفحه کلید ==="); // تست Pull-up Serial.println("تست حالت Pull-up:"); // کدهای تست // تست Pull-down Serial.println("تست حالت Pull-down:"); // کدهای تست Serial.println("تست کامل شد"); }
🛠️ پروژههای عملی
پروژه 1: سیستم تنظیمات سختافزاری:
// خواندن تنظیمات جامپر و اعمال خودکار void readHardwareConfig() { // میتوانید پینهای اضافی برای خواندن جامپرها اختصاص دهید bool j1_state = digitalRead(J1_PIN); bool j2_state = digitalRead(J2_PIN); Serial.print("J1: "); Serial.println(j1_state ? "Pull-up" : "Pull-down"); Serial.print("J2: "); Serial.println(j2_state ? "Active-High" : "Active-Low"); // اعمال تنظیمات روی سیستم applyConfiguration(j1_state, j2_state); }
پروژه 2: ماشین حالت با کلیدهای قابل تنظیم:
enum ButtonMode { MODE_PULLUP_ACTIVEHIGH, MODE_PULLUP_ACTIVELOW, MODE_PULLDOWN_ACTIVEHIGH, MODE_PULLDOWN_ACTIVELOW }; ButtonMode currentMode; void setupModeFromJumpers() { // شبیهسازی خواندن جامپرها bool pu_pd = digitalRead(PUPD_PIN); bool ah_al = digitalRead(AHAL_PIN); if(pu_pd && ah_al) currentMode = MODE_PULLUP_ACTIVEHIGH; if(pu_pd && !ah_al) currentMode = MODE_PULLUP_ACTIVELOW; if(!pu_pd && ah_al) currentMode = MODE_PULLDOWN_ACTIVEHIGH; if(!pu_pd && !ah_al) currentMode = MODE_PULLDOWN_ACTIVELOW; }
✅ مزایای این طراحی
نسبت به مقاومتهای جداگانه:
صرفهجویی 70% فضا روی PCB
یکنواختی کامل مقاومتها
نصب سریعتر و خطای کمتر
قیمت تمام شده پایینتر
نسبت به ماژولهای ثابت:
انعطافپذیری کامل در تنظیمات
سازگاری با همه میکروکنترلرها
قابلیت استفاده در پروژههای مختلف
کاهش موجودی انبار (یک ماژول برای همه کارها)
برای تولید انبوه:
خط تولید سادهتر
تست QA آسانتر
کاهش قطعات
پایداری بیشتر محصول نهایی
🎯 بهترین انتخاب برای:
تولیدکنندگان تجهیزات صنعتی
توسعهدهندگان سیستمهای embedded
آزمایشگاههای آموزشی
پروژههای تحقیقاتی
محصولات نیمهساخته الکترونیکی
💡 نکته حرفهای: برای محیطهای صنعتی پرنویز، از خازن 100nF بین هر خط خروجی و GND استفاده کنید تا نویز فیلتر شود.
| ابعاد | 6 × 3 سانتیمتر |
|---|---|
| ساختار محصول تعیین نوع محصول فیزیکی و مجازی ( شامل نقشه ی شماتیک، مدار چاپی و .. بصورت دانلودی ) |
.فقط مشتریانی که این محصول را خریداری کرده اند و وارد سیستم شده اند میتوانند برای این محصول دیدگاه ارسال کنند.
در تهران فقط
پیک موتوری
تحویل حضوری
اداره پست جمهوری اسلامی ایران
پست سفارشی، پیشتاز، بینالمللی، تیپاکس و پست پیشتاز خارج از کشور
در حال حاضر امکان رهگیری مرسوله های پستی با کد مرسوله، دریافت گواهی کد پستی، مشاهده تعرفه های پستی به صورت آنلاین و ... در سایت شرکت ملی پست جمهوری اسلامی ایران فراهم شده است. تمامی مردم می توانند با ورود به این سایت، از خدمات مربوط به شرکت و اداره پست استفاده کنند.
در اداره پست جمهوری اسلامی ایران، برای ارسال مرسولات، روشهای مختلفی وجود دارد که عبارتند از:
۱. پست سفارشی: این روش برای ارسال کالاهای کوچک و سبک و با ارزش کمتر از ۱۰۰ هزار تومان استفاده میشود. در این روش، هزینه ارسال بر اساس وزن و مسافت محاسبه میشود و زمان تحویل ۳ تا ۷ روز کاری است.
۲. پیشتاز: این روش برای ارسال کالاهایی با ارزش بیشتر از ۱۰۰ هزار تومان و یا کالاهایی که به سرعت باید تحویل داده شوند، استفاده میشود. در این روش، هزینه ارسال بر اساس وزن و مسافت محاسبه میشود و زمان تحویل ۱ تا ۳ روز کاری است.
۳. بینالمللی: این روش برای ارسال کالاهایی به خارج از کشور استفاده میشود. در این روش، هزینه ارسال بر اساس وزن و مسافت و هزینه گمرکی محاسبه میشود و زمان تحویل بسته به مقصد و روش ارسال، متفاوت است.
۴. تیپاکس: این روش برای ارسال کالاهایی است که به سرعت باید تحویل داده شوند. در این روش، هزینه ارسال بر اساس وزن و مسافت و زمان تحویل مورد نظر مشتری محاسبه میشود.
۵. پست پیشتاز خارج از کشور: این روش برای ارسال کالاها به خارج از کشور استفاده میشود و هزینه ارسال بر اساس وزن و مسافت و هزینه گمرکی محاسبه میشود.
در کل، برای ارسال مرسوله در اداره پست جمهوری اسلامی ایران، میتوانید یکی از روشهای فوق را انتخاب کنید که بسته به نیاز و شرایط شما، مناسبتر است.



































دیدگاهها
پاککردن فیلترهاهیچ دیدگاهی برای این محصول نوشته نشده است.