آموزش آردوینو – فصل اول

//آموزش آردوینو – فصل اول

آموزش آردوینو – فصل اول

هر فصل از ۱۴ فصل آموزش آردوینوتقدیم میشه به یکی از امامان معصوم.این فصل تقدیم  میشه به:

امام رضا (ع)

آردوینو چیست؟

خیلی وقتها پیش اومده برای اینکه زندگی راحت تری داشته باشیم بفکر بیفتیم که چیکار کنیم تا یکسری از کارها رو خودمون انجام ندیم؟! بقول یکی تنبلی سبب پیشرفت علم شده!! صرفنظر از اینکه چقدر این حرف درست باشه یا نه ,خیلی از کارهای روزانه مون که قبلا خودمون انجام میدادیم رو الان با کمک تکنولوژی انجام میدیم. قبلا وقتی با ماشین می رسیدیم درب پارکینگ باید پیاده می شدیم و درب رو باز میکردیم و بعد ماشین رو می بردیم داخل پارکینگ و بعد بر می گشتیم و درب پارکینگ رو می بستیم. اما الان با یک ریموت درب پارکینگ رو باز میکنیم و بعد درب رو میبندیم. یا مثلا با موبایل خیلی از کارهامونو انجام میدیم و… . همه اینها نشون میده که تکنولوژی باعث راحت تر شدن کارهای روزمره ما شده.میتونی بری اون وسیله ای رو که نیاز داری از بازار بخری و نصبش کنی و ازش استفاده کنی. اما بعضی کارها هست که خیلی خاص هستند و شاید یه جورایی شخصی باشند و تکنولوژی تا حالا کاری براشون نکرده باشه اونوقت چی؟

اونوقت باید چیکار کرد؟ باید وایسیم تا تکنولوژی یه راهی براشون پیدا کنه ؟یا شایدم انقدر شخصی باشندکه هیچکسی حاضر نباشه یه راهکار برای اون ارائه بده.پس تکلیف چیه؟

خوشبختانه یه سری ادم جالبناک اومدن یه سری چیزای جالبناکتر! ساختن که در حقیقت شما با اونها میتونین خیلی از چیزهاییکه تو ذهنتون هست رو خودتون بسازین! تازه جالبناکتر از همه اینه که قیمت اونها ارزون هست!! یعنی شما برای رسیدن به اون چیزاییکه تو ذهنتون هست خیلی راحت میتونین اونها رو بخرین و بسازین!!

مثلا چی؟  یکی ازتکنولوژیهای جدیدی که چند ساله اومده و طرفداران زیادی هم داره “هوشمند سازی” هست ! مثلا هوشمند سازی منزل .شاید یکی از چیزای جالبی که داره اینه که میتونین با گوشی موبایلتون و با یه اپلیکیشنی که برای همین منظور طراحی شده چراغ خونه یا تلویزیون یا انواع دستگاهها رو کنترل کنین. یا حتی اونها رو جوری برنامه ریزی کنین که مثلا ساعت ۶ صبح پرده ها بره کنار و نور بیفته داخل منزل و … .همه اینها امکانات جالبی هستند که خیلی از شرکتها اونا رو ساختند و به بازار عرضه کردند و ما میتونیم از اونها استفاده کنیم. یک نکته خیلی مهمی که وجود داره اینه که این دستگاهها ارزون نیستند و همچنین قابلیت انعطاف پذیری به هر شکلی که ما دلمون میخاد رو ندارند. مثلا من دلم میخواد که وقتی رسیدم نزدیک منزل درب پارکینگ رو با تلگرام باز کنم!!  چجوری؟  مثلا به یه ربات تو تلگرام دستور میدم که درب رو باز کن! اما میشه این رو روی سیستم هوشمند خونه پیاده سازی کنم یا نه! باز میرسیم به همون سوال قبل که تکلیف چیه؟

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

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

بذار برات یه مثال بزنم تا اونو درک کنی. فرض کن به یه نفر که درک درستی از آشپزی نداره بگی : این چیزهایی که نیاز داری تا باهاش کیک شکلاتی درست کنی لطفا یک کیک شکلاتی برای من درست کن .بنظرت اون میتونه؟ نه نمیتونه.چرا؟ چون بلد نیست.

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

میکرو کنترلر ها هم به همین صورت هستند .یعنی از اول دستوری داخلشون ریخته نشده که کار خاصی بکنند . اما این قابلیت رو دارند که با توجه به برنامه ای که (مثل همون دستور پخت کیک) داخلشون ریخته میشه یکسری کار انجام بدهند.

اما قیمت این میکرو کنترلر ها در مقایسه با کارهاییکه انجام میدن خیلی ارزونه .در حقیقت وقتیکه برنامه ریزی میشند( به اصطلاح پروگرام میشند) قیمتشون میره بالا. یعنی برنامه ریزی میشند که یه کاری انجام میدن و تبدیل میشن به یه محصول مثلا لامپ هوشمند اونوقته که قیمت پیدا میکنند. خب خیلی این حرفها خسته کننده بود چطوره ببینیم این میکرو کنترلرها چه شکلی هستند :

در شکل بالا تعدادی از میکروکنترلرها با شکلهای ظاهری متفاوت رو می بینید.یکی از معروفترین و محبوبترین میکرو کنترلرها خانواده “میکروکنترلرهای AVR ” میباشند. اینکه گفته میشه خانواده چون اقسام مختلفی دارند. برای اطلاعات بیشتر میتونین میکروکنترلرهای AVR رو دراینترنت سرچ کنین و مدلها ومشخصاتشون رو با همدیگه مقایسه کنین. اما اینجا چون میخوایم راجع به آردوینو صحبت کنیم پس سریعتر ادامه میدیم. خلاصه این میکروکنترلرها دارای یکسری ویژگیهایی هستند که انشاا.. به مرور با اونها آشنا میشیم. اما یه مسئله ای که وجود داره اینه که شما باید یک پروگرامر پیدا کنید و میکروکنترلر رو داخل اون بذارین و یک برنامه ای پیدا کنید و بعد از نوشتن برنامه دلخواهتون توسط پروگرامر, روی اونها پروگرام کنید و بعد از اینکه تموم شد میکرو کنترلر رو روی بورد لحیم کنین و تغذیه بهشون متصل کنین و …. بعد تا بتونین ازشون استفاده کنید. اما یکسری ادم زحمت کشیدند و یه بوردی طراحی کردند که روی اون بورد میکروکنترلر هست میتونین تغذیه بهش متصل کنین و همینطور پایه هاشو جوری طراحی کردند که بتونین به راحتی ازش استفاده کنین .حتی میتونین اونها رو به کامپیوتر متصل کنین و یه نرم افزارم براش نوشتند که میتونین تو اون نرم افزار برنامه مورد نظرتون رو بنویسین و میکروکنترلررو پروگرام کنین. تازه یه عالمه بصورت پیشفرض برنامه و مثال داخل نرم افزار داره که میتونین اونو روی میکرو کنترلر پروگرام کنین. دیگه چی میخوای ؟؟؟؟

همه چیز مهیاست برای اینکه اونچیزی که میخای رو بسازی.

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

بستگی به کاری که میخای بکنی داره اگه میخای که ورودی و خروجی زیادی داشته باشی بهتره ازآردوینو مگا استفاده کنی شکلش اینجوریه :

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

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

بطور کلی بوردی که معمولا پیشنهاد میشه برای شروع به کار آردوینو UNO هست که هم کارکردن باهاش راحتتره و هم اینکه قیمت بالایی نداره . در شکل زیر یک بورد آردوینو UNO رو میبینین:

خب همونطور که میبینین  آردوینو UNO یک سوکت داره که باکابل به یو اس بی کامپیوتر متصل میشه:

نکته مهم:

وقتی که سوکت یو اس بی آردوینو به کامپیوتر متصل هست هیچ موقع برق آردوینو رو متصل نکنین! وقتی پروگرام برنامتون تموم شد ابتدا آردوینو رو از کامپیوتر بکشین و سپس برق آردوینو رو متصل کنین.

یه کار جالبناک بکنیم!!

بدون اینکه بدونیم چی به چیه و چجوری برنامه نویسی میکنند!! میخایم LED( چراغ روی بورد) آردوینو رو خاموش روشن کنیم!!

میشه یعنی ؟!!!

بله میشه .اما قبلش چند تا چیز میخواد که باید داشته باشی:

۱- بورد آردوینو UNO به همراه کابل یو اس بی

۲- نرم افزار آردوینو

خب این دومی رو هنوز نگفتیم و جاماندیه!!

تو اینترنت میگردین و “نرم افزار آردوینو” رو به فارسی تو گوگل سرچ می کنین و دانلودش میکنین . اگرم نمیدونین کجا پیدا کنین به مسیر زیر برین و اونو دانلود کنین:

به سایت آردوینو برین :

https://www.arduino.cc/en/Main/Software

یا در اینترنت اردوینو رو سرچ کنین و یکی ازاونها رو دانلود کنین .مثلا مثل لینک زیر :

http://dl.yasdl.com/user2/Arash/2017/January/Software/ARDUINO.1.8.1_YasDL.com.rar

 بستگی داره که اونموقع که شما دانلود میکنین کدوم ورژنش تو اینترنت باشه و بعد از اون نصب میکنین .بعد نرم افزار رو باز میکنین و یه صفحه ای شبیه این میبینین:

خب بعد از اون بورد رو به کامپیوترتون متصل میکنین.وبه قسمت DEVICE MANAGER میرین که ببینین بورد آردوینو درست نصب شده یا نه و شماره پورتش چنده.

اول بورد رو به کامپیوتر متصل میکنیم :

بعد منتظر می شیم که کامپیوتر اونو شناسایی کنه, در search  ویندوز device manager رو تایپ میکنین و روش کلیک میکنین:

اگه پورت شناخته شد که خیلی خوبه ولی اگه نشناخت باید به اینترنت متصل باشین و درایور از اینترنت دانلود بشه, در قسمت پایین میبینیم که درایور رو نشناخته (اگه بشناسه مثل یک پورت اونو نشون میده) پس روی اون قسمت کلیک راست میکنیم و گزینه update driver  رو میزنیم:

در قسمت بعدی اگر درایور رو داشتیم که نصب میکنیم اگر نه اونو تو اینترنت سرچ میکنیم بنابراین روی این قسمت کلیک میکنیم:

بعد ازاون شروع میکنه از اینترنت میگرده و درایور رو نصب میکنه و در آخر پیغام میده که اونو نصب کردم :

خب دیگه قسمت سخت کار تموم شد اگه همه چیز رو درست نصب کرده باشین باید اینجا به شما پورت نشون بده , البته پورت بستگی به کامپیوتر داره و مثلا در اینجا ۱۶ در نظر گرفته , برای کامپیوتر شما ممکنه فرق بکنه .مهم نیست چه پورتی باشه فقط شماره پورت رو بدونین چون لازمش داریم.

الان دیگه آماده هستیم تا کد ها رو داخل آردوینو بریزیم.برای این کار نرم افزار آردوینو رو باز میکنین و باید چندتا قسمتو تنظیم کنیم:

اولی اینه که باید کد بنویسیم!!  یعنی چی کد بنویسیم ؟؟ باید بگیم که آقای آردوینو شما اینکارا رو باید انجام بدی .برای اینکه آردوینو بفهمه باید یه برنامه بهش بدیم و بگیم که هر موقع روشن شدی بیا این کارها رو انجام بده. به این کار میگن کد نویسی. اگه بخام مثال براش بزنم :  مثل اینکه به یه نفری لیست خرید میدین میگین طبق این لیست باید این خریدهارو بکنی.اون نفر لیستو میگیره و میره تا اون چیزاییکه میخاین رو بخره. این جا آردوینو لیست نمیفهمه چیه اما کد رو میفهمه .بنا بر این براش کد مینویسیم و میگیم اینکارا رو بکن. خب چون تاره شروع کردیم و میخایم فعلن یه پروژه عملی تست کنیم میایم و از کد های خود آردوینو استفاده میکنیم .ولی بیشتر که جلو رفتیم خودمون براش کد مینویسیم. برای شروع میخایم اون چراغ روی بورد آردوینو رو , روشن خاموش بکنیم. در حقیقت میشه ” چشمک زن” بکنیم .تو انگلیسی به چشمک زدن میگن “Blink” . پس باید بریم مثالشو از نرم افزار بیاریم. برای آوردن مثالش بصورت زیر عمل میکنیم:

ابتدا به FILE برین و بعد به EXAMPLE و بعد ار اونجا به Basics واز اونجا روی Blink کلیک میکنیم تا مثالش باز بشه:

در مرحله دوم باید پورتی که در قسمت قبل داشتیم رو اینجا وارد کنیم:

به این قسمتهای داخل شکل برین و روی اون کلیک میکنیم. مثلا تو اینجا میریم رو پورت ۱۶ که قبلا هم داشتیم میریم  و روش کلیک میکنیم تا تیک خورده بشه مثل شکل زیر: (باز هم تاکید میکنم تو اینجا ۱۶ هست برای شما هر شماره ای میتونه باشه).

درقسمت سوم هم باید مدل بورد آردوینو رو انتخاب کنیم. باتوجه به اینکه ما از بوردآردوینو Uno استفاده میکنیم, اونو انتخاب میکنیم:

 

خب حالا برنامه ای که باز شده رو باید بریزیم روی بورد برای اینکار روی قسمت فلش کلیک میکنیم تا برنامه وارد بورد آردوینو بشه:

در قسمت پایین یه صفحه ای وجود داره که نشون میده برنامه داره ریخته میشه روی بورد آردوینو :

خب بعداز اینکه با موفقیت کدها روی آردوینو ریخته شد یکسری اطلاعات به شما به رنگ سفید میده و اگه مشکلی داشته باشه برنامتون به رنگ قرمز نشون میده که شما برنامتون مشکل داره :

تبریک میگم الان شما اولین پروژتون رو با آردوینو ساختین و الان چراغ روی بوردینو به حالت چشمک زن دراومده:

حدیث از امام رضا (ع) :      

دوستى‌ با مردم‌ ، نيمى‌ از عقل‌ است‌. (تحف‌ العقول‌ ، ص‌ ۴۶۷)

آشنایی با نرم افزار آردوینو:

بعد از نصب نرم افزار آردوینو , وقتی شما نرم افزار رو باز میکنین با یه صفحه ای مثل زیر مواجه میشین:

درحقیقت قسمت void setup فقط و فقط یک بار  اجرا میشه ! بنابراین بعضی چیزهایی مثل مفروضات رو باید در این قسمت بنویسیم. مفروضات مثل چی؟  مثل پین ورودی و خروجی (بعدا توضیح میدیم که pin چیه).

مثلا فرض کنید میخاین یه بسته ای رو به یه جایی بفرستین چیکار میکنین؟

معمولا اول یه پیک موتوری میگیرین , بعد آدرس رو به پیک موتوری میدین و ازش میخاین که یه بسته رو براتون برسونه به یه جایی.

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

حالا پیک آدرس رو داره و باید یه کاری رو انجام بده یعنی باید بسته شما رو به یه جایی تحویل بده. اون کاری رو که میخایم آردوینو برامون انجام بده تو قسمت Void loop  می نویسیم. کدهایی که در این قسمت مینویسین(Void loop) مدام که آردوینو روشن هست از کد اول تا کد آخر اجرا میشه و بعد باز دوباره میپره به کد اول (Void loop) و مدام اجرا میشه. مثل اینکه به پیک موتوری یه آدرس میدین و اون بصورت مداوم بسته رو از شما میگیره و میرسونه ….

بعد از void setup , void loop باید کد های هر کدوم داخل براکت {} قرار بگیرند . یعنی کد های ابتدا با یک براکت باز میشه و کد ها داخل اون نوشته میشه و بعد از اینکه کدهای مربوط به هرقسمت نوشته شد با براکت بسته میشه.مثل زیر:

یه سوال؟

من هر چی اینجا بنویسم (منظورم داخل برنامه) اجرا میشه؟

بله.

خب اومدو من خواستم یه چیزی مثلا یه توضیحی بنویسم که بعدا که میخونم یادم باشه این کد برا چی بود یا اون یکی کد . باید چیکار کنم؟

اگر یه جایی از برنامه خواستین توضیحی بنویسین که بعدا یادتون بمونه و یا دلتون خواست مثلا اسمتون رو بنویسین یه هر چیز دیگه ای رو کافیه قبل از اون خط دوتا اسلش بذارین : //   تاکید میکنم این علامت فقط اون خط رو اجرا نمیکنه!

اگه توضیحی که خواستین بنویسین زیاده مثلا نامه میخواین بنویسین!!  ابتدا باعلامت  /* شروع میکنین و بعد متن دلخواه رو مینویسین و بعد با این علامت  */ تموم می کنید.مانند زیر:

قراربود پین رو توضیح بدیم.پین یعنی چی؟

ببین بورد آردوینو رو اگه نگاه کنی یکسری پایه میبینی به اونها میگن پین :

معمولا بغل پینها هم شماره اونها رو مینویسند :

 خب این پینها به چه دردی میخوره؟

با توجه به کاری که میخای انجام بدی این پینها رو میتونی به شکل ورودی و یا خروجی تعریف کنی:

پین ورودی :

 مثلا فرض کنین مهمون میخاد بیاد خونتون!!! منتظر هستین زنگ در رو بزنه . یعنی از خونتون بیرون نمیرین یه کاری انجام بدین بلکه منتظر هستین . این حالت میشه حالت ورودی!! یعنی ماژول منتظر هست ببینه که روی این پین چی میاد.در این حالت ماژول اطلاعات رو دریافت میکنه مثلا ولتاژپایه کی صفر میشه و برحسب برنامه ایکه براش نوشتین یه کاری انجام بده.

   پین خروجی :

یه حالت دیگه ای هست که شما منتظر نیستین بلکه میخاین برین بیرون از خونه .مثلا برین یه چیزی از مغازه بخرین یا یه کاری انجام بدین. 

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

 پس ورودی زمانی هست که میخواهیم ببینیم روی پایه چه مقداری قرار داره مثلا یک سنسوردما به پایه متصل کردیم و میخاهیم ببینیم مقدار این سنسور دما چقدر هست . اما خروجی زمانی هست که میخاهیم یک مقداری رو , روی پایه قرار بدیم مثلا ۵ ولت رو روی پایه قرار بدیم.برای چی؟ مثلا اگه بخاهیم یه led رو, روشن کنیم باید یه ولتاژی رو به پایه میکرو بدیم و اونو متصل کنیم به led تا اون روشن بشه.

حالا میخایم به آردوینو بگیم که آقای آردوینو ! شما بیا فلان پایه رو ورودی یا خروجی تعریف کن .چجوری باید بگیم؟

باید از دستور pinMode  استفاده کنین. این دستور از دو قسمت pin و قسمت mode تشکیل شده.

درقسمت pin (پین یا همون پایه) باید شماره پایه ای که موردنظرمون هست رو بگیم و تو قسمت mode (یعنی حالت) باید تعیین کنیم که پایه مورد نظرمون ورودی هست یا خروجی. در کد زیر پایه ۶ رو بصورت خروجی تعریف کردیم:

اگر خواستیم خروجی باشه باید از OUTPUT و اگر خواستین ورودی باشه باید از دستور INPUT استفاده کنید:

یه نکته مهم:  بعد دستوراتی که مینویسین باید این علامت  ;  رو بذارین وگرنه نرم افزار آردوینو زمان اجرای کد دچار مشکل میشه وازتون خطا میگیره.مثل خطای زیر:

مثال چشمک زن (Blink)

خب حالا که تا اینجا بچه های خوبی بودین و یادگرفتین که  loop وsetup  چیه میخایم اولین مثالی که پروگرام کردین و خوشحال شدین رو یبار دیگه اینجا برسی کنیم و ببینیم کدهاش چیه. قبلا گفته بودیم که چجوری باید مثال رو بیارین و حالا یبار دیگه هم میگیم ولی انتظار میره بلد باشین. آهان اینجا یه چیزی بگم تا یادم نرفته! نرم افزار آردوینو وقتی که نصب میکنین تو خودش یکسری مثال داره اونها رو کافیه که بیارین و بعد بریزین روی بورد آردوینوتا کارکنه. از این دیگه راحت تر! اگرم نخواستین میتونین خودتون کد جدید بنویسین و بعد بریزین روی بورد . به مسیر زیر برین و مثال Blink  رو بیارین :

خب حالا ببینیم که چی داریم:

اول حلقه void setup رو بررسی میکنیم:

LED_BUILTIN  همونled یا چراغی هست که روی بورد آردوینو هست و خاموش روشن میشه. اینجا دیگه نیاز نیست بگین فلان پایه رو بعنوان خروجی بگیر خودش باهوشه میفهمه . ولی اگرهم خواستین شماره بدین در بورد آردوینو Uno شماره ۱۳ همونled یا چراغی هست که روی بورد آردوینو هست یعنی میتونیم کد بالا رو به این شکل هم بنویسیم:

دراین کد میگیم که LED_BUILTIN  یا پایه ۱۳ رو بعنوان یه پین خروجی (OUTPUT) در نظر بگیر.

چراخروجی در نظر بگیر؟

برای اینکه میخواهیم LED رو روشن کنیم و برای این کار باید بهش ولتاژ بدیم  پس باید پین یه ولتاژ خروجی داشته باشه که به LED بده و اونو روشن کنه در نتیجه بعنوان پین خروجی در نظر میگیریم.

دوم حلقه void setup رو بررسی میکنیم:

در این قسمت یه دستوری داریم بنام digitalWrite .

digitalWrite چیه؟

یادتونه تو تعریف پین خروجی گفتیم که ” دراین حالت ماژول اطلاعات رو به سمت پین میفرسته”  خب حالا میخوایم که یه ۵ ولت رو بفرستیم خروجی و اونم که به led متصل هست در نتیجه led روشن بشه. پس زمانیکه بخایم بر روی خروجی چیزی قرار بدیم از دستور Write استفاده میکنیم. ما دوحالت میتونیم رو پورت خروجی بنویسیم :

دیجیتال مثل: digitalWrite

و آنالوگ مثل : analogWrite

آنالوگ رو بعدا انشاا.. تو مثالهای بعد میگیم و اما دیجیتال

در دیجیتال شما دو حالت دارین یا ۰ یا ۱

۰ و ۱ یعنی چی؟ یه مثال خوب که بخام براتون بزنم میشه لامپ خونتون!!. یعنی اگه لامپ خاموش باشه میشه حالت صفر و اگه لامپ روشن باشه میشه حالت یک. حالتی بین این دوتا هم نداریم!! مثلا حالت نیم نداریم !! که لامپ یه ذره روشنه و یه ذره خاموش. خب تو اینجا برای اینکه بخایم این حالت ۰ و ۱ رو نشون بدیم از دستور HIGH و LOW استفاده میکنیم.

به این صورت که اگر بخایم LED خاموش باشه یعنی حالت صفر باشه از LOW استفاده میکنیم . و همینطور اگه بخایم که LED روشن باشه یعنی حالت یک باشه از HIGH استفاده می کنیم.

 پس اگه بخایم که LED_BUILTIN  یا پایه ۱۳ رو یک کنیم از دستور زیر استفاده می کنیم :

برای اینکه بتونیم ببینیم که LED داره خاموش روشن میشه باید یه وقفه ای بنداریم.یعنی باید بگیم LED روشن شو بعد یک ثانیه وایسا و بعد خاموش شو. مثل اینکه کلید برق رو میزنین لامپ روشن میشه و بعد یکمی صبر میکنیم و باز دوباره کلید برق رو می زنیم و لامپ روشن میشه. اما برای اینکه آردوینو بفهمه که چقدر باید صبر کنه از دستوری بنام delay (درانگلیسی میشه تاخیر) استفاده میکنیم.

اما حالا چجوری بهش بگیم چقدر باید صبر کنی؟ مثلا از کجا بفهمه منظورمون۱۰ ثانیه است ؟ یا مثلا ۱ دقیقه؟

به یه نفر بخواین بگین صبر کن مثلا میگین ۲۰ ثانیه صبر کن یا ده دقیقه صبر کن. بعد اون از روی ساعتش نگاه میکنه و تایم میگیره که چقدر باید صبر کنه .معمولا دیگه کمترین زمان حدود یه ثانیه در نظر میگیریم . اما چون ماشاا… سرعت آردوینو خیلی زیاده کمتر از این مدت زمانو هم متوجه میشه. مثلا ۱ میلی ثانیه رو هم میفهمه .یه میلی ثانیه یعنی یک ثانیه تقسیم برهزار که میشه یک هزارم ثانیه. پس برا اینکه یخوایم به آردوینو بگیم ۱/۱۰۰۰ (یک هزارم) ثانیه صبر کن کافیه بعد از delaly یک پرانتز بازو بسته بذاریم و داخل اون مدت زمان دلخواهمون رو بنویسیم که در اینجا میشه ۱:

حالا اگه بخوایم ۱ ثانیه بگیم صبر کن چی؟    بله یعنی ۱۰۰۰ تا ا میلی ثانیه یعنی:    (delay(1000

اگه ۵ ثانیه چی؟  یعنی ۵ تا ۱۰۰۰ میلی ثانیه یعنی:    (delay(5000

اگه ۱ دقیقه چی؟   هر ۱ دقیقه برابر ۶۰ ثانیه و اونم میشه ۶۰ تا ۱۰۰۰ میلی ثانیه  یعنی:   (delay(60000

سوال: کدهای زیر یعنی چی؟

قبل از اینکه به جواب نگاه بندازی یه ذره فکر کن ببین میدونی جوابش چیه؟

گفتم فکر کن دیگه!!!

یعنی اول  LED_BUILTIN رو روشن کن بعد ۱ ثانیه صبر کن و بعد LED_BUILTIN رو خاموش کن و ۳ ثانیه صبر کن و چون دستورات void loop دائما داره اجرا میشه این رویه ادامه پیدا میکنه و در آخر شما میبینین که led 1 ثانیه روشن و ۳ ثانیه خاموش باز ۱ ثانیه روشن و ۳ ثانیه خاموش و …. این حالت ادامه پیدا میکنه.

 

تمرین:

  یک led تهیه کنین و اون led رو به یه پایه دیگه متصل کنید و اون رو بصورتی برنامه ریزی کنید که خاموش و روشن بشه. برای اینکار شما نیاز دارین اون led رو به مقاومت متصل کنید که صدمه نبینه مقدار مناسب اون مقاومت چقدر باید باشه؟ چرا؟

اگه به پایه ۱۳ متصل کنید چطور؟ آیا پایه ۱۳ هم نیاز به مقاومت داره؟ چرا؟

نکات مهم :

– اگه یبار دیگه بورد آردوینو uno  رو نگاه کنید میبینید یه جای آداپتور هم داره .معنیش چیه ؟ یعنی شما میتونین وقتی برنامه نویسی رو تموم کردین و بورد رو پروگرم کردین از usb بکشین و یه آداپتور به اون متصل کنین و اون شروع بکار میکنه. پس برق مورد نیاز یا از طریق کابل usb تامین میشه یا اینکه میتونین از آداپتور برای روشن کردن اون استفاده کنین بر طبق اونچیزی که گفته شده آداپتور مناسب بین ۷/۵ تا ۱۲ ولت هست فقط حواستون باشه وقتی آردوینو ا طریق usb متصل میشه دیگه آداپتور رو همزمان نزنین به بورد. درکل یا ازusb استفاده کنین یا از آداپتور.همچنین میتونین از باتری ۹ ولت هم استفاده کنید.(به ورودی آداپتور متصل کنید)

– آردوینو uno دکمه خاموش /روشن نداره یعنی بمحض اینکه متصل میکنین به کامپیوتر روشن میشه .اون دکمه ای که روی بورد قرار داره در حقیقت دکمه ریست هست.وقتی رو دکمه کلیک میکنین انگار از کامپیوتر میکشین و باز دوباره میزنین به کامپیوتر.

 

حدیث از امام رضا (ع) :      

 به‌ خداوند خوشبين‌ باش‌ ، زيرا هركه‌ به‌ خدا خوشبين‌ باشد ، خدا با گمان‌خوش‌ او همراه‌ است‌ ، و هركه‌ به‌ رزق‌ و روزى‌ اندك‌ خشنود باشد ، خداوند به‌ كردار اندك‌ او خشنود باشد  ,و هركه‌ به‌ اندك‌ از روزى‌ حلال‌ خشنود باشد ، بارش‌ سبك‌ و خانواده‌اش‌ در نعمت‌ باشد و خداوند او را به‌ درد دنيا و دوايش‌ بينا سازد و او را از دنيا به‌ سلامت‌ به‌ دار السلام‌ بهشت‌ رساند.
(تحف‌ العقول‌ ، ص‌ ۴۷۲)

توسط | ۱۳۹۷/۶/۱ ۲۱:۲۵:۲۲ دی ۳۰ام, ۱۳۹۶|آموزش آردوینو|بدون ديدگاه

ثبت ديدگاه