🔛 کلید کشویی (Slide Switch)
| اسم انگلیسی | Slide Switch |
|---|---|
| در ووکوی (Wokwi) | wokwi-slide-switch |
| دسته | 🎛️ کلید، دکمه و ورودی |
| در شبیهساز فارسی | مود ساده (بدون کد) و مود آردوینو · رایگان |
کلید کشویی (Slide Switch) کلیدی ماندگار است: اهرمش را به یک طرف میکشی و همانجا میماند. سه پایه دارد؛ پایهی وسط بسته به جای اهرم به پایهی چپ یا راست وصل میشود، پس در واقع یک کلید SPDT کوچک است. در پروژهها دو کار اصلی دارد: روشن و خاموش کردن برق باتری، و انتخاب یک «حالت» برای برنامه، مثل روز و شب، دستی و خودکار یا کند و تند.
کلید کشویی در ووکوی (Wokwi)
شناسهی قطعه wokwi-slide-switch است با سه پایهی 1، 2 و 3؛ 2 پایهی وسط و مشترک است. حین اجرا با کلیک روی کلید جایش را عوض میکنی.
{
"version": 1,
"parts": [
{ "type": "wokwi-arduino-uno", "id": "uno", "top": 0, "left": 0, "attrs": {} },
{ "type": "wokwi-slide-switch", "id": "sw1", "top": -100, "left": 170, "attrs": {} }
],
"connections": [
[ "sw1:2", "uno:4", "green", [] ],
[ "sw1:1", "uno:GND.1", "black", [] ]
]
}
| پایه در ووکوی | به کجا | توضیح |
|---|---|---|
1 | uno:GND.1 | یک کنار |
2 | uno:4 | پایهی وسط (مشترک)؛ با INPUT_PULLUP خوانده میشود |
3 | آزاد | کنار دیگر؛ وقتی وسط به این طرف برود، پولآپ پین را HIGH نگه میدارد |
کلید کشویی در تینکرکد فارسی، در مود ساده و مود آردوینو، رایگان است؛ پروژهی چراغ کلیددار سادهترین مثالش در مود ساده است.
سیمکشی با آردوینو
| پایهی قطعه | وصل به |
|---|---|
| پایهی وسط | پین 4 |
| یکی از پایههای کناری | GND |
| پایهی کناری دیگر | آزاد |
| LED با مقاومت ۲۲۰ اهم | پین 13 به GND |
اگر کلید را برای قطع و وصل برق میخواهی، نه برای خواندن با آردوینو: سیم مثبت جاباتری را به پایهی وسط و یکی از کناریها را به ورودی تغذیهی مدار بده.
کد نمونه
// Slide switch as a mode selector: middle pin -> 4, one side -> GND, internal pull-up
const int SWITCH_PIN = 4;
const int LED_PIN = 13;
int lastMode = -1;
unsigned long lastToggle = 0;
bool ledState = false;
void setup() {
pinMode(SWITCH_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600);
}
void loop() {
int mode = digitalRead(SWITCH_PIN); // LOW on one side, HIGH on the other
if (mode != lastMode) {
Serial.println(mode == LOW ? "Mode: fast blink" : "Mode: slow blink");
lastMode = mode;
}
unsigned long interval = (mode == LOW) ? 150 : 800;
if (millis() - lastToggle >= interval) {
lastToggle = millis();
ledState = !ledState;
digitalWrite(LED_PIN, ledState ? HIGH : LOW);
}
}
این الگو برای هر «حالت» دیگری هم کار میکند: بهجای سرعت چشمک، میتوانی بین حالت دستی و خودکار یک چراغ، یا بین واحد سانتیمتر و اینچ یک فاصلهسنج انتخاب کنی. کلید کشویی هم مثل دکمه هنگام جابهجایی کمی لرزش دارد؛ ولی چون این کد فقط حالت فعلی را میخواند و چیزی نمیشمارد، این لرزش دردسری درست نمیکند.
اشتباههای رایج
- استفاده از دو پایهی کناری: این دو هیچوقت به هم وصل نمیشوند؛ همیشه یکی از سیمها باید روی پایهی وسط باشد.
- بدون پولآپ: در حالتی که پایهی وسط به سمت آزاد رفته، ورودی شناور است و عددهای تصادفی میخوانی.
- بار سنگین روی کلید کوچک: کلیدهای کشویی مینیاتوری برای جریان کم ساخته شدهاند؛ موتور بزرگ را با آنها قطع و وصل نکن.
- جای کلید روی بردبورد: اگر هر سه پایه در یک نوار پنجسوراخهی بردبورد بنشینند، همه از قبل به هم وصلاند و کلید بیاثر میشود.
- انتظار رفتار لحظهای: کلید کشویی سر جایش میماند؛ برای زنگ در یا شمارش ضربه، دکمهی فشاری انتخاب درست است.
آموزشهای مرتبط
- مدار منطقی: گیتها با کلید و دکمه
- دکمه فشاری در ووکوی
- ساخت مدار در ووکوی قدمبهقدم
- مقاومت بالاکش و پایینکش در ۱۵ مدار پایه
سؤالهای رایج
پایهی وسط کلید کشویی کدام است؟
پایهی وسط مشترک است و بسته به جای اهرم به یکی از دو پایهی کناری وصل میشود. در ووکوی هم پایهی 2 همین پایهی وسط است.
کلید کشویی را به آردوینو چطور وصل کنم که عدد تصادفی ندهد؟
پایهی وسط را به پین آردوینو و یکی از کناریها را به GND بزن و در کد INPUT_PULLUP بگذار. در یک حالت LOW میخوانی و در حالت دیگر، که پایه آزاد است، پولآپ آن را HIGH نگه میدارد.
با کلید کشویی میشود برق کل پروژه را قطع و وصل کرد؟
برای پروژههای کوچک بله: کلید را سر راه سیم مثبت باتری بگذار. کلیدهای کشویی کوچک معمولاً فقط برای جریانهای کم ساخته شدهاند؛ برای موتورهای پرمصرف کلید راکر یا رله مطمئنتر است.