🎛️ دیپ سوییچ چهارتایی (DIP Switch (4-position))

اسم انگلیسیDIP Switch (4-position)
در ووکوی (Wokwi)wokwi-dip-switch-8
دسته🎛️ کلید، دکمه و ورودی
در شبیه‌ساز فارسیمود ساده (بدون کد) و مود آردوینو · رایگان

دیپ سوییچ چهارتایی (DIP Switch) چهار کلید ریز کنار هم است که با نوک خودکار ON یا OFF می‌شوند. کار اصلی‌اش تنظیم‌هایی است که کم عوض می‌شوند: آدرس یک دستگاه، کانال ریموت در پارکینگ، یا انتخاب حالت کار برنامه بدون آپلود دوباره. چهار کلید یعنی چهار بیت، یعنی ۱۶ حالت از ۰ تا ۱۵.

دیپ سوییچ در ووکوی (Wokwi)

ووکوی نسخه‌ی چهارتایی ندارد، ولی wokwi-dip-switch-8 با هشت کلید هست؛ چهار کلید اول را استفاده کن و بقیه را خالی بگذار. هر کلید دو پایه‌ی روبه‌روی هم دارد که در حالت ON به هم وصل می‌شوند. اگر نشانگر موس را روی یک پایه نگه داری، ووکوی اسمش را نشان می‌دهد؛ برای همین در این تکه فقط قطعه‌ها آمده‌اند و سیم‌ها را با کلیک می‌کشی:

{
  "version": 1,
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0 },
    { "type": "wokwi-dip-switch-8", "id": "sw1", "top": -110, "left": 100 }
  ],
  "connections": []
}

سیم‌ها: یک ردیف از پایه‌های کلید ۱ تا ۴ به پین‌های ۲، ۳، ۴ و ۵ آردوینو، و پایه‌های روبه‌روی همان چهار کلید همه به GND. کلیدهای ۵ تا ۸ به جایی وصل نمی‌شوند.

در تینکرکد فارسی نسخه‌ی چهارتایی با پایه‌های 1A تا 4A و 1B تا 4B هست و هم در حالت ساده (2D) و هم در حالت آردوینو (3D) رایگان شبیه‌سازی می‌شود.

سیم‌کشی با آردوینو

پایه‌ی قطعهوصل به
1Aپین 2 (بیت با ارزش ۱)
2Aپین 3 (ارزش ۲)
3Aپین 4 (ارزش ۴)
4Aپین 5 (ارزش ۸)
1B تا 4Bهمه به GND

با INPUT_PULLUP مقاومت بیرونی لازم نیست: کلید OFF یعنی HIGH و کلید ON یعنی LOW.

کد نمونه

این برنامه مثل یک دستگاه واقعی رفتار می‌کند: تنظیم را یک بار در setup می‌خواند، عدد را به شکل دودویی و دهدهی چاپ می‌کند و LED خود برد را همان تعداد بار چشمک می‌زند. برای اعمال تنظیم تازه، دکمه‌ی ریست را بزن.

// 4-way DIP switch read once at start-up, like a device address.
// Wiring: switches 1..4 one side -> pins 2..5, other side -> GND
const int DIP_PINS[4] = {2, 3, 4, 5};    // switch 1 = value 1 ... switch 4 = value 8
int setting = 0;

void setup() {
  Serial.begin(9600);
  pinMode(LED_BUILTIN, OUTPUT);
  for (int i = 0; i < 4; i++) pinMode(DIP_PINS[i], INPUT_PULLUP);
  delay(10);                               // let the pull-ups settle

  for (int i = 0; i < 4; i++) {
    if (digitalRead(DIP_PINS[i]) == LOW) bitSet(setting, i);   // ON = LOW
  }

  Serial.print("DIP = ");
  for (int i = 3; i >= 0; i--) Serial.print(bitRead(setting, i));
  Serial.print(" = ");
  Serial.println(setting);                 // 0..15
}

void loop() {
  for (int i = 0; i < setting; i++) {      // blink the setting, then pause
    digitalWrite(LED_BUILTIN, HIGH);
    delay(200);
    digitalWrite(LED_BUILTIN, LOW);
    delay(200);
  }
  delay(1500);
}

حلقه‌ی چاپ از بیت ۳ به ۰ می‌رود تا صفرهای سمت چپ هم دیده شوند؛ Serial.print(setting, BIN) آن صفرها را حذف می‌کند. برای تمرین تبدیل دودویی، مبدل دودویی را کنارش باز کن و اگر کار با بیت‌ها برایت تازه است، درس عملگرهای بیتی را ببین.

اشتباه‌های رایج

آموزش‌های مرتبط

سؤال‌های رایج

ووکوی دیپ سوییچ چهارتایی دارد؟

ووکوی دیپ سوییچ هشت‌تایی (wokwi-dip-switch-8) دارد. چهار کلید اولش را استفاده کن و بقیه را خالی بگذار؛ کد و سیم‌کشی همان است.

چرا دستگاه‌ها دیپ سوییچ را فقط موقع روشن شدن می‌خوانند؟

چون دیپ سوییچ برای تنظیم‌های کم‌تغییر است، مثل آدرس دستگاه یا کانال رادیو. اگر وسط کار عوض شود، ممکن است دستگاه ناگهان با آدرس دیگری حرف بزند؛ پس معمولاً یک بار در setup خوانده می‌شود و برای اعمال تغییر، دستگاه را ریست می‌کنی.

ON روی دیپ سوییچ یعنی HIGH؟

نه لزوماً. ON یعنی دو پایه‌ی آن کلید به هم وصل‌اند. اگر یک طرف به GND باشد و پین با INPUT_PULLUP خوانده شود، ON یعنی LOW.

📖 طرز کار، مشخصات فنی و نکته‌های خرید این قطعه در دانشنامه‌ی تینکرکد فارسی: دیپ سوییچ چهارتایی آمده است.

قطعه‌های دیگرِ کلید، دکمه و ورودی

🔢

کی‌پد ۴×۴

4x4 Matrix Keypad

🪛

تریمر (پتانسیومتر تنظیمی)

Trimmer Potentiometer (Trimpot)

🎚️

پتانسیومتر کشویی (اسلایدی)

Slide Potentiometer

🔘

دکمه فشاری

Push Button

🔛

کلید کشویی

Slide Switch

🎛️

پتانسیومتر (ولوم)

Potentiometer

همه‌ی ۱۰۵ قطعه ← · آموزش مدار

دیپ سوییچ چهارتایی را در شبیه‌ساز امتحان کن 🚀