آموزش, رفرنس

()analogWriteResolution در آردوینو

()analogWriteResolution در آردوینو

()analogWriteResolution در آردوینو، یک قسمت الحاقیِ (اضافه‌‌ی) API آنالوگ، برای آردوینو Genuino ،Due و آردینو Zero و MKR1000 است که مقدار رزولوشن تابع ()analogWrite را تنظیم می‌کند. ()analogWriteResolution برای سازگاری (مطابقت) با بردهای مبتنی بر AVR، به‌صورت پیش‌فرض به 8 بیت (مقادیری بین 225-0 را برمی‌گرداند) تنظیم شده است.

آردوینو Due قابلیت‌های سخت‌افزاری زیر را دارد:

  • 12 پین که پیش‌فرض PWMهای 8 بیتی هستند(مانند بردهای مبتنی بر AVR). این‌ها قابل‌تغییر به 12 بیت رزولوشن هستند.
  • 2 پین با DAC (مبدل دیجیتال به آنالوگ) 12 بیتی.

با تنظیم رزولوشنِ write به 12، برای به‌کار انداختن رزولوشن DAC کامل یا تنظیم سیگنال PWM بدون رول اُوِر می‌توانید از ()alnalogWrite با مقادیری بین 0 تا 4095 استفاده کنید.

آردوینو Zero قابلیت‌های سخت‌افزاری زیر را دارد:

  • 10 پین که پیش‌فرض PWMهای 8 بیتی هستند(مانند بردهای مبتنی بر AVR). این‌ها قابل‌تغییر به 12 بیت رزولوشن هستند.
  • 1 پین با DAC (مبدل دیجیتال به آنالوگ) 10 بیتی.

با تنظیم رزولوشنِ write به 10، برای به‌کار انداختن رزولوشن DAC کامل می‌توانید از ()alnalogWrite با مقادیری بین 0 تا 1023 استفاده کنید.

MKR1000 قابلیت‌های سخت‌افزاری زیر را دارد:

  • 4 پین که پیش‌فرض PWMهای 8 بیتی هستند(مانند بردهای مبتنی بر AVR). این‌ها از 8 بیت (پیش‌فرض) قابل‌تغییر به 12 بیت رزولوشن هستند.
  • 1 پین با DAC (مبدل دیجیتال به آنالوگ) 10 بیتی.

با تنظیم رزولوشنِ write به 12 بیت،برای سیگنال PWM می‌توانید از ()alnalogWrite با مقادیری بین 0 تا 4095 استفاده کنید و برای به‌کار انداختن رزولوشن DAC کامل، روی پین DAC، آن را به 10 بیتِ 1024 مقداری تنظیم کنید.

سینتکس (نحو)

(analogWriteResolution(bits

پارامتر

bits: رزولوشن مقادیر استفاده‌شده در تابع ()analogWrite را (به بیت) تعیین می‌کند. این مقادیر می‌توانند از 1 تا 32 باشند. درصورتی‌که رزولوشنی بالاتر یا پایین‌تر از قابلیت‌های سخت‌افزاری بردتان را انتخاب کنید، مقدار استفاده‌شده در ()analogWrite اگر خیلی بالا باشد، کوتاه و یا اگر خیلی پایین باشد، با صفر پر خواهد شد. برای جزئیات بیشتر، نکته‌ی زیر را مشاهده کنید.

خروجی

هیچ (ندارد)

نکته

اگر مقدار ()analogWriteResolution را بالا‌تر(زیادتر) از امکانات برد خود تنظیم (ست) کنید، برد بیت‌های اضافی را دور خواهد انداخت. مثلاً در استفاده از آردوینو Due با (16)analogWriteResolution، روی پین DAC (مبدل دیجیتال به آنالوگ) 12 بیتی، تنها 12 بیت اولِ مقدار فرستاده‌شده به ()analogWrite استفاده می‌شود و 4 بیت آخر، دور انداخته می‌شود.

اگر مقدار ()analogWriteResolution را پایین‌تر (کمتر) از امکانات برد خود تنظیم (ست) کنید، بیت‌های مفقود با صفر پر خواهد شد تا اندازه‌ی موردنیاز سخت‌افزاری را تکمیل کند. مثلاً در استفاده از آردوینو Due با (8)analogWriteResolution، روی پین DAC (مبدل دیجیتال به آنالوگ) 12 بیتی، آردوینو 4 بیت صفر را به مقدار 8 بیتی استفاده‌شده در ()analogWrite اضافه خواهد کرد تا 12 بیت تکمیل شود.

مثال:

 

 

()analogWrite در آردوینو

()analogRead در آردوینو

انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.   همکاری با سیسوگ

2 دیدگاه در “()analogWriteResolution در آردوینو

  1. Avatar for سعید سعید گفت:

    سلام برای تغییر رزولوشن فقط یکبار کافیه که تابع analogWriteResolution() رو در بخش setup صدا بزنیم یا باید هر بار که میخوایم از analogWrite() استفاده کنیم قبلش analogWriteResolution() رو بکار ببریم؟؟

    1. Avatar for زئوس Zeus زئوس Zeus گفت:

      سلام دوست عزیز
      تنها کافیه یک بار این تابع فراخوان بشه و تا زمانی که نخواهید دقت رو تغییر بدید نیازی نیست مجددا این تابع رو صدا بزنید

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

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