دستور analogRefrence در آردوینو ولتاژ مرجع مورد استفاده برای ورودی آنالوگ (یعنی مقدار استفاده شده به عنوان بالای محدوده ورودی) را پیکربندی میکند. گزینههای آن عبارتند از:
بردهای آردوینو AVR (Uno، Mega و غیره)
- DEFAULT: مرجع آنالوگ پیش فرض ۵ ولت (روی بردهای آردوینو ۵ ولت) یا ۳.۳ ولت (روی بردهای آردوینو ۳.۳ ولت)
- INTERNAL: یک مرجع داخلی، برابر با ۱.۱ ولت در ATmega168 یا ATmega328P و ۲.۵۶ ولت در ATmega8 (در آردوینو مگا موجود نیست)
- INTERNAL1V1: یک مرجع داخلی ۱.۱ ولت (فقط آردوینو مگا)
- INTERNAL2V56: یک مرجع داخلی ۲.۵۶ ولت (فقط آردوینو مگا)
- EXTERNAL: ولتاژ اعمال شده به پایه AREF (فقط ۰ تا ۵ ولت) به عنوان مرجع استفاده میشود. (AREF مخفف آنالوگ رفرنس است)
دستور analogRefrence در بردهای SAMD آردوینو (صفر و غیره)
- AR_DEFAULT: مرجع آنالوگ پیش فرض ۳.۳ ولت
- AR_INTERNAL: یک مرجع داخلی ۲.۲۳ ولت
- AR_INTERNAL1V0: یک مرجع داخلی ۱.۰ ولت
- AR_INTERNAL1V65: یک مرجع داخلی ۱.۶۵ ولت
- AR_INTERNAL2V23: مرجع ۲.۲۳ ولت داخلی
- AR_EXTERNAL: ولتاژ اعمالی به پایه AREF به عنوان مرجع
بردهای آردوینو SAM (Due)
- AR_DEFAULT: مرجع آنالوگ پیشفرض ۳.۳ ولت. این تنها گزینه پشتیبانی شده برای Due است.
سینتکس
سینتکس دستور analogRefrence در آردوینو بهصورت زیر است:
analogRefrence(type)
type یا همان نوع در اینجا یعنی از کدام نوع مرجع استفاده میشود.
این دستور، چیزی برنمیگرداند.
یادداشتها و هشدارها
پس از تغییر مرجع آنالوگ، ممکن است چند خوانش اولیه از analogRead() دقیق نباشد.
از چیزی کمتر از ۰ ولت یا بیشتر از ۵ ولت برای ولتاژ مرجع خارجی در پایه AREF استفاده نکنید! اگر از یک مرجع خارجی روی پین AREF استفاده میکنید، باید قبل از فراخوانی analogRead() مرجع آنالوگ را روی EXTERNAL تنظیم کنید. در غیر این صورت، احتمالاً به میکروکنترلر برد آردوینو آسیب میرسانید.
همچنین میتوانید ولتاژ مرجع خارجی را از طریق یک مقاومت 5K به پایه AREF متصل کنید که به شما امکان میدهد بین ولتاژ مرجع خارجی و داخلی سوئیچ کنید. توجه داشته باشید که مقاومت، ولتاژی را که به عنوان مرجع استفاده میشود تغییر میدهد زیرا یک مقاومت داخلی 32K روی پایه AREF وجود دارد. این دو به عنوان یک تقسیم کننده ولتاژ عمل میکنند، بنابراین، برای مثال، ۲.۵ ولت اعمال شده از طریق مقاومت، ۲.۵ * ۳۲ / (۳۲ + ۵) = ~ ۲.۲ ولت در پایه AREF تولید میکند.
منبع: https://www.arduino.cc/reference/cs/language/functions/analog-io/analogreference/

