Press "Enter" to skip to content

آنالوگ به دیجیتال در آردوینو (Arduino ADC)

در این مقاله با تبدیل آنالوگ به دیجیتال ADC در برد های آردوینو آشنا میشویم و نحوه برنامه نویسی برای خواندن مقدار دیجیتالی یک ولتاژ را بررسی میکنیم. در این پروژه یک پتانسیومتر را به آردوینو متصل میکنیم و مقدار ولتاژ را در سریال مانیتور آردوینو نمایش میدهیم.

مدار ADC در آردوینو

مدار بسیار ساده است ما باید یک پتانسیومتر را به آردوینو متصل کنیم. دو سر ورودی پتانسیومتر به پایه GND و 5V آردوینو متصل میشوند. پایه خروجی پتانسیومتر باید به پینی از آردوینو متصل شود که قابلیت ADC را داشته باشد. برد آردوینو اونو 6 کانال آنالوگ به دیجیتال A0 تا A5 را دارد. ما میخواهیم از پین A1 استفاده کنیم. اتصالات را مانند تصویر زیر انجام دهید.

مدار ADC در آردوینو

قطعات مورد نیاز

  • برد آردوینو اونو
  • پتانسیومتر 5 کیلو اهم

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

بردولتاژ کاریپین های قابل استفادهوضوح

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 بیت

کد آنالوگ به دیجیتال در آردوینو

آنالوگ به دیجیتال در برد آردوینو اونو 10 بیتی است. یعنی آردوینو ولتاژ 0 تا 5 ورودی را به عددی بین 0 تا 1023 تبدیل میکند. یعنی اگر ولتاژ ورودی 5 ولت باشد آردوینو به ما مقدار 1023 را بر میگرداند. بنابراین با یک تناسب گیری ساده میتوانیم عدد بدست آمده را به ولتاژ 0 تا 5 تبدیل کنیم.

ما میخواهیم ولتاژ را در سریال مانیتور نمایش دهیم. بنابراین در قسمت void setup ارتباط سریال را با نرخ 9600 آغاز میکنیم.

void setup(){
Serial.begin(9600);
}

حالا به قسمت void loop میرسیم. کد این قسمت تا زمانی که آردوینو روشن باشد تکرار میشود. در ابتدا ما دو متغیر تعریف میکنیم.

  • متغیر اعشاری (float) به نام voltage
  • متغیر عدد صحیح (int) به نام v
void loop(){
float voltage; // ایجاد متغیر
int v = analogRead(A1); // برابر کردن متغیر با مقدار ADC
voltage = v/1023*5.0; // تناسب و محاسبه ولتاژ
Serial.println(voltage); // چاپ کردن ولتاژ در سریال مانیتور
delay(500);
}

متغیر v را برابر با دستور analogRead(A1) قرار میدهیم. دستور analogRead برای خواندن مقدار ADC پایه مورد نظر ما استفاده میشود. شما میتواند به جای A1 نام پایه مورد نظر خود را قرار دهید.

در ادامه عملیات تناسب گیری برای تبدیل مقدار ADC به ولتاژ را انجام میدهیم تقسیم ولتاژ بر نتیجه ضرب 1023 در 5 میشود. که در اینجا 1023 وضوح ADC ما و 5 هم حداکثر ولتاژ است.

در نهایت با استفاده از دستور Serial.println مقدار ولتاژ را در سریال مانیتور نمایش میدهیم. همچنین یک تاخیر 500 میلی ثانیه ای برای بهتر شدن نتیجه در سریال مانیتور قرار داده شده است.

کد کامل:

void setup(){
Serial.begin(9600);
}

void loop(){
float voltage; // ایجاد متغیر
int v = analogRead(A1); // برابر کردن متغیر با مقدار ADC
voltage = v/1023*5.0; // تناسب و محاسبه ولتاژ
Serial.println(voltage); // چاپ کردن ولتاژ در سریال مانیتور
delay(500);
}

 

5/5 - (2 امتیاز)

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

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