ساخت ولت متر بسیار ساده با آردوینو

جلسه پنجم:ساخت ولت متر

پروژه ساخت ولت متر به شما نشان می دهد که چگونه می توانید، مقدار ولتاژ اعمال شده بر روی هر یک از پایه های ورودی آنالوگ آردوینو را، به صورت دقیق محاسبه کنید. در این مطلب از آموزش آردوینو ابتدا ما با استفاده از مبدل آنالوگ به دیجیتال یا همان واحد ADC آردوینو، مقدار آنالوگ اعمال شده بر روی پایه های ADC آردوینو را به مقدار دیجیتال تبدیل می کنیم و سپس با یک فرمول ساده مقدار دیجیتال را به مقدار واقعی و دقیق ولتاژ تبدیل می کنیم و در نهایت میزان ولتاژ را در محیط ترمینال نرم افزار Arduino (IDE) چاپ می کنیم.


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

برد آردوینو Arduino UNO R3 مدل DIP1 عدد
ولوم 10kΩ1 عدد
برد بورد (پروجکت برد) مدل GL1 عدد
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی)1 عدد

توضیحات پروژه

مطابق دو تصویر زیر و نقشه شماتیک یک پتانسیومتر شامل سه پایه است که هر سه آن ها را به وسیله سه تکه سیم همانند تصویر به این صورت که پایه اول را به منفی منبع تغذیه یا پین GND بر روی برد آردوینو متصل و می کنیم و پایه دوم را به مثبت منبع تغذیه با ولتاژ حداکثر 5 ولت با پین 5V بر روی آردوینو متصل می کنیم و در نهایت پایه میانی پتانسیومتر را به پین آنالوگ A0 بر روی برد آردوینو متصل می کنیم.

بعد قبل
ساخت ولت متر بسیار ساده با آردوینو
ساخت ولت متر بسیار ساده با آردوینو
بعد قبل

سخت افزار پروژه

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

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

شرح عملکرد واحد ADC آردوینو

حال برد Arduino توسط مبدل آنالوگ به دیجیتال داخلی خود یا همان ADC، ولتاژ اعمال شده به پایه آنالوگ A0 آردوینو را به مقدار دیجیتال در بازه 0 الی 1023 تبدیل می کند. زمانیکه ولتاژ اعمال شده به پایه ADC آردوینو توسط پتانسیومتر به سمت 0 میل می کند، مقدار دیجیتال آن نیز به سمت صفر میل می کند به طوریکه اگر ولتاژ صفر ولت بر روی پایه آنالوگ A0 آردوینو اعمال شود مقدار عدد دیجیتال آن نیز صفر می شود و بلعکس اگر ولتاژ اعمال شده به پایه ADC آردوینو توسط پتانسیومتر به سمت مثبت 5 ولت میل کند، مقدار دیجیتال آن نیز به سمت عدد 1023 میل می کند به طوریکه اگر ولتاژ مثبت 5 ولت بر روی پایه آنالوگ A0 آردوینو اعمال شود مقدار عدد دیجیتال آن نیز برابر با 1023 می شود.

برقراری ارتباط سریال در آردوینو

تنها کاری که برای برقراری ارتباط سریال لازم است انجام دهید، استفاده از دستور زیر است. توسط دستور زیر می توانید ارتباط سریال را پیکر بندی کنید. برای ارتباط سریال نیاز است تا یک باود ریت (پهنای باند) برای پردازشگر آردوینو تعریف نمائید. لازم به ذکر است این مقدار باید در هر دو دستگاه که در اینجا برد آردوینو و کامپیوتر است باید یکسان باشد.

خواندن مقدار آنالوگ و تبدیل آن به دیجیتال در آردوینو

در ادامه برنامه نویسی در حلقه اصلی برنامه احتیاج داریم تا یک متغیر برای ذخیره مقدار اندازه گیری شده مبدل آنالوگ به دیجیتال یا همان ADC نیاز داریم. لازم به ذکر است در اینجا ما به متغیری نیاز داریم که بتواند عدد 0 الی 1023 را در خود جای دهد که در اینجا متغییر نوع Int انتخاب مناسبی است. حال با دستور زیر این متغیر را ایجاد می کنیم. و در ادامه آن توسط دستور analogRead() مقدار آنالوگ را به دیجیتال تبدیل نموده و در متغیر می ریزیم. لطفا توجه داشته باشید چون در این مثال ما از پایه آنالوگ A0 آردوینو برای عملیات ADC استفاده کرده ایم باید درون پردانتز موجود در دستور analogRead() عبارت A0 را درج کنیم.

تا به اینجا کار ما توانسته ایم مقدار ولتاژ آنالوگ اعمال شده بر روی پایه ADC آردوینو را به مقدار دیجیتال آن تبدیل کنیم و در نهایت آنرا در یک متغیر به نام sensorValue از جنس Int ذخیره کنیم. حال برای اینکه بتوانیم مقدار ولتاژ را محاسبه کنیم کافی است طبق فرمول زیر عمل کنیم. همانطور که در این فرمول مشاهده می کنید ما ابتدا مقدار 5 را بر عدد 1023 تقسیم کرده ایم و نتیجه آنرا در مقدار متغیر sensorValue که حاوی مقدار دیجیتال ولتاژ آنالوگ اعمال شده بر روی پایه A0 آردوینو می باشد، ضرب کرده ایم. و در انتها مقدار بدست آمده که همان مقدار دقیق ولتاژ است را در یک متغیر به نام voltage از جنس float ریخته ایم.

چاپ مقدار متغیر در محیط سریال

کار تمام است، تا به اینجا کار ما ارتباط سریال را پیکربندی کردیم و در ادامه مقدار آنالوگ را به دیجیتال تبدیل و در نهایت با یک فرمول بسیار ساده مقدار دقیق ولتاژ را محاسبه کردیم و آنرا درون متغیری به نام voltage از جنس float ذخیره کردیم. حالا فقط یک قدم به پایان کار مانده است و آن هم چاپ مقدار متغیر voltage در محیط سریال است. که این کار به راحتی توسط دستور Serial.println() قابل انجام است. برای اینکه این دستور کامل شود تنها لازم است در داخل پرانتز نام متغیری که می خواهیم چاپ کنیم را همانند دستور زیر درج نمائیم.

ایجاد تاخیر در برنامه آردوینو

در انتهای برنامه برای اینکه تاخیر کوچکی در بین چاپ مقادیر ایجاد کنیم از دستور delay(); استفاده می کنیم. برای استفاده از این دستور کافی است مدت زمانی که می خواهیم تاخیر ایجاد شود را در واحد میلی ثانیه در داخل پرانتز وارد نمائید.

سورس کد برنامه در نرم افزار آردوینو

آموزش صفر تا صد برنامه نویسی بردهای آردوینو – جلسه پنجم

 اطلاعات پروژه

 رمز فایل : www.electronics98.com (این مطلب فاقد فایل جهت دانلود است)

 محیط برنامه نویسی : Arduino (IDE)

 برنامه نویسی شده به زبان : ترکیبی از برنامه نویسی به زبان سی (C) یا سی پلاس پلاس (++C)

 نویسنده : فرهاد اکبری

 تاریخ انتشار : 10 مارس 2018

8 دیدگاه

  1. سلام .برد اردینو کامپاین نمیشه و چراغtxموقع وصل کابل به گوشی روشن میشه چرا.؟

  2. کامپایل نشدن برنامه بر روی برد آردوینو می تواند به دلایل زیر می باشد، که باید همه آنها را بررسی کنید:
    1- خراب بودن کابل رابط و عدم اتصال صحیح برد آردوینو به کامپیوتر
    2- نصب نشدن صحیح درایور برد آردوینو بر روی ویندوز
    3- عدم سازگاری ویندوز شما با نرم افزار آردوینو (در برخی موارد به دلیل ویروسی بودن و با خراب بودن ویندوز نرم افزار به صورت صحیح نصب نمی شود، بهتر است یکبار بر روی یک کامپیوتر دیگر برد خود را ازمایش کنید)
    4- وجود خطا در برنامه که باعث عدم کامپایل شدن برنامه می شود.
    5- خراب بودن برد آردوینو

  3. سلام
    از این که وقت گذاشتین برای بنده ،سپاسگزارم
    در واقع بعد از اینکه از مثال های داخل خود اردینو جهت یاد گرفتن و کار با اردینو استفاده میکنم این اتفاق میوفته و این مشکل برای برد ایجاد میشه.به احتمال زیاد برد سالم هستش .وقتی با مثال اول برد که چشمک زن هستن کار میکنم ،دقیق و میزان کار میکنه .ولی وقتی مثال شماره دوم که رو مخام اجرا کنم این مشکل براش پیش میاد.چراغ tx روشن میشه.و بعد از اون دگه اپلود صورت نمیگیره و خطای زیر رو نمایش میده.
    Uploading error
    Avrdude done.thank you
    Error:process returned not zero result cod:1
    لطف کنید راهنمایی و رفع مشکل اینجانب کنید
    سپاس گذارم

  4. دوست عزیز الان این سومین برد اردینو هستش که خریداری کرده ام.
    تا وقتی که مثال اول از تو اردینو رو کار میکنم خوب و درست اپلود میشه.ولی مثال دوم که کار با کلید هستش رو اجرا میکنم.مشکل برای اردینو پیش می اید.
    وحتی دیگه مثال اول که چراغ چشمک زن هستش رو اپلود نمیکنه و چراغ tx رو برد اردینو روشن میماند
    لطف کنید راهنمایی کنید.
    متشکرم

  5. سلام دوست عزیز
    شما از چه برنامه و چه سخت افزاری برای ارتباط با آردوینو استفاده می کنید؟

  6. گوشی نوت 3………اندروید
    برنامه.ArduinoDroid

  7. سلام
    باگوشی سامسونگ نوت3
    برنامه اندروید کار با اردینو رو از سایت

    گرفتم.
    ممنونم از پی گیری شما

  8. فرهاد اکبری

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

 شرایط و قوانین ثبت دیدگاه

 فارسی بنویسید و از کیبورد فارسی استفاده کنید.

 لطفاً بیش‌از‌حدِ معمول، شکلک یا ایموجی استفاده نکنید و از کشیدن حروف یا کلمات با صفحه‌کلید بپرهیزید.

 به کاربران و سایر اشخاص احترام بگذارید. پیام‌هایی که شامل محتوای توهین‌آمیز و کلمات نامناسب باشند، حذف می‌شوند.

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