آموزش آردوینو – انجام پروژه با آردوینو

آموزش آردوئنو

آموزش آردوینو

کار عملی با برد آردوینو 

آستین های خود برای آموزش آردوینو  بالا بزنید و اولین پروژه خود را تجربه کنید! در این درس، ما برخی از آزمایش های اولیه را انجام خواهیم داد تا شما را با مفاهیم و جریان کار آردوینو آشنا کنیم .

نصب برد آردوینو و بردبرد روی یک صفحه پلاستیکی 

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

 

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

  • کامپیوتر یا لپ تاپی که نرم افزار آردوینو روش نصب شده
  • برد Arduino Uno
  • کابل USB
  • بردبرد متوسط
  • سیم های بردبردی
  • ۵ عدد LED قرمز مات
  • LED شفاف ، رنگهای قرمز ، آبی ، سبز هر کدام یک عدد
  • ۵ عدد مقاومت ۲۲۰ اهم و ۱ کیلو

 

مدار چشمک زن با آردوینو 

اولین مداری که ما بر روی بردبرد میبندیم  یک LED قرمز رو به برد Arduino Uno متصل میکنیم. قبل از اتصال هر سیمی به برد آردوینو ، کابل USB خود را جدا کنید. یک سیم قرمز رو به پین  ۵ ولت برد Arduino وصل کنید . انتهای دیگر سیم قرمز رو به بردبرد ، اونجایی با خط قرمز مشخص شده متصل کنید  – این  خط پاور شما خواهد بود. یعنی هرجا به ۵ ولت مثبت نیاز داشتیم به این خط متصل میکینیم . یه سیم هم از پین GND به خط آبی یردبرد برای منفی مدارمون متصل میکینم

سه تا پین GND در Arduino Uno وجود دارد، و آنها همه به هم متصل هستند، بنابراین مهم نیست کدام یک را انتخاب کنید. این یک پیکربندی رایج است که شما از آن بارها و بارها در همه مدارات استفاده می کنید .

بعد، یک سیم زرد رو به پین ۱۳ آردوینو وصل کنید. سر دیگر سیم رو به هر ردیف افقی روی بردبرد خودتون مصل کنید . توی ابن درس از آموزش آردوینو شما فقط از یک نیمه بردبرد استفاده میکنید 🙂

 

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

      

حالا یک سر یک مقاومت ۱K  (رنگ: قهوه ای ، سیاه ، قرمز و طلایی) رو به همان ردیفی که سیم آبی رنگ هست متصل کنید . مقاومت ها همه شبیه هم و یک شکل هستند بجز نوارهای رنگی روی اونها .

سر دیگر مقاومت رو به ردیف  کنار سیم زرد وصل کنید.

 

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

حالا کابل USB رو وصل کنید ، LED باید بلافاصله شروع به چشمک زدن میکند! این اتفاق برنامه نویسی شده . اگر LED شما در حال چشمک زدن نیست، کابل USB خود را بیرون بیاورید، سپس LED خود را معکوس کرده و USB را دوباره متصل کنید. ممکنه پایه های LED  اشتباه وصل شده باشد ،  یا شاید یکی از سیم های دیگر یا مقاومت شما به درستی وصل نشده باشد. دوباره اتصال مدار بررسی کنید

کدهای برنامه LED چشمک زن با آردوینو

 

شما از IDE Arduino برای نوشتن برنامه هایی مانند این استفاده می کنید و آنها را روی برد Arduino خودتون آپلود و سپس اجرا می کنید. ما قبلا این برنامه رو در جلسه اول آموزش آردوینو روی برد Arduino آپلود کردیم ، اما دوباره گفتنش ضرر نداره: شما می توانید این برنامه و بسیاری نمونه های دیگه که رو از طریق منوی نرم افزار Arduino ببینید و اگر خواستید آپلود کنید. (File -> Examples -> Basics -> Blink).

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

بررسی و تحلیل برنامه 

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

این فقط یک یادداشت یا در اصطلاح برنامه نویسی یک کامنت است برای کمک به درک برنامه. در برنامه های آردوینو، کامنتها یا یادداشت ها با دو اسلش ( // ) مشخص میشن؛ هر چیزی که در یک خط  بعد از اسلش ها نوشته بشه توسط آردوینو نادیده گرفته میشه و زمان کامپایل برنامه دور ریخته میشه .به همین دلیل کامنت ها حجم برنامه ای که به آردوینو منتقل میشود زیاد نمیکند ،پس تا میتونید کامنت بنویسید! 🙂 شما به راحتی فراموش میکنید که هر بخش از برنامتون چه کاری قرار است انجام دهد؛ من به شدت به شما توصیه می کنم به نوشتن کامنت در برنامتون عادت کنید و کامنت های برنامه های نمونه ای که ما در این دوره آموزشی استفاده می کنیم حتما بخونید.

در این خط از برنامه LED چشمک زتن با آردوینو یک عدد رو به یک متغیر به نام led نسبت میدیم . متغیرها رو مثل یک ظرف یا جعبه در نظر بگیرید که برای ذخیره برخی اطلاعات استفاده میشه . متغیرها مانند ظرف ها دارای اندازه ها و شکل های مختلف هستند که اطلاعات مختلفی را نگه می دارند. متغیرها دارای یک نام هستند، مانند یک برچسب اجباری بر روی ظرف ها هستند.

این خط از کد یک متغیر از نوع int تعریف می کنه، یعنی متغیر از نوع عدد صحیح مثبت یا منفی . به جام نام متغیر می توانید از هر اسم دیگه ای مثل “MyLEDPin” و یا هر کلمه ای استفاده کنید .در اسم متغیر فقط باید از حروف و اعداد استفاده  شود، . من به شدت توصیه می کنم از نام های توصیفی برای متغیرهای خود استفاده کنید.

برنامه بعد از خط بالا هر گاه به اسم led رسید ، عدد ۱۳ رو جای گزین اون میکنه . این کار بسیار سودمند هست وقتی که ما میخوام یک مقدار رو در برنامه تغیر بدیم اگر این عدد مثلا همین عدد ۱۳ در ۱۰۰ جای برنامه تکرار شده باشد ما باید برای تغیرش مثلا به عدد ۹ باید صد جا رو تغییر بدیم ، اما با تعریف متغییر فقط همون یک خط و عدد رو تغییر میدیم .

همونطور که کامنت داره میگه ، بعد از روشن شدن برد آردوینو یا بعد از فشردن دکمه ریست روی برد این خط و دستوراتی که داخل دو علامت { } قرار میگیره برای یکبار اجرا میشن. این در واقع یک تابع هست به نام setup که برای تنظیمات و پیکربندی برد استفاده میشه.

پین های ۰ تا ۱۳ برد آردوینو ، ورودی خروجی های ( I/O ) دیجیتال اون هستند . یعنی این پین ها هم میتونن ورودی باشند و هم خروجی.  دستور  pinMode();کار تعیین وضعیت پایه های برد آردوینو رو انجام میده که خروجی باشه یا وردی . در دستور بالا گفته شده که پین شماره ۱۳ که توسط متغیر led مشخص شده باید به عنوان خروجی عمل کند که با کلمه OUTPUT مشخص شده . توجه کنید که دستورات به حروف کوچک و بزرگ حساس هستند و باید دقیقا همینطور که اینجا میبینید نوشته شوند .

دستور بالا یک تابع مهم است در برنامه های آردوینو ، زیرا هر دستوری که بین دو علامت  { }  قرار داشته باشه به صورت حلقه و تکرار اجرا خواهد شد تا زمانی که برق برد آردینو قطع بشه . این وظیفه از نام تابع که loop هست کاملا مشخصه .

اولین دستور در برنامه ما در تابع loop دستور  ()digitalWrite هست که برای تغیر وضعیت خروجی های دیجیتال برد آردوینو استفاده میشه . این دستور دو تا پارامتر داره ، اولین پارامتر پایه مورد نظر ما هست که اینجا پین ۱۳ هست و دومین پارامتر حالت خروجی که خاموش یا روشن باشه که با HIGH یعنی روشن و LOW یعنی خاموش مشخص میشه .

این دستور یعنی ()delay اجرای برنامه رو برای مدت زمانی که ما مشخص میکنیم و به میلی ثانیه هست متوقف میکنه در دستور بالا به مدت ۱۰۰۰ میلی ثانیه برنامه متوقف میشه و بعد از گذشت این مدت دستور بعدی رو اجرا میکنه .

این دستور هم که توضیح داده شد . در دستور بالا پایه ۱۳ که HIGH یعنی روشن شده بود با پارامتر LOW به حالت خاموش تغییر وضعیت میده .

این هم که تکرار دستور delay هست تا پین ۱۳ به مدت ۱۰۰۰ میلی ثانیه خاموش نگه داره و تو این مدت اجرای برنامه متوقف یا pause هست . علامت } هم پایان حلقه loop رو نشون میده و اولین دستور از تابع loop دوباره اجرا میشه . حاصل تکرار دستورات این تابع روشن و خاموش شدن LED هست تا زمانی که برق یا تغذیه برد را قطع کنیم.

 

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

 

اضافه کردن LED های بیشتر

در جلسه دوم از آموزش آردوینو ، یعنی این جلسه شما ایده LED چشمک زن با آردوینو رو اجرا کردید ، بیایید این ایده رو گسترش بدیم و چند تا LED دیگه به مدار اضافه کنیم . خب ، اگر کابل USB یا پاور به برد آردوینو وصل هست از برد جداش کنید . بهتره همیشه موقع اتصال قطعات یا جدا کردنشون برد خاموش باشه .

چهار LED و چهار مقاومت یک کیلو رو مثل همون LED اول روی برد بورد نصب کنید و سپس LED قبلی که به پین ۱۳ متصل بود رو به پین ۷ وصل کنید بقیه LED ها هم به پین های ۳ تا ۶ وصل کنید . به نکات مربوط به کاتد و آند LED ها هم دقت کنید . آند یا پایه مثبت  LED ها باید به پین های ۳ تا ۷ وصل شوند .

کدهای برنامه چشمک زن با ۵ LED با آردوینو 

در زیر برنامه قبلی رو برای چشمک زدن ۵ LED  تغییر دادیم .

برنامه بالا رو توی Arduino IDE وارد کنید و با نام ForLoopIteration.ino یا هر نام دیگه ای ذخیره کنید و سپس روی برد آردوینو آپلود کنید .

تست برنامه چشمک زن با ۵ LED با آردوینو

بعد از اتمام آپلود اگر مدار رو درست بسته باشید ، خواهید دید که LED ها به ترتیب خاموش و روشن میشن 🙂

توضیح کدهای برنامه چشمک زن با 5 LED

این بخش اول فقط یک کامنت طولانی هست ، درباره کامنت تک خط قبلا گفتیم ، برای کامنت های چند خطی ، با یک/ * و با  * /  پایان میدهیم .

توی این خط یک متغیر اعلام شده است! این یک عدد صحیح به نام “timer ” است که این خط آن را برابر با 200 می کند. همانطور که میبینید ، اکثر خطوط برنامه های آردوینو با یک سیمیکولن ( ;) پایان می یابند.پس موقع نوشتن و اصلاح برنامه های آردوینو ، به این موضوع دقت کنید ، چون اگر ( ; ) رو آخر یعضی خطوط نگذارید برنامه دچار خطا میشه و کار نمیکنه .

دستورات بالا  پین های 3 تا 7 برد آردوینو رو به عنوان خروجی با استفاده از حلقه for انجام می دهد . ابتدا به متغیر thisPin مقدار 3 داده میشه ، بعد چک میشه که آیا متغیر  thisPin از 8 کوچیکتر هست ؟ اگر هست دستور حلقه رو اجرا کن ، یعنی اول پین شماره 3 به عنوان خروجی تعریف میشه بعد چون حلقه ما به صورت صعودی هست ، به متغیر thisPin مقدار 4 داده میشه ، پس در دور بعد پین شماره 4 با دستور pinMode به عنوان خروجی تنظیم میشه . این کار تا رسیدن متغیر thisPin به 7 انجام میشه و در دور آخر که به 8 میرسه دیگه دستور حلقه اجرا نمیشه و برنامه از حلقه for خارج میشه .

حلقه for که در بالا استفاده کردیم در واقع کار دستورات زیر رو انجام میده .

در برنامه های آردوینو برای انجام وظایف مشابه بیش از یک راه وجود دارد. بهتره راه ها و روش هایی رو استفاده کنیم که برنامه کوتاه تری با حجم کمتر داشته باشیم 🙂

این حلقه for هم با همون مقادیر و همون شرط نوشته شده ، از پایه با شماره کمتر تا آخرین شماره که پین شماره 7 هست .

درون حلقه، LED رو با دستور digitalWrite و پارامتر HIGH روشن میکنیم و بعد از 200 میلی ثانیه با همان دستور و این بار با پارامتر LOW خاموش میکنیم

و حلقه به سراغ پین بعدی برای روشن و خاموش کردن  LED مربوطه میره .

این کد شبیه کد و LOOP قبلی هست با این تفاوت که اینجا از پایه بالایی یعنی 7 شروع میکنه به روشن و خاموش کردن LED ها تا برسه به پین 3 .

در حلقه for هم با پارامتر thisPin– هر بار یکی از مقدار اولیه یعنی 7 کم میشود تا به 3 برسد .

از اینجا هم کد برنامه رو میتونید دانلود کنید > Dowloade

 

روشن و خاموش کردن تدریجی LED با آردوینو

 

خب حالا میخوایم یه LED رو روشن و خاموش کنیم البته به طور تدریجی ، مثل یک لامپ که با دیمر نورش رو کم زیاد میکنیم 🙂 .

ما این کار رو با تابع زیر انجام میدیم :   analogWrite();  اول همه کابل USB رو جدا و همه LED ها رو بجز اولی از روی بردبرد بردارید  . LED رو به پایه 9 آردوینو وصل کنید .

کدهای مدار Fade

کدهای بالا رو کپی و با نرم افزار Arduino IDE روی برد آپلود کنید .  میتویند از مثالهای خوده نرم افزار هم استفاده کنید از این مسیر :

File -> Examples -> 01.Basics -> Fade

بعد از آپلود برنامه روی برد شاهد روشن و خاموش شدن تدریجی یا آنالوگ LED خواهید بود 🙂

کم و زیاد کردن نور Led با آردوینو

توضیح کدهای برنامه :

بیایید کدها رو بررسی کنیم تا ببنیم چگونه LED اینگونه به آرامی روشن و خاموش میشه 🙂 .

به کدهای بالا نگاه کنید ، خطهای 10 تا 12 برنامه سه تا متغیر رو تعریف میکنند . در خط 17 پایه 9 رو به عنوان خروجی تعریف میکنیم .  میزان روشنایی LED توسط تابع analogWrite و متغیر brightness تعیین میشه . این متغییر در خط 23 با متغیر fadeAmount جمع میشه .  خط 29 دستور  if با استفاده از عملگرهای مقایسه ای چک میکنه که آیا عدد مربوط به روشنایی برابر یا کمتر از 0 نباشه و یا مساوی و بیشتر از 255 نشه . اگر از 255 بیشتر بشه با دستور fadeAmount = fadeAmount شمارش معکوس شروع میشه تا به صفر برسه . برای بهتر دیده شدن عمل فیدینگ روی LED در خط آخر یک تاخیر 30 میلی ثانیه ای ایجاد میکنیم .



دانلود رایگان کتاب 18 پروژه آموزشی با آردوینو 

دانلود رایگان کتاب 18 پروژه با آردوینو

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

Name *

Email *

آموزش آردوینو – انجام پروژه با آردوینو
4.3 (85%) 32 votes

Be the first to comment

Leave a Reply

ایمیل شما نمایش داده نخواهد شد


*