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

آمورزش ساخت چراغ مطالعه با آردوینو

نوشته شده توسط پریسا پوربلورچیان

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

 


ساخت چراغ مطالعه


وقتی صحبت از آردوینو می‌کنیم، منظور تمامی بردهای میکروکنترلر است که در لیست نرم افزار آردوینو Arduino برای انتخاب برد وجود دارد. برای ساخت چراغ مطالعه با آردوینو از بردهای خانواده آردوینو Arduino مانند UNO, NANO, Mega2560، خانوداه ESP8266 مانند Nodemcu wemos d1 mini می‌توان استفاده کرد. با توجه به اینکه میخواهیم از لامپ به عنوان چراغ استفاده کنیم، راه حل اتصال لامپ به آردوینو، رله Relay است. از کلید Switch به عنوان فرمان دهنده استفاده می‌شود. برای تغذیه برد آردوینو از آداپتور ۹ ولت و یا باتری کتابی و برای سری بردهای ESP8266 از باتری لیتیوم به راحتی میتوانید استفاده کنید. علاوه بر لامپ از رشته های ال ای دی هم میتوانید استفاده کنید. ال ای دی های نواری در دو نوع ۱۲ ولت و ۵ ولت موجود است که به دلخواه میتوانید استفاده کنید.

 


برد آردوینو Arduino


برای پروژه چراغ مطالعه با آردوینو از برد آردوینو نانو NANO که از جمله کوچک ترین بردهای سری آردوینو به شمار می‌آید استفاده شده است. برد آردوینو میکروکنترلری با قابلیت دسترسی به پورت های دیجیتال و آنالوگ و پروتکل‌های I2C و SPI است. در این آموزش از آردوینو Arduino مدل UNO استفاده شده است. برد آردوینو Arduino دارای تراشه Atmega328P است و با در اختیار داشتن پایه‌های کنترلی آنالوگ و دیجیتال I/O میتوان با سنسورهای مختلف ارتباط برقرار کرد. با در نظر گرفتن پروتکل ارتباطی، آن‌ها را راه اندازی و کدنویسی کرد. محیط برنامه نویسی IDE Arduino است که نباز به دانش برنامه نویسی C++ خواهد داشت. با انتقال کد به محیط برنامه نویسی و کامپایل کد پروژه آماده اجرا خواهد بود. مراحل نصب نرم افزار آردوینو Arduino در آموزش زیر نوشته و منتشر شده است. در صورتیکه تا به حال با برد آردوینو کار نکرده اید، ابتدا آموزش زیر را مطالعه و سپس مراحل بعدی را اجرا کنید. آموزش کار با برد آردوینو Arduino و نصب نرم افزار Arduino IDE همچنین به صورت مستقیم میتوانید نرم افزار آردوینو را از طریق لینک زیر دانلود کنید. مراحل نصب نرم افزار دقیقا مشابه دیگر نرم افزارهای کامپیوتری است.

دانلود نرم افزار آردوینو 

استفاده از آردوینو نانو Nano برای چراغ مطالعه با آردوینو - دیجی اسپارک

 


استفاده از برد ESP8266


در پروژه های اینترنت اشیا IOT، وای فای از اهمیت ویژه ای برخوردار است. تراشه ESP8266 نیاز بسیاری از کاربران را در این مورد برطرف کرده است. بردهای متنوعی از تراشه داخلی ESP8266 بهره می‌برند، که در این بین برد Nodemcu و Wemos d1 mini طرفداران بی شماری دارد. هر دو برد با نرم افزار آردوینو سازگاری داشته و کافیست با نصب پکیج ESP8266 و انتخاب پایه های GPIO در کدنویسی از این برد به راحتی استفاده کنید.  در صورتیکه بخواهید از سری برد های ESP8266 استفاده کنید، کافیست طبق آموزش زیر پکیج ESP8266 را نصب کرده و سپس برد Nodemcu و یا Wemos d1 mini را انتخاب کنید. راه اندازی پکیج ESP8266

 


کلید Switch


کلید یکی از تجهیزات مهم و کاربردی در پروژه های الکترونیک است و میتواند به عنوان ورودی عمل خاصی را انجام دهد. در پروژه چراغ مطالعه با آردوینو به کمک کلید اقدام به روشن و خاموش کردن چراغ مطالعه می‌کنیم. برای تازه کاران در ابتدا ممکن است کار با کلید با وجود سادگی بسیار پیچیده باشد. به عنوان مثال با یک بار فشردن کلید ممکن است آردوینو چند بار آن را دریافت کند و در خروجی مدام ۰ و ۱ ارسال کند که عملا ایجاد خطا در برنامه نویسی و عملکرد پروژه می‌کند که برای رفع مشکل بایستی از قابلیت دیبانسینگ در آردوینو استفاده کرد. با اتصال مستقیم بیزر به پایه های آردوینو ممکن است نتیجه ای که در خروجی مشاهده می‌کنید با وضعیت کلید درآن لحظه تفاوت داشته باشد که برای اینکار از یک مقاومت برای Pullup و Pulldown بیزر استفاده می‌شود. روش استفاده از کلید بسیار آسان است. در صورتیکه از کلید دو پایه استفاده می‌کنید یک پایه به صورت دلخواه به پایه دیجیتال آردوینو و پایه دیگر با یک مقاومت بین ۱ تا ۱۰ کیلو Pullup , pulldown به زمین GND و یا VCC متصل می‌شود. در صورتیکه از کلید های چهار پایه استفاده می‌کنید، فقط دو پایه متقارن استفاده می‌شود.

در این تصویر پایه های کلید ۴ پایه مشخص شده است. پایه های ۱ و ۳ به هم متصل و پایه های ۲ و ۴ به هم متصل است.

شماتیک اتصالات کلید برای چراغ مطالعه با آردوینو - دیجی اسپارک

 

کلید در این پروژه نقش فرمان دهنده را دارد. با فشردن کلید چراغ روشن شده و سپس با فشردن مجدد کلید چراغ خاموش خواهد شد.

استفاده از میکروسوئیچ در چراغ مطالعه با آردوینو - دیجی اسپارک

 


روش استفاده از رله


رله نوعی کلید الکترونیکی عملگر است که به دو حالت خاموش و روشن میتوانید آنرا تغییر وضعیت دهید. توسط رله می‌توانید جریان را عبور و یا قطع کنید. برای ساخت چراغ مطالعه با آردوینو از رله استفاده می‌کنیم. تمامی ماژول های رله در تعداد پایه‌های خروجی برابر است و مدل‌های مختلفی مانند رله تک کانال، رله دو کانال، چهار کانال و هشت کانال در بازار موجود است. مشخصا اتصال پایه‌های سنسور به پایه‌های ورودی رله بسیار ساده است. پایه‌هایی که با IN مشخص شده است مستقیم به پایه‌های برد میکروکنترلر متصل می‌شود. در برد آردوینو UNO, Meg2560 از پایه های دیجیتال برای اتصال به IN رله میتوان استفاده کرد. در برد Nodemcu و Wemos از GPIO ها مانند D1, D2 میتوان استفاده کرد. به همین ترتیب می‌توانید اتصالات ورودی را انجام داده و تغذیه ۵ ولت و GND را از برد میکروکنترلر از جمله آردوینو، Nodemcu, Wemos تامین کنید. هر رله دارای سه پایه NO, COM و NC است.

  • پایه COM: پایه مشترک Common است.
  • پایه NC به معنای نرمالی کلوز یا همان پیش فرض بسته است و زمانی استفاده می‌شود که بخواهید رله به صورت پیش فرض بسته باشد. به این صورت که جریان در مدار وجود دارد و در صورت ارسال سیگنال از آردوینو مدار باز شده و جریان را متوقف می‌کند.
  • پایه NO به معنای نرمالی اوپن یا همان پیش فرض باز است و به این معنی که رله همیشه باز است و مدار باز بوده و پس از ارسال سیگنال از آردوینو مدار بسته خواهد شد.

 

 

 


اتصالات چراغ مطالعه


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

 اتصال کلید به آردوینو

اتصالات کلید چراغ مطالعه با آردوینو - دیجی اسپارک

اتصال رله به آردوینو

اتصالات رله برای ساخت چراغ مطالعه با آردوینو - دیجی اسپاراک

 


کد آردوینو چراغ مطالعه


برای اجرای پروژه چراغ مطالعه با آردوینو نرم افزار آردوینو Arduino را باز کرده و کد را از طریق کلید های میانبر انتقال دهید.

 

 

پروژه چراغ مطالعه با آردوینو Arduino - دیجی اسپارک

 


تحلیل کد آردوینو


در ظاهر شاید اجرای پروژه و کدنویسی در نگاه اول ساده به نظر آید، اما به این راحتی به نظر نمی‌رسد. در صورتیکه بخواهید فقط از دستورات digitalWrite با HIGH و LOW کردن ورودی و خروجی به رله فرمان دهید، با هر بار تغییر وضعیت کلید در همان حالت قبل باقی می‌ماند. برای کدنویسی این برنامه به ظاهر ساده به دستورات وقفه Interrupt ، دیبانس Debounce برای کلید و تغییر وضعیت Toggle نیاز داریم.

 


تغییر وضعیت Toggle


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

 


استفاده از Flag


فلگ در برنامه نویسی همانند True و False عمل ‌می‌کند. در واقع از فلگ برای نمایش یک سیگنال ثابت در مدار استفاده میشود که در این برنامه برای وضعیت ال ای دی از فلگ Flag استفاده می‌کنیم. ال ای دی در لحظه بایستی روشن و یا خاموش باشد. در صورتیکه از فلگ استفاده نشود، ممکن است در لحظه هر دو وضعیت همزمان در مدار رخ دهد و سبب ایجاد خطا شود. وضیت موجود در داخل حلقه برنامه توسط flag نمایش داده می‌شود و کنترل کننده وضعیت در داخل برنامه است و همیشه در حلقه نوشته می‌شود:

 

 


استفاده از وقفه Interrupt


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

فرض کنید قصد دارید برنامه‌ای بنویسید که با هر بار فشار دادن یک کلید یک عدد LED روشن شود.اگر از pooling استفاده کنید باید مدام برنامه وضعیت کلید را چک کند و در صورت یک منطقی کلید LED  روشن می‌شود. ولی در روش interrupt بدون چک کردن دائم وضعیت کلید ، هنگام فعال شدن کلید یک سیگنال به cpu فرستاده می‌شود و سپس LED روشن می‌شود. برای استفاده از وقفه از تابع زیر استفاده می‌شود:

وقتی در برنامه اینتراپت ISR رخ میدهد، بهترین زمان استفاده از فلگ Flag در برنامه است:

اتصال میکروسوئیچ با تعریف وقفه در آردوینو - دیجی اسپارک

 


دیبانسیگ Debounce


تصور کنید این برنامه را بخواهید بدون استفاده از دیبانسیگ بنویسید. با هر بار فشردن کلید، آردوینو چندین بار فشردن کلید را ذخیره کند! چه اتفاقی می‌افتد؟ مداوم ورودی به خروجی فرمان داده و تداخل در اجرای کار به وجود می‌آید. برای جلوگیری از این مشکل از دیبانسینگ استفاده می‌شود. به این صورت که در یک بازه زمانی بسیار کوتاه آردوینو ورودی را دوبار بررسی می‌کند تا مطمئن شود واقعا ورودی ( کلید فشرده است) یا خیر؟ با توجه به سرعت زیاد آردوینو و وجود این نوسانات، ممکن است هنگامی که ورودی کلید را بخوانیم، چندین بار عمل صفر و یک انجام شود و باعث اختلال در برنامه می‌شود. برای رفع مشکل از Debouncing استفاده می‌کنیم که وظیفه حذف نویز و نوسانات را در برنامه بر عهده دارد. در برنامه پین متصل به دکمه را در وضعیت پول آپ قرار داده ایم. با هر بار فشار دادن دکمه وضعیت LED تغییر می‌کند.

 

 


جمع بندی لیدی پای


با اجرای دستورات دیبانسینگ، فلگ و وقفه بدون هیچ خطایی در روند اجرای برنامه میتوانید یک چراغ مطالعه بی نقص طراحی کنید. این برنامه با تمامی بردهای آردوینو و ESP8266 سازگاری داشته و کافیست در صورت استفاده از برد های ESP پایه های وقفه را انتخاب کنید. برای اتصال لامپ به رله بایستی دانش فنی داشته باشید و قبل از اتصال به برق از سالم بودن اتصالات اطمینان کامل کسب کنید. پیشنهاد می‌شود طبق ترجمه فارسی برای هر خط برنامه، دستورات را یک به یک تحلیل کرده و سپس جداگانه تایپ کنید. این روش برای مبتیدیان بسیار کاربردی است و همزمان با یادگیری زبان برنامه نویسی دانش الکترونیک هم به دست خواهید آورد.

آموزش ساخت چراغ مطالعه با آردوینو - دیجی اسپارک

 


وسایل مورد نیاز


برد آردوینو 

برد ESP8266 در صورت نیاز

رله تک کانال

ال ای دی 

لامپ

کابل فلت

 

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

 

درباره نویسنده

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه