آموزش آردوینودستورات آردوینو

دستور map در آردوینو (تناسب گیری بین محدوده ها)

دستور map در آردوینو برای تناسب گیری عدد ورودی از یک محدوده به محدوده دیگر استفاده میشود.

تابع map() یک عدد را از یک محدوده به محدوده دیگر منتقل میکند. به طور مثال یک عدد بین 10 تا 20 را به عددی بین 40 تا 80 تبدیل میکند. همچنین استفاده از دستور constrain برای قبل و بعد از این دستور مفید است.

توجه داشته باشید که “مرزهای پایین” هر دامنه ممکن است بزرگتر یا کوچکتر از “مرزهای بالایی” باشد بنابراین ممکن است از تابع map () برای معکوس کردن یک محدوده از اعداد استفاده شود،

y = map(x, 1, 50, 50, 1);

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.

این تابع همچنین اعداد منفی را به خوبی کنترل می کند ، مانند این مثال

y = map(x, 1, 50, 50, -100);

تابع map () از اعداد صحیح استفاده می کند بنابراین کسری ایجاد نمی کند. ممکن است با قوانین ریاضی تناسب مورد نظر شما اعشاری باشد اما این دستور اعشار و … را ایجاد نمیکند.

دستور map

map(value, fromLow, fromHigh, toLow, toHigh)

  • value: عدد ورودی شما
  • fromLow: تعیین محدوده پایین ورودی (حداقل)
  • fromHigh: تعیین محدوده بالا ورودی (حداکثر)
  • toLow: تعیین محدوده پایین خروجی (حداقل)
  • toHigh: تعیین محدوده بالا خروجی (حداکثر)

چه چیزی را بر میگرداند؟

مقدار تناسب گیری شده را برمیگرداند.

نمونه کد با دستور map

در کد ما یک عدد را از محدوده 0 تا 1023 به محدوده 0 تا 255 منتقل میکنیم. در کد زیر از دستور analogRead و analogWrite نیز استفاده میشود.

void setup() {}

void loop() {
  int val = analogRead(0); // مقدار ورودی از پین 0 خوانده میشود
  val = map(val, 0, 1023, 0, 255); // عدد از محدوده 0 تا 1023 به محدوده 0 تا 255 تبدیل میشود.
  analogWrite(9, val); // عدد خروجی برای ایجاد سیگنال PWM استفاده میشود.
}

نکات:

همانطور که قبلاً ذکر شد، تابع map () از ریاضیات عدد صحیح استفاده می کند. به همین دلیل کسر ها با این دستور ایجاد نمیشوند. به عنوان مثال ، کسرهایی مانند 3/2 ، 4/3 ، 5/4 همه به صورت 1 بر می گردند. بنابراین اگر پروژه شما نیاز به محاسبات دقیق دارد (به عنوان مثال ولتاژ دقیق تا 3 رقم اعشاری)، بهتر است خودتان با ریاضیات صحیح و واقعی تناسب گیری را انجام دهید.

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *