در بسیاری از پروژههای رباتیک نیاز به یک چراغ LED داریم که به جای روشن و خاموش شدن، چشمک بزند. در این مقاله ابتدا به کلیَت نحوه اتصال LED به منبع تغذیه و کنترل آن با استفاده از یک Push button میپردازیم و سپس آردوینو را برای LED چشمکزن و دیمر کنترل روشنایی LED برنامهنویسی میکنیم.
برای کار با آردوینو ابتدا باید سختافزارهای موردنیاز را مشخص کنیم و مدار موردنظر را ببندیم. سپس به کدنویسی آن بپردازیم.
قطعات موردنیاز
- یک عدد LED (خرید LED)
- یک عدد مقاومت حداقل 220 اهم (0.25 وات)
- یک عدد Push button
- یک میکروکنترلر Arduino UNO (خرید آدروینو)
- دو عدد سیم جامپر (خرید جامپر و سیم جامپر)
- یک کابل USB تایپ A به تایپ B
- یک عدد برد بورد (خرید برد بورد)
اتصال LED به منبع تغذیه
LEDها نهایتاً میتوانند ولتاژ 0.7 ولت DC را تحمل کنند و متصل کردن مستقیم این LEDها به منبع تغذیه 5 ولت آردوینو باعث سوختن آنها میشود! بنابراین یک مقاومت بهصورت سری در مسیر LED قرار میدهیم تا بخش زیادی از ولتاژ را تحمل کند. سپس کابل USB آردوینو را پورت USB کامپیوتر خود میزنیم. مدار روشنکردن یک LED بهصورت زیر خواهد بود:
همانطور که در شکل بالا مشاهده میکنید پایههای مثبت و منفی منبع 5 ولت به ترتیب پینهای 5v و GND است.
پایه مثبت LED را که پایه کوتاهتر است به پین 5v و پایه منفی LED را که پایه بلندتر است به مقاومت متصل میکنیم و سر دیگر مقاومت را به پین GND متصل میکنیم.
همچنین میتوان با استفاده از پینهای آردوینو (پینهای DIGITAL 2 تا 13)، LED را روشن کرد. برای این کار باید در برنامه Arduino IDE آن پین را بهعنوان پین خروجی مشخص کنیم. در ادامه نحوه نوشتن کد آن را توضیح خواهیم داد.
آموزش کار با برد بورد
همانطور که در شکل زیر مشاهده میکنید، برد بورد از چهار بخش تشکیل شده است:
دو بخش بالا و پایینی آن معمولاً برای اتصال پایههای قطعات به پایه مثبت و منفی منابع تغذیه استفاده میشود. پایه قطعات موردنظر را وارد سوراخ برد بورد میکنیم تا به منبع متصل شود. اما این صرفاً برای سادگی در فهم مدار است و شما به هر نحوی که دوست داشته باشید میتوانید از برد بورد استفاده کنید. فقط در نظر داشته باشید که تمامی سوراخهای کنار خط قرمزرنگ به هم متصلاند. این قاعده برای تمامی سوراخهای کنار خط آبی هم صادق است. اگر میخواهید از این پایهها برای منبع استفاده کنید، فراموش نکنید که همانند شکل قبل در آخر باید بخش مثبت و منفی برد بورد را با استفاده از سیم جامپر به ترتیب به پین 5v و GND میکروکنترلر آردوینو متصل کنیم.
دو بخش بعدی بردبورد شامل 60 دسته سوراخ ۵تایی است که هر 5 سوراخ به هم متصلاند. درصورتیکه بخواهیم پایه یک قطعه را به پایه قطعه دیگر متصل کنیم (مثلاً در شکل اول پایه منفی LED را به یک سر مقاومت سری کردیم) هرکدام از این دوپایه را در یکی از 5 سوراخ فرومیکنیم. اگر بخواهیم سوراخهای برد بورد که به هم متصل نیستند به هم وصل بشوند، میتوانیم از سیم جامپر استفاده کنیم. بدین صورت که هر سر سیم جامپر را در یک سوراخ از هر بخش فرومیکنیم.
اگر بوردی که خریدهاید، Project board است و خطهای آموزشی فوق را ندارد. هرکدام از خطوط را خواستید از ابتدا بهعنوان مثبت و یا منفی در نظر بگیرید و بدانید. هر 25 سوراخ در بخشهای کناری با هم سری هستند، در واقع Project board از دو Breadboard متصلبههم تشکیل شده است.
برای این که روشن شدن یک LED را با یک دکمه Push button کنترل کنیم، بهجای اتصال مستقیم به آن منبع ولتاژ 5 ولت، یک push button در مسیر اتصال آن با منبع قرار میدهیم. Push button مثل یک کلید رفتار میکند. مطابق شکل زیر وقتی دکمه به سمت پایین فشار میدهیم، اتصال برقرار است و وقتی آن را رها میکنیم، اتصال قطع میشود.
تمام کارهای فوق بدون نیاز به برنامهنویسی میکروکنترلر امکانپذیر است.
آموزش اتصال LED به آردوینو
برای ساخت یک LED چشمکزن باید با استفاده از پینهای آردوینو آن را هر 500 میلیثانیه یکبار روشن یا خاموش کنیم. مدار آن همان مدار شکل اول است، با این تفاوت که بهجای اتصال LED به پین 5v، آن را به یکی از پینهای DIGITAL (2 تا 13) متصل میکنیم. زیرا آردوینو پینهای خروجی خود را میتواند HIGH (5v) یا LOW (0v) کند.دلیل نامگذاری این است که در دنیای دیجیتال که همه چیز 0 و 1 است فقط میتوانیم دو حالت 0 و 1 یا همان LOW وHIGH داشته باشیم.سطح پایین ولتاژ برابر 0 ولت و سطح بالای ولتاژ برابر 5 ولت است.
برنامه Arduino IDE، یک کامپایلر است.بر مبنای زبان برنامهنویسی C، کدنویسی آردوینو را انجام میدهد. اگر به زبان C مسلط نیستید نگران نباشید، در حدی که نیاز داشته باشیم در توضیحات، دستورات آن را آموزش خواهیم داد.
مطابق شکل 4 بهطورکلی برنامهنویسی آردوینو در دو تابع زیر انجام میپذیرد:
- void setup() :
در این تابع، یک سری تنظیمات اولیه برای راهاندازی میکروکنترلر را مشخص میکنیم. مثلاً در این اینجا تعیین میکنیم کدام یک از پینهای میکروکنترلر ورودی یا خروجی باشند.
2. void loop():
در این تابع، مشخص میکنیم چه کاری را میکروکنترلر به طور مداوم انجام دهد. مثلاً در اینجا تعیین میکنیم میکروکنترلر پین آردوینو را روشن کند، پس از یک ثانیه آن را خاموش کند و دوباره پس از یک ثانیه همین کار را تکرار کند. کدهای نوشته شده در این تابع تا زمانی که کابل USB آردوینو به کامپیوتر شما متصل است، به طور مداوم انجام میشود.
شکل (4): توضیح توابع میکروکنترلر آردوینو
برای اتصال کامپیوتر به میکروکنترلر Arduino UNO ابتدا کابل USB را به آن متصل میکنیم. سپس از مسیر
Tools -> Boards -> Arduino AVR Boards -> Arduino Uno،
مطابق شکل زیر برد موردنظر را انتخاب میکنیم.
همچنین از مسیر
Tools -> Ports -> COM3 (Arduino Uno)
پورت اتصال میکروکنترلر را مشخص میکنیم. توجه داشته باشید که ممکن است شماره COM پورت کامپیوتر شما با هر کامپیوتر دیگری فرق داشته باشد.
کدنویسی
همانطور که گفته شد، در تابع void setup() مشخص میکنیم که کدام پین میکروکنترلر خروجی باشد. برای این کار از تابع pinMode() استفاده میکنیم. ورودی اول این تابع، شماره پین و ورودی دوم آن وضعیت پین (ورودی یا خروجی) است؛ بنابراین اگر LED را به پین 3 متصل کرده باشیم و بخواهیم آن را روشن کنیم باید کد زیر را تابع void setup() بنویسیم: ( دقت داشته باشید که برنامه به حروف بزرگ و کوچک حساس است و اگر رنگ کلمات به فرم شکل 7 در نیامد، یعنی کد را اشتباه نوشتید!)
pinMode(3, OUTPUT);
خطوطی از کد که ابتدای خط، با // شروع شدهاند، توضیحات کد هستند و نوشتن آنها اجباری نیست!
مثل خط دوم:
// initialize digital pin LED_BUILTIN as an output.
پس از تعیین کردن پین 3 بهعنوان پین خروجی، باید در تابع void loop() تعیین کنیم که پین 3 وضعیتش HIGH (5v) شود، پس از 1 ثانیه وضعیتش LOW (0v) شود و دوباره پس از 1 ثانیه به ابتدای کد بخش loop برگردد. (یعنی دوباره پین 3 وضعیتش HIGH (5v) شود.
برای تعیین وضعیت پینهای دیجیتالی میکروکنترلر آردوینو از تابع زیر استفاده میکنیم. ورودی اول آن پین موردنظر و ورودی دوم وضعیت پین است:
digitalWrite(pin_number, HIGH);
digitalWrite(pin_number, LOW);
برای صبر کردن میکروکنترلر در اجرای دستورات و هرگونه تأخیر، از تابع delay() استفاده میکنیم. ورودی آن زمان بر حسب میلیثانیه است؛ بنابراین از کد زیر برای ایجاد تأخیر یکثانیهای استفاده کردیم:
1 2 3 4 5 6 7 8 9 10 11 |
void setup() { //Initialize digital pin LED_BUILTIN as an output. pinMode(3,OUTPUT); } //the loop function runs over and over again void loop() { digitalWrite(3,HIGH); //turn the LED on (HIGH is the voltage level) delay(1000); //wait for a second digitalWrite(3,LOW); //turn the LED on (HIGH is the voltage level) delay(1000); //wait for a second } |
پس از این مطابق شکل (7) کد را در توابع موردنظر نوشتید، ابتدا دکمه Verify را که به شکل است بزنید تا اگر کد شما دارای ایرادی بود، آن را بررسی کند. اگر کد شما بدون ارور باشد، در پایین صفحه بر روی نوار آبیرنگ جمله Done compiling را مشاهده خواهید کرد.سپس دکمه Upload را که به شکل است بزنید تا کد را روی میکروکنترلر بارگذاری کند.
کدهای این بخش به دلیل سادگی در بخش مثالهای پیشفرض آردوینو موجود است که مسیر پیداکردن آن را در شکل زیر مشخص است.
Tools>Port: “COM3 (Arduino Uno)
جمع بندی
در این مقاله از جم ترونیک تلاش کردیم روش ساخت یک led چشمک زن با استفاده از آردوینو Uno را توضیح بدهیم. امیدواریم این مقاله برای شما مفید بوده باشد.