خواندن مقدار دیجیتال توسط آردوینو

جلسه سوم:خواندن مقدار دیجیتال

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


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

برد آردوینو Arduino UNO R3 مدل DIP1 عدد
مقاومت 10 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد1 عدد
تک سوئیچ 2 پایه DIP سایز 6x6x5 میلیمتر1 عدد
برد بورد (پروجکت برد) مدل GL1 عدد
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی)1 عدد

نقشه شماتیک پروژه

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

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

مطابق دو تصویر بالا و نقشه شماتیک ابتدا باید یک کلید را به آردوینو متصل کنید. برای این منظور کافی است ابتدا یک پایه کلید را توسط یک تکه سیم به مثبت منبع تغذیه با همان پایه VCC در آردوینو متصل کنید. سپس پایه دوم کلید را با یک تکه سیم به پین دیجیتال شماره 2 آردوینو متصل کنید. پس از اتصال کلید به آردوینو نوبت اتصال مقاومت 10 کیلو اهم می رسد برای این منظور کافی است یک پایه مقاومت را به ولتاژ منفی منبع تغذیه یا پین GND در آردوینو متصل کنید و بعد از آن پایه بعدی مقاومت را به وسیله یک تکه سیم به پین دیجیتال شماره 2 آردوینو متصل کنید.

شرح عملکرد پروژه

با توجه کردن به نقشه شماتیک متوجه خواهید شد پین دیجیتال شماره 2 آردوینو به صورت همزمان هم به یکسر مقاومت 10 کیلو اهمی و هم به یکسر کلید متصل شده است. زمانیکه کلید فشرده نشده و به طور ساده تر می توان گفت زمانی که کلید باز است، پایه دیجیتال شماره 2 آردوینو توسط مقاومت 10 کیلو اهمی به منفی منبع تغذیه متصل شده و یک ولتاژ منفی بسیار کوچک بر روی آن ایجاد می کند (در دیجیتال منظور از ولتاژ منفی یا منفی منبع تغذیه منطق 0 است). و بلعکس زمانیکه کلید فشرده شده باشد با به طور ساده تر کلید بسته باشد. پایه دیجیتال شماره 2 آردوینو توسط کلید به صورت مستقیم به مثبت منبع تغذیه متصل می شود و یک ولتاژ مثبت نزدیک به 5 ولت بر روی آن ایجاد می کند (در دیجیتال منظور از ولتاژ مثبت منطق 1 است).

در این مثال در حقیقت ما در مبحث دیجیتال با استفاده از کلید، حالت 1 را ایجاد می کنیم و با استفاده از مقاومت 10 کیلو اهمی حالت 0 را ایجاد می کنیم. چون در مدار این پروژه یکسر مقاومت به منفی منبع تغذیه متصل شده، آنرا مقاومت پائین کشنده می نامیم، این به این معنا است که تا زمانیکه کلید فشرده نشده است مقاومت 10 کیلو اهمی باعث 0 یا LOW نگه داشتن پایه دیجیتال شماره 2 آردوینو می شود.

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

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

تعریف یک پایه در آردوینو به عنوان ورودی

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

خواندن وضعیت پایه های آردوینو

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

بعد از خواندن مقدار دیجیتال که در این مثال همان وضعیت کلید است، لازم است آنرا ذخیره کنیم. برای ذخیر وضعیت کیلد لازم است در حلقه اصلی برنامه یک متغیر تعریف کنیم و مقدار دیجیتال خوانده شده را به صورت مستقیم در آن بریزیم. از آنجا که خروجی دیجیتال می تواند عدد یک یا صفر باشد، تعریف یک متغیر از نوع Int کفایت می کند. به همین دلیل طبق دستور زیر ابتدا یک متغیر به نام sensorValue از جنس Int تعریف می کنیم و مقدار دیجیتال خوانده شده را درون متغیر می ریزیم.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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