پروژه های آردینو

کنترل ماتریس 8×8 با آردوینو

کنترل ماتریس 8x8 با آردوینو

کنترل ماتریس 8×8 با آردوینو

کنترل ماتریس 8×8 با آردوینو در این پروژه ما قصد داریم یک صفحه نمایش ماتریس LED 8×8 طراحی کنیم ، برای این کار ما می خواهیم یک ماژول ماتریس LED 8×8 با Arduino Uno رابط کنیم.

یک ماتریس LED 8×8 شامل 64 LED (دیودهای ساطع کننده نور) است که به صورت ماتریس مرتب شده اند ، از این رو ماتریس LED نامیده می شود

این ماتریس ها را می توان با اتصال 64 LED ساخت ، با این حال این فرآیند زمان بر است.

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

این ماژول های جمع و جور در اندازه های مختلف و رنگ های مختلف موجود است.

هزینه ماژول همان هزینه 64 LED است ، بنابراین برای علاقه مندان کار ساده ترین روش کار است.

ماتریس LED برهنه دارای 16 پین خروجی با 8 مثبت مثبت و 8 منفی مشترک دیگر است.

برای اتصال مستقیم این ماتریس به UNO ، باید 16 پین را روی UNO ذخیره کنیم.

با پین های خروجی کم UNO ، نمی توانیم 16 پین را پس انداز کنیم. بنابراین باید این ماتریس را به یک تراشه درایور متصل کنیم.

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

 

بخوانید : پروگرام آردوینو با بلوتوث

 

این ماژول برای نمایش حروف الفبا با آردوینو رابط می شود ، از این رو نمایشگر ماتریس است.

اول از همه برای رابط ماتریس LED با Arduino ، ما باید کتابخانه ای را که مخصوص LED MATRIX طراحی شده است بارگیری کنیم.

این کتابخانه در از اینجا دانلود کنید

پس از بارگیری فایل Zip ، محتویات را در پوشه ARDUINO استخراج کنید. (به دیسک محلی که نرم افزار ARDUINO NIGHTLY نصب شده است بروید ، پوشه را باز کنید ، پوشه ای به نام “کتابخانه” را جستجو کنید ، محتویات فایل zip را در آن پوشه استخراج کنید ، برنامه را دوباره راه اندازی کنید که اکنون می توانید از ویژگی های رابط ماتریس استفاده کنید)

اجزای مورد نیاز

Arduino Uno

منبع تغذه 

ماژول ماتریس

100 uF capacitor connected across power supply

 

اتصالات بین Arduino Uno و ماژول LED ماتریس در جدول زیر نشان داده شده است.

PIN2 —————— LOAD یا CHIPSELECT از ماژول LED

PIN3 —————— ساعت ماژول LED

PIN4 —————— DATAIN ماژول LED

+ 5V —————— VCC ماژول LED

GND —————— GND ماژول LED

نمودار مدار نمایشگر ماتریس LED 8 * 8 در شکل زیر نشان داده شده است.

 

 

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

#include “LedControlMS.h”

#define NBR_MTX 1

LedControl lc=LedControl(4,3,2, NBR_MTX);

lc.writeString(0,”CIRCUITDIGEST”);

 lc.clearAll();

بخوانید : ساخت رسیور IR با استفاده از آردوینو

 

ابتدا باید پرونده هدر رابط رابط با یک ماتریس LED به Arduino Uno تماس بگیریم.

یعنی “# شامل” LedControlMS.h “” ، این پرونده هدر کتابخانه را با توابع خاص فراخوانی می کند.

ما با این ماژول ها یک ویژگی داریم که می توانیم تعداد زیادی ماژول را به صورت سری وصل کنیم و آنها را به صورت یک صفحه نمایش واحد برنامه ریزی کنیم.

این ویژگی زمانی به کار می آید که ما به یک واحد نمایشگر نیاز داشته باشیم که بتواند همزمان چندین کاراکتر را نمایش دهد.

بنابراین باید به کنترل کننده بگوییم که چند نمایشگر را به هم متصل می کنیم.

در این ماژول عمدتا سه پایه وجود دارد.

جریان داده ها از UNO به ماژول با این سه پایه انجام می شود.

پین ها DATAIN (پین دریافت داده) ، CLOCK (پین ساعت) و CHIPSELECT (پین دریافت فرمان) هستند.

حال باید به UNO بگوییم که کجا این پایه ها را به هم متصل می کنیم.

این کار با دستور

LedControl lc = LedControl (4،3،2 ، NBR_MTX)

انجام می شود.

lc.writeString (0 ،” CIRCUITDIGEST “) ؛

، این دستور برای گفتن UNO مورد استفاده قرار می گیرد که کدام شخصیت ها باید در ماتریس LED نمایش داده شوند.

با موارد فوق ، صفحه نمایش “CIRCUITDIGEST” را نشان می دهد ، با هر کاراکتر یک بار.

ما باید حافظه تراشه نمایشگر را قبل از ارسال اطلاعات دیگر پاک کنیم ، این کار با دستور

“lc.clearAll ()؛”

انجام می شود.

با این روش می توانیم یک ماتریس LED 8×8 را به راحتی با Arduino Uno وصل کنیم.

کد کامل برنامه کنترل ماتریس

#include “LedControlMS.h”

 //pin 4 is connected to the DataIn

// pin 3 is connected to the CLK

 //pin 2 is connected to LOAD

#define NBR_MTX 1 //number of matrices attached is one

LedControl lc=LedControl(4,3,2, NBR_MTX);//

void setup()

{

  for (int i=0; i< NBR_MTX; i++)

  {

    lc.shutdown(i,false);

  /* Set the brightness to a medium values */

    lc.setIntensity(i,8);

  /* and clear the display */

    lc.clearDisplay(i);

                delay(100);

  }

}

void loop()

{

                  lc.writeString(0,”CIRCUITDIGEST”);//sending characters to display

                  lc.clearAll();//clearing the display

                  delay(1000);

}

این پروژه توسط گروه وی تات انجام شده wetat.ir

کپی با دکر منبع بلامانع است

نوشته های مشابه

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

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