تابع ()analogWriteResolution آردوینو

تابع ()analogWriteResolution آردوینو جزو توابع ورودی خروجی آنالوگ آردوینو می باشد و به کمک این تابع می توان وضوح و رزولیشن تابع ()analogWrite را تنظیم کرد. وضوح و رزولیشن تابع ()analogWrite برای سازگاری با بردهای مبتنی بر AVR، به طور پیش‌فرض روی ۸ بیت (مقادیر بین ۰ تا ۲۵۵) تنظیم شده است.

 

استفاده از تابع ()analogWriteResolution آردوینو - نحو و سینتکس

تابع ()analogWriteResolution آردوینو در برنامه نویسی آردوینو بصورت زیر استفاده می شود:

analogWriteResolution(bits)

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

مقدار برگشتی از تابع ()analogWriteResolution آردوینو

 تابع ()analogWriteResolution هیچ چیزی را برنمی گرداند.

 

مثال از تابع ()analogWriteResolution آردوینو

void setup() {
  // ارتباط سریال را باز می کند
  Serial.begin(9600);
  // پین های دیجیتال موردنظر را بصورت خروجی درمی آورد
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  //مقدار ورودی را از پین A0 می خواند
  // و بر روی پین LED که دارای قابلیت PWM است می نویسد
  int sensorVal = analogRead(A0);
  Serial.print("Analog Read : ");
  Serial.print(sensorVal);

  // مقدار رزولیشن پیش فرض PWM
  analogWriteResolution(8);
  analogWrite(11, map(sensorVal, 0, 1023, 0, 255));
  Serial.print(" , 8-bit PWM value : ");
  Serial.print(map(sensorVal, 0, 1023, 0, 255));

  // رزولیشن PWM را به 12 بیت تغییر می دهد
  analogWriteResolution(12);
  analogWrite(12, map(sensorVal, 0, 1023, 0, 4095));
  Serial.print(" , 12-bit PWM value : ");
  Serial.print(map(sensorVal, 0, 1023, 0, 4095));

  // رزولیشن PWM را به 4 بیت تغییر می دهد
  analogWriteResolution(4);
  analogWrite(13, map(sensorVal, 0, 1023, 0, 15));
  Serial.print(", 4-bit PWM value : ");
  Serial.println(map(sensorVal, 0, 1023, 0, 15));

  delay(5);
}

 

 نکته مهم: قابلیت‌های بردهای مختلف آردوینو
بردهایی با وضوح PWM هشت بیتی قادر به برش چرخه وظیفه PWM در 256 مرحله هستند. یعنی وضوح 8 بیت می تواند اعداد بین 0 تا 255 را ایجاد کند.
بردهایی با وضوح PWM ده بیتی قادر به برش چرخه وظیفه PWM در 1024 مرحله هستند. یعنی وضوح 10 بیت می تواند اعداد بین 0 تا 1023 را ایجاد کند.
بردهایی با وضوح PWM 12 بیتی قادر به برش چرخه وظیفه PWM در 4096 مرحله هستند. یعنی وضوح 12 بیت می تواند اعداد بین 0 تا 4095 را ایجاد کند.
بردهایی با وضوح PWM 16 بیتی قادر به برش چرخه وظیفه PWM در 65536 مرحله هستند. یعنی وضوح 16 بیت می تواند اعداد بین 0 تا 65535 را ایجاد کند.


اگر  مقدار رزولیشن تابع ()analogWriteResolution را به مقداری بالاتر از قابلیت‌های برد آردوینو که در اختیار دارید، تنظیم کنید، آردوینو بیت‌های اضافی را دور می‌ریزد.

اگر  مقدار رزولیشن تابع ()analogWriteResolution را به مقداری کمتر از قابلیت‌های برد آردوینو که در اختیار دارید، تنظیم کنید، بیت‌های گمشده با صفر پر می‌شوند تا اندازه مورد نیاز سخت‌افزار را پر کنند.