()analogReadResolution در آردوینو، یک قسمت الحاقیِ (اضافهی) API آنالوگ، برای آردوینو Due و Zero است که اندازهی مقداری که توسط ()analogRead بازگشت داده میشود را به بیت تنظیم (ست) میکند. ()analogReadResolution برای سازگاری (مطابقت) با بردهای مبتنی بر AVR، بهصورت پیشفرض به 10 بیت (مقادیری بین 1023-0 را برمیگرداند) تنظیم شده است.
آردوینو Due و Zero قابلیت ADC دوازده بیت را دارا هستند که با تغییر رزولوشن به 12، قابلدسترسی است و مقادیری بین 0 تا 4095 از ()analogRead را بر خواهد گرداند.
سینتکس (نحو)
(analogReadResolution(bits
پارامتر
bits: رزولوشن مقدار بازگشتی از تابع ()analogRead را (به بیت) تعیین میکند. شما میتوانید این را به 1 و 32 ست (تنظیم) کنید. میشود که رزولوشن بالاتر از 12 نیز ست شود، اما مقدار بازگشتی ()analogRead، مشکل تقریب خواهد داشت. نکتهی زیر را برای جزئیات بیشتر ببینید.
خروجی
هیچ (ندارد)
نکته
اگر مقدار ()analogReadResolution را بالاتر(زیادتر) از امکانات برد خود تنظیم (ست) کنید، آردوینو تنها بالاترین رزولوشن خود را برمیگرداند و بیتهای اضافی را با صفر پر میکند.
برای مثال: استفاده از آردوینو Due یا Zero با (16)analogReadResolution، یک عدد 16 بیت تقریبی به شما خواهد داد که 12 بیت اول، خوانش حقیقی (واقعی) ADC و 4 بیت بعد، پرشده با صفر خواهد بود.
اگر مقدار ()analogReadResolution را پایینتر (کمتر) از امکانات برد خود تنظیم (ست) کنید، کماهمیتترین بیتهای اضافی خواندهشده از ADC در نظر گرفته نخواهند شد.
استفاده از رزولوشن 16 بیت (یا هر رزولوشن بالاتر از امکانات سختافزار) به شما این امکان را میدهد که اسکچهایی بنویسید که بهصورت خودکار، هنگامیکه دستگاههایی با رزولوشنهای بالاتر ADC هم در بردهای آینده در دسترس قرار گرفتند، بدون تغییر یک خط از کد، بتوانید آنها را نیز مدیریت کنید.
مثال:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | void setup() { // یک کانکشن (ارتباط) سریال باز میکند. Serial.begin(9600); } void loop() { // ورودی ای صفر. // A0 // را با رزولوشن پیشفرض 10 بیت میخواند و به آن را به ارتباط سریال میفرستد analogReadResolution(10); Serial.print("ADC 10-bit (default) : "); Serial.print(analogRead(A0)); //رزولوشن را به دوازده بیت تغییر میدهد و ای صفر را میخواند analogReadResolution(12); Serial.print(", 12-bit : "); Serial.print(analogRead(A0)); // رزولوشن را به شانزده بیت تغییر میدهد و ای صفر را میخواند analogReadResolution(16); Serial.print(", 16-bit : "); Serial.print(analogRead(A0)); // رزولوشن را به هشت بیت تغییر میدهد و ای صفر را میخواند analogReadResolution(8); Serial.print(", 8-bit : "); Serial.println(analogRead(A0)); // یک تاخیر کوچک تا بیش از حد از سریال مانیتور استفاده نشود. delay(100); } |