خواندن ولتاژ آنالوگ در آردوینو

در این مثال میخواهیم روش خواندن ولتاژ آنالوگ بر روی پایه A0 را باهم بررسی کنیم. ابتدا ولتاژ آنالوگ روی این پایه را توسط تابع analogRead محاسبه می کنیم و سپس بر روی خروجی سریال در نرم افزار آردوینو نشان خواهیم داد.

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

  • 1 عدد برد بورد
  • 1 عدد برد آردوینو Uno R3
  • 1 عدد پتانسیومتر 5 کیلو اهم
  • 2 عدد سیم جامپر

پتانسیومتر  :

یک پتانسیومتر (یا pot) یک ترانسدیوسر یا مبدل ساده الکترومکانیکی است. پتانسیومتر یک حرکت خطی یا دورانی را به تغییر مقاومت در مدار تبدیل می کند. این تغییر مقاومت را در یک مدار الکتریکی میتوانیم به تغییر در صدای یک تقویت کننده صوتی یا تغییر جهت یک باربر کشتی تبدیل کنیم.

در گذشته واژه pot اولین بار تحت نام رئوستا (rheostat ) (مقاومت متغیر سیمی) شناخته شد. امروزه انواع مختلف زیادی از پتانسیومترها در بازار وجود دارد و برای کسانی که اولین بار میخواهند یک مورد مناسب برای مدار خود پیدا کنند ممکن است کمی گیج کننده باشد. انواع مختلفی از پتانسیومترها وجود دارند که عملکرد یکسانی دارند ولی شاید استفاده از یک مورد خاص برای یک کاربرد آسان تر باشد.

Arduino-pot-1

شکل سمت چپ سمبل مداری استاندارد یک pot را نشان می دهد. شکل سمت راست یک پتانسیومتر را نشان می دهد.

مطلب پیشنهادی:  آموزش کار با سنسور‌های دما و رطوبت DHT11 و DHT22 با استفاده از آردوینو

نرم افزار آردوینو :

نرم افزار آردوینوی خود را باز کنید. با استفاده از برنامه آردوینو میتوانید مدار خود را کنترل کنید. یک sketch جدید از طریق منوی File و گزینه New باز کنید.

Arduino-pot-2

کد آردوینو :

/*
 ReadAnalogVoltage
 Reads an analog input on pin 0, converts it to voltage, 
 and prints the result to the serial monitor.
 Graphical representation is available using serial plotter (Tools > Serial Plotter menu)
 Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.
*/

// the setup routine runs once when you press reset:

void setup() {
 // initialize serial communication at 9600 bits per second:
 Serial.begin(9600);
}

// the loop routine runs over and over again forever:

void loop() {
 // read the input on analog pin 0:
 int sensorValue = analogRead(A0);
 // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
 float voltage = sensorValue * (5.0 / 1023.0);
 // print out the value you read:
 Serial.println(voltage);
}

نکات برنامه :

اولین کاری که در برنامه انجام می دهیم آغاز ارتباط سریال و تنظیم سرعت آن بر روی 9600 بیت بر ثانیه برای ارتباط بین کامپیوتر و آردوینو است.

Serial.begin(9600);

در حلقه main باید یک متغیر تعریف نماییم که مقدار مقاومت پتانسیومتر را در خود ذخیره کند. (که مقداری بین 0 تا 1023 خواهد بود و به راحتی در یک متغیر int قابل ذخیره سازی است)

int sensorValue = analogRead(A0);

به منظور تبدیل مقدار تغییر مقاومت از محدوده 0 تا 1023 به یک ولتاژ، پس از خواندن پایه باید مقدار آن را در یک متغیر نوع float ذخیره و تعدادی عملیات ریاضی روی آن انجام دهیم. همچنین برای این که محدوده مقدار ذخیره شده بین 0 تا 0.5 باشد باید عدد 5 را تقسیم بر 1023 کنیم و مقدار حاصله را در مقدار اندازه گیری شده توسط سنسور ضرب کنیم.

float voltage= sensorValue * (5.0 / 1023.0);

در نهایت برای چاپ مقدار محاسبه شده پنجره در خروجی سریال نرم افزار آردوینو از دستور Serial.println در آخرین خط از برنامه استفاده می کنیم.

Serial.println(voltage)

حالا پنجره Serial Monitor را در نرم افزار از طریق کلیک بر روی آیکون بالا سمت راست یا فشردن کلید های  Ctrl+Shift+M باز کنید.

مطلب پیشنهادی:  راه اندازی ماژول ws2812 با اردینو

Arduino-pot-3

نتایج :

همان طور که مشاهده میکنید یک جریانی از داده ها با محدوده مقدار بین 0 تا 5 نمایش داده می شود. اگر پتانسیومتر را تغییر دهید مقادیر نشان داده شده نیز تغییر می کنند که متناسب با تغییر ولتاژ بر روی پایه A0 است.

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

اگر این نوشته‌ برایتان مفید بود لطفا کامنت بنویسید.

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

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

3 دیدگاه

  1. از این روش برای راه اندازی سنسور flc100 مگنومتر میشه استفاده کرد ؟

  2. سلام قسمتی از پروژه ام باید برنامه نویسی آردینیو انجام بشه کسی بلد این کار رو بکند؟ هزینه اش به صورت خواهد بود؟

  3. سلام ممنون از آموزش خوبتون مهندس من ازتون درخواستی دارم که در ادامه آموزش بدین چطور میتونیم خروجی ازش بگیریم مثلا در سه مرحله ال ای دی روشن کنیم ال ای دی 1 و 2 و 3 در سه مرحله با پتانسیو متر ممنوونم