راه اندازی بار گراف LED در آردوینو، در این مثال میخواهیم ولتاژ آنالوگ بر روی پایه A0 رابخوانیم، سپس ولتاژ آنالوگ روی این پایه را توسط تابع analogRead محاسبه کنیم و بر روی خروجی سریال در نرم افزار آردوینو نشان خواهیم داد. همچنین یک بار گراف LED را متناسب با این ولتاژ راه اندازی میکنیم.
قطعات و وسایل مورد نیاز:
- 1 عدد برد بورد
- 1 عدد برد آردوینو Uno R3
- 1 عدد پتانسیومتر 5 کیلو اهم
- 2 عدد سیم جامپر
- 8 عدد LED تکی یا استفاده از یک بار گراف LED (مطابق شکل زیر)
مراحل :
مطابق شکلهای زیر قطعات را بر روی بردبرد قرار داده و اتصالات بین آنها را برقرار کنید.
نرم افزار آردوینو:
نرم افزار آردوینوی خود را باز کنید. با استفاده از برنامه آردوینو میتوانید مدار خود را کنترل کنید. یک sketch جدید از طریق منوی File و گزینه New باز کنید.
بار گراف LED ده تکه:
بار گراف LED ده تکه دارای کاربردهای زیاد است. با توجه به ابعاد کوچک و سهولت در استفاده میتوان از آن برای ساخت نمونه اولیه پروژههای خود استفاده کنیم. معمولا در بار LED ده تکه، 10 عدد LED مجزا با آند و کاتد جداگانه در کنار یکدیگر قرار گرفته اند.
بارهای LED در رنگ های زرد، قرمز، آبی و سبز در بازار موجود هستند.
نکته : ممکن است ترتیب قرارگیری پایهها با آنچه در دیتاشیت ثبت شده است متفاوت باشد. به این منظور اگر قطعه را 180 درجه بچرخانید، پایه 11 به عنوان اولین پایه قرار خواهد گرفت.
برنامه آردوینو:
/* LED bar graph Turns on a series of LEDs based on the value of an analog sensor. This is a simple way to make a bar graph display. Though this graph uses 8LEDs, you can use any number by changing the LED count and the pins in the array. This method can be used to control any series of digital outputs that depends on an analog input. */ // these constants won't change: const int analogPin = A0; // the pin that the potentiometer is attached to const int ledCount = 8; // the number of LEDs in the bar graph int ledPins[] = {2, 3, 4, 5, 6, 7, 8, 9}; // an array of pin numbers to which LEDs are attached void setup() { // loop over the pin array and set them all to output: for (int thisLed = 0; thisLed < ledCount; thisLed++) { pinMode(ledPins[thisLed], OUTPUT); } } void loop() { // read the potentiometer: int sensorReading = analogRead(analogPin); // map the result to a range from 0 to the number of LEDs: int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); // loop over the LED array: for (int thisLed = 0; thisLed < ledCount; thisLed++) { // if the array element's index is less than ledLevel, // turn the pin for this element on: if (thisLed < ledLevel) { digitalWrite(ledPins[thisLed], HIGH); }else { // turn off all pins higher than the ledLevel: digitalWrite(ledPins[thisLed], LOW); } } }
نکات برنامه:
برنامه اینجوری کار میکند: اول ولتاژ ورودی آنالوگ را میخوانیم، سپس مقدار ولتاژ را متناسب با محدوده مورد نظر که در این مورد 10 عدد LED است میکنیم. سپس یک حلقه for مینویسیم تا نمایش مقدار ولتاژ را را بر روی LED ها تکرار کنیم. اگر شماره LED خروجی از ولتاژ ورودی کمتر باشد، LED روشن خواهد شد و در غیر اینصورت LED خاموش خواهد بود.
نتایج :
همان طور که مشاهده میکنید با افزایش ولتاژ ورودی تعداد بیشتری از LED ها روشن میشوند و با کاهش ولتاژ ورودی LED ها شروع به خاموش شدن میکنند.
امیداوارم این آموزش هم برایتان مفید بوده باشد.
منبع: میکرودیزاینرالکترونیک