آموزش مبتدی الکترونیک

آموزش اتصال دکمه فشاری به آردوینو با INPUT_PULLUP

مدار نمونه آردوینو، دکمه فشاری و LED روی بردبورد
مدار نمونه آردوینو، دکمه فشاری و LED روی بردبورد

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

قطعات و سیم‌کشی اتصال دکمه فشاری به آردوینو

یک برد سازگار با Arduino Uno، دکمهٔ فشاری، بردبورد و سیم جامپر لازم دارید. یک پایهٔ دکمه را به D2 و پایهٔ مقابل همان مسیر کلید را به GND وصل کنید. دکمه‌های چهارپایه معمولاً دو پایهٔ هر طرفشان از قبل به هم متصل است؛ برای تشخیص جفت‌ها، با تغذیهٔ قطع از مولتی‌متر روی حالت پیوستگی کمک بگیرید. قرار دادن دکمه روی شیار میانی بردبورد، احتمال اتصال اشتباه دو پایه را کمتر می‌کند. برای شناخت ردیف‌ها، آموزش بردبورد را مرور کنید.

چرا INPUT_PULLUP؟

اگر ورودی دیجیتال را بدون اتصال پایدار به HIGH یا LOW رها کنید، مقدار خوانده‌شده ممکن است با نویز تغییر کند. فرمان INPUT_PULLUP مقاومت پول‌آپ داخلی را فعال می‌کند: دکمهٔ رهاشده HIGH و دکمهٔ فشرده LOW خوانده می‌شود. به همین دلیل در شرط برنامه LOW را به معنی فشار دادن می‌گیریم. مقدار مقاومت داخلی دقیقاً ثابت نیست و برای محدودکردن جریان LED جایگزین مقاومت سری نمی‌شود.

کد کامل برای Arduino Uno

const byte buttonPin = 2;
const byte ledPin = LED_BUILTIN;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
}

void loop() {
  bool pressed = digitalRead(buttonPin) == LOW;
  digitalWrite(ledPin, pressed ? HIGH : LOW);
}

در Arduino IDE برد و درگاه مناسب را انتخاب کنید و برنامه را بارگذاری کنید. با فشار دادن دکمه، LED داخلی روی برد روشن می‌شود. اگر از LED خارجی استفاده می‌کنید، آن را با مقاومت سری مناسب ببندید؛ برای مرور انتخاب مقاومت، درس خواندن رنگ مقاومت را بخوانید.

عیب‌یابی و تمرین بعدی

اگر LED همیشه روشن است، احتمالاً پایه‌های دکمه را روی جفتی بسته‌اید که از قبل متصل‌اند یا D2 به زمین اتصال دائمی دارد. اگر واکنشی نمی‌بینید، شمارهٔ پایه، اتصال GND، انتخاب برد و موفقیت بارگذاری کد را بررسی کنید. کلید مکانیکی هنگام فشردن ممکن است برای چند میلی‌ثانیه چند بار قطع و وصل شود؛ برای یک‌بار شمردن هر فشار باید در مرحلهٔ بعدی «دیبانس» را با زمان‌سنجی یا سخت‌افزار اضافه کنید. توضیح رسمی مثال INPUT_PULLUP آردوینو هم مرجع خوبی است.

تصویر: Wikimedia Commons؛ مشخصات پدیدآورنده و مجوز در صفحهٔ فایل.