تبدیل آنالوگ به دیجیتال و نمایش آن در محیط سریال آردوینو

جلسه دوم:تبدیل آنالوگ به دیجیتال

یکی از ویژگی های بردها آردوینو امکان تبدیل سیگنال آنالوگ به دیجیتال یا همان ADC در میکروکنترلرهای AVR است. به این ترتیب که می تواند روی یکی از هر یک از پایه های ADC آردوینو یک ولتاژ بین 0 الی حداکثر 5 ولت اعمال کرده و مقدار آن را به صورت دیجیتال در قالب اعداد دریافت نمود. در این مبحث از آموزش آردوینو ما با استفاده از یک پتانسیومتر یک ولتاژ بین صفر الی 5 ولت روی یکی از پایه های 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 را درج کنیم.

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

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

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

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

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

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

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

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

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

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

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

 تاریخ انتشار : 26 فوریه 2018

3 دیدگاه

  1. سلام تبدیل فلزیاب پالسی به تصویری امکان پذیر هست

  2. خیلی خوب و کامل میگید
    برای کسانی که از صفر میخواهند شروع کنند عالی است

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

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

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

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

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

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