آموزش آردوینودستورات آردوینو

دستور analogRead در آردوینو (تبدیل ADC)

این دستور مقدار ولتاژ را در پین های آنالوگ ورودی میخواند و آنها را به عدد تبدیل میکند.

این دستور برای تبدیل آنالوگ به دیجیتال در برد آردوینو استفاده میشود. برد های آردوینو دارای مبدل های آنالوگ به دیجیتال (ADC) چند کاناله هستند. اکثر برد های آردوینو دارای مبدل 10 بیتی هستند و ولتاژ عملیاتی آنها 5 ولت است. این بدان معنا است که ولتاژ 0 تا 5 را به عددی بین 0 تا 1023 تبدیل میکنند.

دامنه ورودی را می توان با استفاده از دستور analogReference() تغییر داد و وضوح را می توان با استفاده از analogReadResolution() (فقط برای برد های Zero ، Due و MKR) تغییر داد.

در برد های مبتنی بر ATmega  مثل UNO ، Nano ، Mini ، Mega برای خواندن ورودی آنالوگ حدود 100 میکروثانیه (0.0001 ثانیه) زمان لازم است، بنابراین حداکثر میزان خواندن حدود 10 هزار بار در ثانیه است.

برای یادگیری آردوینو (برنامه نویسی، ساخت ربات، ارتباط با اندروید) روی دوره آموزش آردوینو کلیک کنید.
برای یادگیری کامل الکترونیک روی دوره آموزش الکترونیک کلیک کنید.
برد ولتاژ کاری پین های ورودی آنالوگ حداکثر وضوح

Uno

5 ولت

A0 تا A5

10 بیت

Mini, Nano

5 ولت

A0 تا A7

10 بیت

Mega, Mega2560, MegaADK

5 ولت

A0 تا A14

همچنین اگر در مورد این مطلب سوالی داشتید در انتهای صفحه در قسمت نظرات بپرسید

10 بیت

Micro

5 ولت

A0 تا A11*

10 بیت

Leonardo

5 ولت

A0 تا A11*

10 بیت

Zero

3.3 ولت

A0 تا A5

12 بیت**

Due

3.3 ولت

A0 تا A11

12 بیت**

MKR Family boards

3.3 ولت

A0 تا A6

12 بیت**

  • * A0 تا A5 روی برد برچسب گذاری شده اند ، A6 تا A11 به ترتیب در پایه های 4 ، 6 ، 8 ، 9 ، 10 و 12 هستند.
  • ** وضوح پیش فرض analogRead () برای این برد ها 10 بیت است. برای تغییر دادن آن به 12 بیت باید از analogReadResolution() استفاده کنید.

دستور analogRead

analogRead(pin)

  • pin: به جای pin باید نام پین که میخواهید تبدیل آنالوگ به دیجیتال در آن انجام شود را بنویسید.

به طور مثال اگر میخواهید بفهمید در پین A1 چه مقدار ولتاژ وجود دارد (ولتاژ یعنی مقدار آنالوگ را به مقدار دیجیتالی تبدیل کنید) باید دستور را به صورت analogRead(A1) بنویسید.

چه چیزی را بر میگرداند؟

مقدار دیجیتالی را به صورت عدد صحیح برمیگرداند. برای برد های دارای آنالوگ به دیجیتال 10 بیتی این مقدار بین 0 تا 1023 است و برای برد های دارای آنالوگ به دیجیتال 12 بیتی، این مقدار بین 0 تا 4095 است.

نمونه کد با دستور analogRead

در این نمونه کد، ما یک پتانسیومتر را به آردوینو متصل میکنیم و تبدیل را انجام میدهیم. پایه های کناری پتانسیومتر را به GND و VCC متصل کنید.

int analogPin = A3; // پایه میانی پتانسیومتر به این پین متصل میشود.
int val = 0;  // ایجاد متغیر برای قرار دادن مقدار تبدیل شده

void setup() {
  Serial.begin(9600);           //  شروع ارتباط سریال
}

void loop() {
  val = analogRead(analogPin);  // خواندن مقدار در پین ورودی آنالوگ 
  Serial.println(val);          // نمایش مقدار بدست آمده در سریال مانیتور
}

نکات:

  • اگر پین های ورودی آنالوگ به جایی متصل نباشند، مقادیر بازگشت داده شده تصادفی خواهند بود.

دستورات مرتبط:

برای مشاهده توضیحات روی دوره مورد نظر کلیک کنید.

برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام آیرنکس عضو شوید.

تصویر از محمد رحیمی

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید را قرار دهم. (در خصوص سوال در مورد این مطلب از قسمت نظرات همین مطلب اقدام کنید) سعی میکنم تمام نظرات را پاسخ دهم.

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

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