خواندن ولتاژ آنالوگ در آردوینو، در این مثال میخواهیم روش خواندن ولتاژ آنالوگ بر روی پایه A0 را باهم بررسی کنیم. ابتدا ولتاژ آنالوگ روی این پایه را توسط تابع analogRead محاسبه میکنیم و سپس بر روی خروجی سریال در نرم افزار آردوینو نشان خواهیم داد.
قطعات و وسایل مورد نیاز:
- 1 عدد برد بورد
- 1 عدد برد آردوینو Uno R3
- 1 عدد پتانسیومتر 5 کیلو اهم
- 2 عدد سیم جامپر
پتانسیومتر:
یک پتانسیومتر (یا pot) یک ترانسدیوسر یا مبدل ساده الکترومکانیکی است. پتانسیومتر یک حرکت خطی یا دورانی را به تغییر مقاومت در مدار تبدیل میکند. این تغییر مقاومت را در یک مدار الکتریکی میتوانیم به تغییر در صدای یک تقویت کننده صوتی یا تغییر جهت یک باربر کشتی تبدیل کنیم.
در گذشته واژه pot اولین بار تحت نام رئوستا (rheostat ) (مقاومت متغیر سیمی) شناخته شد. امروزه انواع مختلف زیادی از پتانسیومترها در بازار وجود دارد و برای کسانی که اولین بار میخواهند یک مورد مناسب برای مدار خود پیدا کنند ممکن است کمی گیج کننده باشد. انواع مختلفی از پتانسیومترها وجود دارند که عملکرد یکسانی دارند ولی شاید استفاده از یک مورد خاص برای یک کاربرد آسان تر باشد.
شکل سمت چپ سمبل مداری استاندارد یک pot را نشان میدهد. شکل سمت راست یک پتانسیومتر را نشان میدهد.
نرم افزار آردوینو:
نرم افزار آردوینوی خود را باز کنید. با استفاده از برنامه آردوینو میتوانید مدار خود را کنترل کنید. یک sketch جدید از طریق منوی File و گزینه New باز کنید.
کد آردوینو:
/* 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 باز کنید.
نتایج:
همان طور که مشاهده میکنید یک جریانی از دادهها با محدوده مقدار بین 0 تا 5 نمایش داده میشود. اگر پتانسیومتر را تغییر دهید مقادیر نشان داده شده نیز تغییر میکنند که متناسب با تغییر ولتاژ بر روی پایه A0 است.
خیلی ممنون از اینکه در این آموزش هم با ما همراه بودید. امیداوارم این آموزش هم برایتان مفید بوده باشد.
منبع: میکرودیزاینرالکترونیک