راه اندازی بار گراف LED در آردوینو

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

قطعات و وسایل مورد نیاز :

  • 1 عدد برد بورد
  • 1 عدد برد آردوینو Uno R3
  • 1 عدد پتانسیومتر 5 کیلو اهم
  • 2 عدد سیم جامپر
  • 8 عدد LED تکی یا استفاده از یک بار گراف LED (مطابق شکل زیر)

مراحل :

مطابق شکل های زیر قطعات را بر روی بردبرد قرار داده و اتصالات بین آنها را برقرار کنید.

Arduino - LED Bar Graph-1

Arduino - LED Bar Graph-2

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

نرم افزار آردوینوی خود را باز کنید. با استفاده از برنامه آردوینو میتوانید مدار خود را کنترل کنید. یک sketch جدید از طریق منوی File و گزینه New باز کنید.

Arduino - LED Bar Graph-3

بار گراف LED  ده تکه :

Arduino - LED Bar Graph-4

بار گراف 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);
 }
 }
}

نکات برنامه :

مطلب پیشنهادی:  آموزش کار با سنسور‌های دما و رطوبت DHT11 و DHT22 با استفاده از آردوینو

برنامه اینجوری کار می کند : اول ولتاژ ورودی آنالوگ را میخوانیم، سپس مقدار ولتاژ را متناسب با محدوده مورد نظر که در این مورد 10 عدد LED است میکنیم. سپس یک حلقه for مینویسیم تا نمایش مقدار ولتاژ را را بر روی LED ها تکرار کنیم. اگر شماره LED خروجی از ولتاژ ورودی کمتر باشد، LED روشن خواهد شد و در غیر اینصورت LED خاموش خواهد بود.

نتایج :

همان طور که مشاهده میکنید با افزایش ولتاژ ورودی تعداد بیشتری از LED ها روشن می شوند و با کاهش ولتاژ ورودی LED ها شروع به خاموش شدن میکنند.

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

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

مطالعه دیگر جلسات این آموزش<< جلسه قبلی                    جلسه بعدی >>

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

4 دیدگاه

  1. ابراهیم طوفان تبریزی

    با تشکر از مطالب ارائه شده

  2. سلام. سپاس و درود به شما و همه دوستانی که در جمع آوری و ارائه این مطالب زحمت میکشید و وقت می گذارید. ممنون از تلاشهای شما.

  3. «خیلی عالیه»
    باترکیب این مدار با ماژول میکروفن و مادون قرمز چیزای جالبی میشه ساخت.
    ممنون از اموزش های خوبتون.