تابع ()analogReference آردوینو
تابع ()analogReference آردوینو جزو توابع ورودی خروجی آنالوگ آردوینو می باشد و به کمک این تابع می توان ولتاژ مرجع مورد استفاده برای ورودی آنالوگ (یعنی حداکثر ولتاژی که میتوان حس کرد) را پیکربندی کرد. گزینهها عبارتند از:
بردهای آردوینو AVR (UNO، Mega، Leonardo و غیره)
DEFAULT: مرجع آنالوگ پیشفرض ۵ ولت (در بردهای آردوینو ۵ ولت DC) یا ۳.۳ ولت (در بردهای آردوینو ۳.۳ ولت DC).
INTERNAL: یک مرجع داخلی، برابر با ۱.۱ ولت در ATmega168 یا ATmega328P و ۲.۵۶ ولت در ATmega32U4 و ATmega8 (در آردوینو مگا موجود نیست).
INTERNAL1V1: یک مرجع داخلی ۱.۱ ولت DC (فقط آردوینو مگا).
INTERNAL2V56: یک مرجع داخلی ۲.۵۶ ولت DC (فقط آردوینو مگا).
EXTERNAL: ولتاژ اعمال شده به پین AREF (فقط ۰ تا ۵ ولت DC) به عنوان مرجع استفاده میشود.
بردهای آردوینو رنساس (UNO R4، Portenta C33)
AR_DEFAULT: مرجع آنالوگ پیشفرض ۵ ولت.
AR_INTERNAL: یک مرجع داخلی، برابر با ۱.۵ ولت روی RA4M1 از برد UNO R4.
AR_INTERNAL_1_5V: یک مرجع داخلی، برابر با ۱.۵ ولت DC در R7FA6M5 از Portenta C33.
AR_INTERNAL_2_0V: یک مرجع داخلی، برابر با 2.0 ولت DC در R7FA6M5 از Portenta C33.
AR_INTERNAL_2_5V: یک مرجع داخلی، برابر با ۲.۵ ولت DC در R7FA6M5 از Portenta C33.
AR_EXTERNAL: ولتاژ اعمال شده به پین AREF (فقط ۰ تا ۵ ولت DC) به عنوان مرجع استفاده میشود.
بردهای آردوینو SAMD (زیرو و غیره)
AR_DEFAULT: مرجع آنالوگ پیشفرض ۳.۳ ولت مستقیم.
AR_INTERNAL: یک مرجع داخلی ۲.۲۳ ولت DC.
AR_INTERNAL1V0: یک مرجع داخلی ۱.۰ ولت DC.
AR_INTERNAL1V65: یک مرجع داخلی ۱.۶۵ ولت DC
AR_INTERNAL2V23: یک مرجع داخلی ۲.۲۳ ولت DC
AR_EXTERNAL: ولتاژ اعمال شده به پین AREF به عنوان مرجع استفاده میشود.
بردهای آردوینو مگاAVR (UNO WiFi Rev2، آردوینو نانو Every)
DEFAULT: مرجع داخلی ۰.۵۵ ولت DC
INTERNAL: یک مرجع داخلی 0.55 VDC
VDD: Vdd مربوط به ATmega4809. 5 ولت DC روی Uno WiFi Rev2 و Nano Every
INTERNAL0V55: یک مرجع داخلی 0.55 VDC
INTERNAL1V1: یک مرجع داخلی ۱.۱ ولت DC
INTERNAL1V5: یک مرجع داخلی ۱.۵ ولت DC
INTERNAL2V5: یک مرجع داخلی 2.5 VDC
INTERNAL4V3: یک مرجع داخلی 4.3 VDC
EXTERNAL: ولتاژ اعمال شده به پین AREF (فقط ۰ تا ۵ ولت DC) به عنوان مرجع استفاده میشود.
بردهای آردوینو SAM (Due)
AR_DEFAULT: مرجع آنالوگ پیشفرض ۳.۳ ولت مستقیم. این تنها گزینه پشتیبانیشده برای Due است.
بردهای آردوینو Mbed OS Nano (نانو ۳۳ BLE)، بردهای لبه آردوینو Mbed OS (کنترل لبه)
AR _ VDD: مرجع پیشفرض ۳.۳ VDC
AR_INTERNAL: مرجع داخلی 0.6 ولت DC
AR_INTERNAL1V2: مرجع ۱.۲ ولت DC (مرجع داخلی ۰.۶ ولت DC با بهره ۲ برابر)
AR_INTERNAL2V4: مرجع ۲.۴ ولت DC (مرجع داخلی ۰.۶ ولت DC با بهره ۴ برابر)
نکته: مرجع آنالوگ Nicla Sense ME و Nicla Voice روی ۱.۸ VDC ثابت است و نمیتوان آن را توسط نرمافزار پیکربندی کرد.
استفاده از تابع ()analogReference آردوینو - نحو و سینتکس
تابع ()analogReference آردوینو در برنامه نویسی آردوینو بصورت زیر استفاده می شود:
analogReference(type)
در عبارت بالا به جای type، بر حسب برد آردوینویی که در اختیار داریم، یکی از گزینه های مربوط به آن برد را که در بالا توضیح دادیم قرار می دهیم. مثلا برای برد آردوینو UNO می توان نوشت: (DEFAULT)analogReference یا (INTERNAL)analogReference یا (INTERNAL1V1)analogReference یا (INTERNAL2V56)analogReference یا (EXTERNAL)analogReference
مقدار برگشتی از تابع ()analogReference آردوینو
این تابع چیزی برنمی گرداند.
نکته ها و هشدارها در مورد تابع ()analogReference
پس از تغییر مرجع آنالوگ، چند خوانش اول از ()analogRead ممکن است دقیق نباشد.
برای ولتاژ مرجع خارجی روی پین AREF از ولتاژی کمتر از 0 ولت یا بیشتر از 5 ولت DC استفاده نکنید! اگر از یک مرجع خارجی روی پین AREF استفاده میکنید، قبل از فراخوانی تابع ()analogRead باید مرجع آنالوگ را روی EXTERNAL تنظیم کنید.
در غیر این صورت، ولتاژ مرجع فعال (تولید شده داخلی) و پین AREF به هم اتصال کوتاه میشوند و احتمالاً به میکروکنترلر روی برد آردوینو شما آسیب میرسانند.
به عنوان یک جایگزین، میتوانید ولتاژ مرجع خارجی را از طریق یک مقاومت ۵ کیلواهمی به پین AREF متصل کنید و به این ترتیب بتوانید بین ولتاژ مرجع خارجی و داخلی سوئیچ کنید. توجه داشته باشید که مقاومت، ولتاژی را که به عنوان مرجع استفاده میشود تغییر میدهد زیرا یک مقاومت داخلی ۳۲ کیلواهمی روی پین AREF وجود دارد. این دو به عنوان یک تقسیمکننده ولتاژ عمل میکنند، بنابراین، برای مثال، اعمال ۲.۵ ولت DC از طریق مقاومت، منجر به ۲.۵ * ۳۲ / (۳۲ + ۵) = ~۲.۲ ولت DC در پین AREF میشود.