ورودی آنالوگ در Arduino — راهنمای کاربردی

۱۸۴۷ بازدید
آخرین به‌روزرسانی: ۲۳ اردیبهشت ۱۴۰۲
زمان مطالعه: ۲ دقیقه
ورودی آنالوگ در Arduino — راهنمای کاربردی

ورودی‌های آنالوگ به منظور وارد‌کردن اطلاعات آنالوگ به داخل بردهای دیجیتال استفاده می‌شوند. در این مطلب می‌خواهیم با این ورودی‌ها در برد‌های معروف Arduino آشنا شویم یا در اصل به مبحث ورودی آنالوگ در Arduino بپردازیم.

فهرست مطالب این نوشته

فیلم آموزشی ورودی آنالوگ در Ardunio

دانلود ویدیو

در خیلی از پروژه‌های عملی مهندسی برق، لازم است داده‌های آنالوگ سنسورها وارد برد‌های دیجیتال شوند. برای مثال برای اندازه‌گیری شدت نور محیط از سنسورهای LDR استفاده می‌شود. این سنسور یک مقاومت متغیر وابسته به نور محیط است و با تغییر نور محیط مقاومت الکتریکی آن نیز تغییر می‌کند. برای تبدیل تغییرات مقاومت به تغییرات ولتاژ الکتریکی از مدار مقسم ولتاژ استفاده می‌شود.

بنابراین مطابق شکل ۱، با تغییر نور محیط ولتاژ دو سر سنسور LDR تغییر پیدا خواهد کرد و ما می‌توانیم با اندازه‌گیری ولتاژ، نور محیط را اندازه‌گیری کنیم.

اتصال سنسور LDR به برد Arduino
شکل ۱: اتصال سنسور LDR به برد Arduino

تعداد ورودی‌های آنالوگ در بردهای مختلف Arduino متفاوت است. برای مثال در آردیونو نوع UNO، فقط ۶ ورودی آنالوگ وجود دارد که در پایین و سمت راست برد قرار گرفته است (شکل ۲).

پین‌های ورودی آنالوگ در آردیونو Uno
شکل ۲: پین‌های ورودی آنالوگ در آردیونو Uno

برای خواندن اطلاعات آنالوگ در نرم‌افزار Arduino از دستور analogRead استفاده می‌کنیم. محدوده اندازه‌گیری ولتاژ عموما بین ۰ تا ۵ ولت و برای برد آردیونو Due ۰ تا ۳.۳ ولت است. همچنین دقت اندازه‌گیری در اغلب بردهای آردیونو ۱۰ بیت است. یعنی خروجی دستور analogRead اعداد صحیح بین ۰ تا ۱۰۲۳ است. ۰ متناظر با صفر ولت و  ۱۰۲۳ متناظر با ۵ ولت است و برای بقیه ولتاژها رابطه خطی برقرار است. البته در برد آردیونو Due می‌توان تعداد بیت‌ها را افزایش داده و داده‌های آنالوگ را با دقت بالاتری قرائت کرد.

فرض کنید بخواهیم ولتاژ خروجی یک پتانسیومتر را توسط آردیونو Uno بخوانیم و بر روی سریال مانیتور نرم‌افزار نمایش بدهیم. اتصالات سخت‌افزاری مطابق شکل ۳ زیر برقرار می‌شود. پایه‌های ثابت پتانسیومتر به تغذیه ۵ ولت و زمین آردیونو و پایه مشترک نیز به ورودی آنالوگ A0 متصل می‌شوند.

اتصال پتانسیومتر به Uno
شکل ۳: اتصال پتانسیومتر به Uno

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

1#define inputPin A0;
2void setup()
3{
4pinMode(inputPin, INPUT);
5Serial.begin(9600);
6}
7void loop()
8{
9int reading = analogRead(inputPin);
10float volts = reading / 204.6;
11Serial.println(volts);
12delay(500);
13}

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

^^

بر اساس رای ۱۳ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
مجله فرادرس
۷ دیدگاه برای «ورودی آنالوگ در Arduino — راهنمای کاربردی»

سلام استاد
یه سوال الکتروشرعی :

اگه رفرنس را مثلا 2 ولت در نظر بگیریم ایا نباید ولوم یا ldr و دماسنج را هم به همون ولتاژ 2 ولت وصل کنیم .

آخه تو فکرم اینه که مثلا 2 ولت دادیم به ولوم . رفت و دور زدو اومد(میپرسید چی ؟ خب جریان دیگه!) حالا اگه 1 ولتش اومد میفهمیم 50 درصد روشنایی یا نصف طول مسیر ولوم یا مثلا دما 50 در جه است!
پس بایه این دیوایس ها ، هم ولتاژ با ولتاژ مرجع باشند!

درسته یا نه؟
کجای کارم میلنگه؟

ممنون از لطفتون….

با عرض سلام چگونه میتوانم خروجی سنسور انالوگ که یک سنسور القایی است را به میلی متر در اردینو برنامه نویسی کنم؟البته با دقت دهم میلی متر ممنونم

با سلام
ببخشید من در پروژه ای که دارم در برد آردوینو نانو که دارای ۸ ورودی آنالوگ است نیاز به ۱۰ ورودی دارم.
آیا می‌شود سنسور(فشار) و (دما و رطوبت) را با هم وصل کرد وا با همان برنامه نویسی اجرا کرد؟

سلام
آیا حذف دستور pinMode(inputPin, INPUT); در روتین setup باعث ایجاد اشکالی در عملکرد مدار خواهد شد؟

سلام.
در کل برای ورودی‌های آنالوگ ضرورتی ندارد از pinmode استفاده شود و پیش‌فرض آن‌ها همان ورودی است. ولی بهتر است بنویسیم، چون پین‌های آنالوگ اردوینو‌ می‌توانند به عنوان پین دیجیتال هم استفاده شوند (با همین دستور pinmode) و ممکن است در برخی بردها پیش‌فرض پین دیجیتال باشد و‌ لازم باشد با این دستور آن را پیکربندی کرد. همچنین به خوانایی برنامه نیز کمک می‌کند و سریع‌تر می‌توانیم متوجه شویم که چه پین‌هایی ورودی و خروجی هستند.
از همراهی شما با مجله فرادرس سپاسگزاریم.

قشنگ بود اما در قسمت کد در خط 3 اون inputPin باید بجاش بنویسین A0

سلام، وقت شما بخیر؛

تشکر از شما، بابت ارائه بازخورد در این رابطه، مطلب بر اساس موردی که شما فرموده بودید مجدداً مورد بازنگری قرار گرفته است.

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

نظر شما چیست؟

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