ثابت‌های INPUT، INPUT_PULLUP و OUTPUT در آردوینو — آموزش کامل تنظیم پین‌ها  
آردوینو ایران | آموزش تخصصی آردوینو به فارسی

آردوینو ایران | آموزش تخصصی آردوینو به فارسی

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

اشتراک در خبرنامه

جهت عضویت در خبرنامه لطفا ایمیل خود را ثبت نمائید

Captcha

آمار بازدید

  • بازدید امروز : 14
  • بازدید دیروز : 23
  • بازدید کل : 14668

ثابت‌های INPUT، INPUT_PULLUP و OUTPUT در آردوینو — آموزش کامل تنظیم پین‌ها


ثابت‌های INPUT، INPUT_PULLUP و OUTPUT در آردوینو — آموزش کامل تنظیم پین‌ها

ثابت‌های INPUT، INPUT_PULLUP و OUTPUT در آردوینو — تنظیم رفتار پین‌ها

این ثابت‌ها چیستند؟

در آردوینو، INPUT، INPUT_PULLUP و OUTPUT سه ثابت پیش‌تعریف‌شده هستند که برای تعیین حالت یک پین دیجیتال با تابع pinMode() استفاده می‌شوند.
این تنظیم مشخص می‌کند که آیا پین برای خواندن سیگنال (ورودی) است یا برای ارسال سیگنال (خروجی)، و در صورت ورودی بودن، آیا نیاز به مقاومت بالاکش داخلی دارد یا خیر.

توضیح برای مبتدی‌ها: فکر کنید هر پین آردوینو مثل یک دریچه دو طرفه است. با pinMode() تصمیم می‌گیرید این دریچه فقط ورودی باشد (مثل گوش دادن به دکمه)، فقط خروجی باشد (مثل فرمان دادن به LED)، یا ورودی با یک «کمک‌کننده داخلی» (مقاومت بالاکش) برای جلوگیری از سیگنال‌های نامشخص.

۱. OUTPUT — حالت خروجی

وقتی یک پین را به عنوان OUTPUT تنظیم می‌کنید، آردوینو می‌تواند ولتاژ آن را کنترل کند:
— با digitalWrite(pin, HIGH) ولتاژ پین را به ۵ ولت (یا ۳.۳ ولت) می‌رساند.
— با digitalWrite(pin, LOW) ولتاژ پین را به ۰ ولت (زمین) متصل می‌کند.

pinMode(13, OUTPUT);      // پین 13 خروجی است
digitalWrite(13, HIGH);  // LED روشن می‌شود

این حالت برای کنترل LED، رله، بوزر و سایر قطعات فعال استفاده می‌شود.

۲. INPUT — ورودی ساده

در حالت INPUT، پین فقط ولتاژ خارجی را می‌خواند. اما اگر پین به هیچ چیز متصل نباشد، مقدار آن «شناور» (floating) است — یعنی ممکن است به‌صورت تصادفی بین HIGH و LOW تغییر کند.

pinMode(2, INPUT);       // پین 2 ورودی ساده است
int state = digitalRead(2);

توضیح برای مبتدی‌ها: «شناور بودن» مثل این است که یک میکروفون را بدون پوشش روشن کنید — صداهای نامربوط (سر و صدا) گرفته می‌شود. برای جلوگیری از این مشکل، معمولاً از INPUT_PULLUP استفاده می‌شود.

۳. INPUT_PULLUP — ورودی با مقاومت بالاکش داخلی

در این حالت، آردوینو یک مقاومت داخلی (معمولاً ۲۰ تا ۵۰ کیلو اهم) بین پین و ولتاژ مثبت فعال می‌کند. این کار باعث می‌شود: — وقتی دکمه فشرده نشده باشد، پین به ولتاژ متصل است → digitalRead() مقدار HIGH برمی‌گرداند.
— وقتی دکمه فشرده شود (و به زمین وصل شود)، پین به زمین متصل می‌شود → مقدار LOW برمی‌گرداند.

pinMode(2, INPUT_PULLUP);  // فعال‌سازی مقاومت بالاکش داخلی
int button = digitalRead(2); // اگر دکمه فشرده شود، LOW برمی‌گرداند

این روش رایج‌ترین و ساده‌ترین راه برای خواندن دکمه‌هاست — چون نیازی به مقاومت فیزیکی خارجی ندارد.

مثال کاربردی: مقایسه سه حالت در یک پروژه

// پین 13: خروجی (LED)
pinMode(13, OUTPUT);

// پین 2: ورودی با مقاومت بالاکش (دکمه)
pinMode(2, INPUT_PULLUP);

// پین 3: ورودی ساده (نیاز به مقاومت خارجی دارد)
pinMode(3, INPUT);

void loop() {
  // کنترل LED
  digitalWrite(13, HIGH);
  
  // خواندن دکمه با INPUT_PULLUP
  if (digitalRead(2) == LOW) {
    Serial.println("دکمه فشرده شد!");
  }
  
  // خواندن سنسور با INPUT (فرض کنید مقاومت خارجی وجود دارد)
  if (digitalRead(3) == HIGH) {
    Serial.println("سنسور فعال است.");
  }
}

نکته طلایی ۱: INPUT_PULLUP جایگزین ایمن‌تری برای INPUT است

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

نکته طلایی ۲: OUTPUT ولتاژ را کنترل می‌کند — نه جریان!

پین‌های خروجی آردوینو می‌توانند حداکثر ۴۰ میلی‌آمپر جریان تأمین کنند. اگر LED یا قطعه‌ای نیاز به جریان بیشتری دارد، حتماً از ترانزیستور یا درایور استفاده کنید — در غیر این صورت، آردوینو آسیب می‌بیند.

جمع‌بندی

  • OUTPUT: برای کنترل قطعات (LED، رله)
  • INPUT: ورودی ساده — نیاز به مقاومت خارجی دارد
  • INPUT_PULLUP: ورودی با مقاومت داخلی — ایده‌آل برای دکمه‌ها
  • همیشه قبل از استفاده از digitalRead() یا digitalWrite()، پین را با pinMode() تنظیم کنید

منبع رسمی

این مطلب بر اساس مستندات رسمی Arduino از بخش INPUT, INPUT_PULLUP, OUTPUT – Language Reference تهیه شده است، با توضیحات ساده‌شده، مثال‌های کاربردی و نکات طلایی منحصربه‌فرد برای جامعه فارسی‌زبان.

  انتشار : ۱۸ مهر ۱۴۰۴               تعداد بازدید : 293

برچسب های مهم

دیدگاه های کاربران (0)

http://kia-ir.ir

تمام حقوق مادی و معنوی این وب سایت متعلق به "آردوینو ایران | آموزش تخصصی آردوینو به فارسی" می باشد

فید خبر خوان    نقشه سایت    تماس با ما