📐 سنسور شیب (تیلت) (Tilt Sensor (SW-520D))

اسم انگلیسیTilt Sensor (SW-520D)
در ووکوی (Wokwi)نسخه‌ی آماده‌ای سراغ نداریم
دسته🌡️ سنسورها
در شبیه‌ساز فارسیمود ساده (بدون کد) و مود آردوینو · رایگان

سنسور شیب یا تیلت سوییچ (Tilt Sensor) یک کلید کوچک استوانه‌ای است که داخلش یک یا دو گوی فلزی آزادانه می‌غلتند؛ رایج‌ترینش SW-520D است. وقتی سنسور صاف ایستاده، گوی روی دو اتصال کف می‌نشیند و مدار را می‌بندد؛ وقتی از حدی بیشتر کج شود، گوی کنار می‌رود و مدار باز می‌شود. این سنسور زاویه را اندازه نمی‌گیرد و فقط یک جواب بله یا نه می‌دهد: «کج شده یا نه». با آن هشدار افتادن جعبه، چراغی که با برگرداندن روشن می‌شود یا قلک دزدگیردار می‌سازی.

سنسور شیب در ووکوی (Wokwi)

تا جایی که می‌دانیم ووکوی نسخه‌ی آماده‌ی این قطعه را ندارد. چون سنسور شیب از نظر الکتریکی فقط یک کلید دوپایه است، در ووکوی می‌توانی یک wokwi-slide-switch جایش بگذاری: پایه‌ی وسط (2) را به پین ورودی و یکی از پایه‌های کناری (1) را به GND وصل کن. جابه‌جا کردن دسته‌ی کلید همان «کج کردن» است.

{
  "parts": [
    { "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
    { "type": "wokwi-slide-switch", "id": "sw1", "top": -90, "left": 160, "attrs": {} }
  ],
  "connections": [
    [ "sw1:2", "uno:2", "green", [] ],
    [ "sw1:1", "uno:GND.1", "black", [] ]
  ]
}

خود سنسور شیب در تینکرکد فارسی در هر دو مود رایگان شبیه‌سازی می‌شود؛ مدار چراغ شیب‌سنج (Tilt-activated Light) را ببین.

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

سنسور قطبیت ندارد و هر پایه را می‌شود به هر طرف وصل کرد. مقاومت جدا هم لازم نیست، چون مقاومت پول‌آپ داخلی آردوینو را با INPUT_PULLUP روشن می‌کنیم.

پایه‌ی قطعهوصل به
پایه‌ی اول سنسورپین 2
پایه‌ی دوم سنسورGND
LED نشانگرLED داخلی برد روی پین 13

با این سیم‌کشی، سنسور صاف یعنی LOW و سنسور کج یعنی HIGH. اگر مقاومت پول‌آپ برایت تازه است، توضیح کوتاهش را بخوان.

کد نمونه

مشکل اصلی سنسور شیب این است که گوی با هر تکان کوچک چند بار می‌پرد. این برنامه فقط وقتی وضعیت تازه را قبول می‌کند که ۳۰۰ میلی‌ثانیه ثابت مانده باشد؛ پس لرزش میز نادیده گرفته می‌شود ولی کج شدن واقعی بعد از کسری از ثانیه گزارش می‌شود.

// Tilt switch on pin 2: report only states that stay stable for 300 ms.
const int TILT_PIN = 2;
const unsigned long SETTLE_MS = 300;

bool tilted = false;
bool lastRaw = HIGH;
unsigned long changedAt = 0;

void setup() {
  Serial.begin(9600);
  pinMode(TILT_PIN, INPUT_PULLUP);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  bool raw = digitalRead(TILT_PIN);      // LOW = ball closes the contacts
  if (raw != lastRaw) {                  // the ball moved: restart the timer
    lastRaw = raw;
    changedAt = millis();
  }
  if (millis() - changedAt >= SETTLE_MS) {
    bool nowTilted = (raw == HIGH);      // contacts open = tilted
    if (nowTilted != tilted) {
      tilted = nowTilted;
      digitalWrite(LED_BUILTIN, tilted ? HIGH : LOW);
      Serial.println(tilted ? "Tilted!" : "Upright");
    }
  }
}

عدد SETTLE_MS را بسته به کاربرد عوض کن: برای رباتی که مدام می‌لرزد بیشترش کن، برای بازی سریع کمترش. این همان ایده‌ی رفع پرش (Debounce) است، فقط با زمانی طولانی‌تر.

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

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

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

سنسور شیب زاویه را اندازه می‌گیرد؟

نه. فقط دو حالت دارد: صاف یا کج. برای اندازه‌گیری زاویه به شتاب‌سنج یا ژیروسکوپ مثل MPU6050 نیاز داری.

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

گوی داخلش با هر تکان کوچک می‌پرد و چند بار قطع و وصل می‌کند. در کد فقط وضعیتی را قبول کن که چند صد میلی‌ثانیه ثابت مانده باشد.

سنسور شیب در ووکوی هست؟

تا جایی که می‌دانیم نه، ولی چون فقط یک کلید دوپایه است، یک کلید کشویی wokwi-slide-switch جایش را می‌گیرد. خود سنسور شیب در تینکرکد فارسی رایگان شبیه‌سازی می‌شود.

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

قطعه‌های دیگرِ سنسورها

📡

گیرنده‌ی مادون قرمز

IR Receiver (TSOP / VS1838B)

✋

سنسور فشار FSR

Force Sensitive Resistor (FSR)

💨

سنسور گاز MQ-2

MQ-2 Gas Sensor

📳

سنسور لرزش SW-420

SW-420 Vibration Sensor

🧲

سنسور اثر هال

Hall Effect Sensor (A3144)

🚪

رید سوییچ (سوییچ ریدی)

Reed Switch

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

سنسور شیب (تیلت) را در شبیه‌ساز امتحان کن 🚀