Math - ریاضی

map – تناسب‌گیر

map - تناسب‌گیر

توضیحات

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

همچنین استفاده از دستور constrain برای تعیین محدوده ، قبل و بعد از این دستور مفید است.

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

y = map(x, 1, 50, 50, 1);
y = map(x, 1, 50, 50, -100); // در تابع از اعداد منفی نیز می توان استفاده کرد
  • تابع map() از اعداد صحیح استفاده می کند و بنابراین اعداد کسری ایجاد نمی کند، در حالی که ممکن است انتظار ریاضی ما عدد دیگری را نشان دهد. علت این تفاوت در نحوه کار این تابع است که باقی مانده کسر ها قطع می کند. (گرد یا متوسط نیستند)

نحوه استفاده

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

خروجی تابع

مقدار ترسیم شده.

مثال

تبدیل یک مقدار انالوگ به 8 بیت (0 تا 255)

/* Map an analog value to 8 bits (0 to 255) */
void setup() {}

void loop() {
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}
  • همان طور که گفته شد تابع map() از اعداد کسری استفاده نمی کند، این بدان معنی است که اعداد 7/4 ,4/3 ,3/2 همه به صورت 1 خروجی داده می شوند.

نوشته های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد.