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

ساخت مکعب 4×4×4 LED با آردوینو

در این پروژه، ما به کمک آردوینو نانو، یک مکعب 4×4×4 LED جالب میسازیم. مکعب های LED که به نمایشگرهای ماتریسی LED نیز شناخته میشوند، میتوانند اتاق خواب، فضای مطالعه و یا فضای کاری را روشن کرده و ظاهری زیبا به آن ببخشند. به علاوه ساخت این مکعب ها بسیار آسان بوده و به شما کمک میکند تا خلاقیت خود را در الکترونیک و کدنویسی نشان دهید.

مکعب LED ما، دارای ابعاد 4×4×4 بوده و از چهار لایه تشکیل شده است. لایه ها درمجموع شامل 64 لامپ LED هستند. همانگونه که جلوتر در مدار این پروژه مشاهده خواهید کرد، هر لایه 16 لامپ LED را در خود جای میدهد.

سیم کشی این مدار شامل اتصال 64 لامپ LED به آردوینو با یک نظم و ترتیب مشخص است. هنگامی که ترمینال مثبت LED  یک سیگنال HIGH از آردوینو دریافت کرده و ترمینال منفی آن یک سیگنال LOW، لامپ LED روشن میشود. برای مونتاژ مکعب، یک پایه را به همه ستون ها (درمجموع 16 ستون) و پایه دیگر را به همه لایه ها (در مجموع 4 لایه) متصل خواهید کرد. درنتیجه شما برای کامل کردن پروژه جالب توجه مکعب 4×4×4 LED، تنها نیاز به 20 پایه میکروکنترلر دارید.

شما را قدم به قدم در پروسه ساخت چهار لایه، مطمئن شدن از هم تراز بودن LEDها، فواصل یکسان بین LEDها و لحیم شدن آن ها در محل مناسب همراهی میکنیم.

قطعات لازم برای ساخت مکعب 4×4×4 LED با آردوینو نانو

  • آردوینو نانو
  • 64 عدد لامپ LED پنچ میلی متر
  • هدرهای مادگی
  • کابل ریبون رنگین کمانی
  • مقاومت 100 اهمی
  • باتری 3 ولتی برای تست لامپ ها
  • بورد Zero PCB
  • سیم مسی
  • ابزار دیگر (هویه، سیم چین، سمباده)
قطعات مورد نیاز را از فروشگاه قطعات آیرنکس تهیه کنید.

مدار اتصال مکعب 4×4×4 LED

مدار اتصال یک مکعب 4×4×4 LED با آردوینو نانو، شامل چندین المان و اتصال برای مطمئن شدن از عملکرد مناسب مدار است. در این قسمت، مدار پروژه را قدم به قدم توضیح میدهیم. 64 لامپ LED را در یک ماتریس 4×4×4  بچینید. هر LED در واقع بیانگر یک پیکسل در مکعب است. پایه آند (پایه بلندتر) هر لامپ LED را به ردیف متناظر و پایه کاتد (پایه کوتاه تر) را به ستون متناظر متصل کنید. شماتیک مکعب 4×4×4 LED در تصویر زیر نمایش داده شده است.

مدار اتصال مکعب 4×4×4 LED

پایه خروجی دیجیتال آردوینو نانو (از A4 تا D13) را به ستون های مکعب LED متصل کنید.

این پایه ها، ستون های مکعب را کنترل خواهند کرد.

پایه های خروجی دیجیتال (A3 تا A0) را به لایه های مکعب متصل کنید. این پایه ها، هر لایه از مکعب را کنترل خواهند کرد. مقاومت های محدودکننده جریان (معمولا 100 یا 220 اهمی) را برای جلوگیری از عبور بیش از حد جریان، به صورت سری با هر لایه ببندید.

یک پایه مقاومت را به پایه خروجی دیجیتال آردوینو نانو و پایه دیگر مقاومت را به ردیف متناظر متصل کنید.

مدار اتصال مکعب 4×4×4 LED

همیشه به یاد داشته باشید که اتصالات خود را دوباره بررسی کرده و برای محافظت از LEDها، از مقاومت های محدودکننده جریان مناسب استفاده کنید.

با این اتصالات، میتوانید آردوینو نانو خود را برای نمایش الگوها و انیمیشن های مختلف روی مکعب 4×4×4 LED برنامه نویسی کنید.

مکعب 4×4×4 LED چگونه کار میکند؟

آشنایی با نحوه کار هر قطعه پیش از شروع به لحیم کاری و وارد شدن به بخش اصلی پروژه، امری بسیار مهم است. مغز اصلی پشت این پروژه، یک بورد میکروکنترلر به نام آردوینو نانوست. این بورد، درواقع یک کامپیوتر کوچک بوده و از میکروکنترلر ATmega328P استفاده میکند. این بورد کوچک، 20 پایه دارد که میتواند در موارد مختلفی مانند روشن و خاموش کردن قطعات استفاده شوند. در این پروژه، ما بر 14 پایه دیجیتال و 6 پایه آنالوگ تمرکز میکنیم. تمام این پایه ها به عنوان سوئیچ on/off در پروژه ما کاربرد دارند.

اگر در مورد این مطلب سوالی دارید در قسمت نظرات بپرسید

مکعب 4×4×4 LED از 64 لامپ LED که در نوعی شبکه مرتب شده اند، ساخته شده است. ما 4 لایه لامپ LED داریم و هر لایه هم از 16 لامپ LED با آرایش 4×4 تشکیل شده است. نحوه قرارگیری هر لامپ در یک لایه به گونه ایست که ممکن است در ابتدا کمی پیچیده به نظر برسد. نام این آرایش آند مشترک است. درواقع در این روش تمام پایه های مثبت یا آند LEDها را به هم متصل میکنیم. استفاده از این آرایش بخش خوب ماجراست زیرا اگرچه که ما با  64 لامپ LED کار میکنیم، اما تنها به 20 پایه از میکروکنترلر برای کنترل لامپ ها نیاز داریم. برای کنترل LEDهای هرلایه، 16 پایه را به کار میبریم. ترفند این است که لایه ها را از سمت مثبت LED ها به هم متصل کنیم. با اعمال ولتاژ 5 ولت به یک LED و اتصال سمت منفی لایه به زمین (زمین کردن سمت منفی لامپ ها)، میتوانیم آن را روشن کنیم. 4 پایه باقی مانده از میکروکنترلر نیز برای تغذیه لایه ها استفاده میشوند. برنامه نویسی به روش جادویی، به ما این امکان را میدهد که تمام این مراحل را بسیار روان و آسان انجام دهیم. تصویر زیر نمونه شبیه سازی شده مکعب 4×4×4 LED با آردوینو را نشان میدهد. در این تصویر میتوانید ببینید که هر پایه آردوینو نانو چگونه میتواند LEDهای مکعب را به صورت جداگانه و تکی کنترل کند.

طراحی و ساخت مکعب 4×4×4 LED با آردوینو نانو

64 عدد لامپ LED را با یک باتری فشاری کوچک تست کرده تا از کارکردن آن ها مطمئن شوید.

مکعب 4×4×4 LED چگونه کار میکند؟

پیش از شروع به چیدن LEDها در مکعب و لحیم کاری، فکر خوبیست که از صحت عملکرد آن ها اطمینان حاصل کنیم. LEDها با ولتاژ 3.3 ولت تغذیه میشوند. پایه بلندتر LED، پایه مثبت و پایه کوتاه تر آن، پایه منفی لامپ است. میتوانید این LEDها را با هر باتری 3.3 ولتی که در اختیار دارید، تست کنید. من در این پروژه، از یک باتری لیتیوم-یون استفاده میکنم.

LEDهای مورد استفاده در این پروژه، شفاف بوده و نور ضعیفی از خود ساطع میکنند. ما به دنبال کاهش شدت آن ها هستیم. با انتشار نور، لامپ ها روشن شده و جلوه خوبی به مکعب داده میشود. برای شفاف کردن LEDها کافی است که سطح آن ها را سمباده کشیده و یا از یک موتور DC به همراه سمباده برای این منظور استفاده کنید.

ساخت یک مکعب 4×4×4 LED

طراحی و ساخت مکعب 4×4×4 LED با آردوینو نانو

برای ساخت قاب مکعب 4×4×4 LED، یک قطعه چوب را که برای یک شبکه 4×4 به اندازه کافی بزرگ است، انتخاب کنید. مطمئن شوید که هر ضلع مربع 25 میلی متر باشد. حال با خطوط واضح، روی چوب یک شبکه 4×4 بکشید. با استفاده از یک پانچ مرکزی، سوراخ هایی در محل تقاطع خطوط ایجاد کنید. سپس یک دریل مناسب بیابید. این دریل باید به اندازه کافی کوچک بوده تا لامپ LED را به طور امن درجای خود حفظ کند و همچنین باید به اندازه کافی بزرگ باشد تا بتوان بدون نیاز به خم کردن سیم ها، آن را جدا کرد. 16 سوراخ ایجاد شده در شبکه را دریل کنید. قاب مکعب LED شما کاملا تنظیم شده است و آماده انجام مراحل بعدی است.

در هر کدام از سوراخ های ایجاد شده، یک لامپ LED قرار دهید.

ساخت یک مکعب 4×4×4 LED

حال یک سیم صاف مسی را برداشته و آن را همانگونه که در تصویر نشان داده شده است، به پایه مثبت LEDهای ردیف اول لحیم کنید.

به صورت مشابه، پایه مثبت LEDهای هر چهار ردیف را با همین روش به هم متصل کنید.

ساخت یک مکعب 4×4×4 LED

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

ساخت یک مکعب 4×4×4 LED

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

ساخت یک مکعب 4×4×4 LED

در ادامه، اولین لایه LEDها را بر زمین گذاشته و به کمک چهار سیم عمودی مسی که در چهار گوشه لایه قرار میگیرند، لایه دوم را روی آن لحیم کرده و به این شکل، 16 پایه منفی را به هم متصل کنید.

ساخت یک مکعب 4×4×4 LED

همان طور که گفتیم، باید یک لایه روی لایه زیرین قرار بگیرد. یکی از گوشه ها را دقیقا در 25 میلی متری لایه اول (یا هر فاصله دیگری که از آن در شبکه خود استفاده کرده اید) تنظیم کنید. این فاصله 25 میلی متری، فاصله بین سیم های آند است. با یک دست لایه بالایی را در همان فاصله ای که تنظیم کرده اید، نگه داشته و با دست دیگر گوشه کاتد لایه اول را به گوشه کاتد لایه دوم لحیم کنید. اینکار را برای سه گوشه دیگر تکرار کنید تا لایه ها روی هم محکم شوند.

ساخت یک مکعب 4×4×4 LED

مکعب  4×4×4 LED ما در این مرحله کم کم شروع به شکل گرفتن میکند. از تنظیم شدن دقیق لایه ها در همه ابعاد، اطمینان حاصل کنید. اگر لایه ها به طور دقیق روی هم تراز نشده اند، با اندکی خم کردن سیم ها این عدم توازن را جبران کنید. در صورتیکه فاصله 25 میلی متری از تنظیم خارج شده باشد، میتوانید لایه ها را دوباره روی هم لحیم کنید. پس از تنظیم کردن لایه ها روی هم، 12 پایه کاتد باقی مانده را به هم لحیم کنید.

ساخت یک مکعب 4×4×4 LED

کد مکعب 4×4×4 LED با آردوینو

ساختار این کد به گونه ای طراحی شده است که یک الگوی تابش از پیش تعریف شده را اجرا کرده و با استفاده از مکعب 4×4×4 LED یک تجربه بصری جذاب را خلق کند. کد کامل پروژه مکعب 4×4×4 LED در انتهای این مطلب قرار داده شده است. انیمیشن های به کاربرده شده شامل افکت های flicker، فعالسازی و روشن شدن متوالی LEDها، الگوهای رندوم و تصادفی و نمایش های داینمیک مختلف است. کاربران میتوانند با تغییر تاخیرهای موجود در کد، با ترتیب پیش فرض توابع بازی کرده و یا با ایجاد توابع جدید، رفتار مکعب 4×4×4 LED را مطابق میل خود شخصی سازی کنند.

int layer[4]={A3,A2,A1,A0}; //initialize and declaring led layers
int column[16]={13,12,11,10,9,8,7,6,5,4,3,2,1,0,A5,A4}; //initializing and declaring led rows
int time = 250;

Column: این آرایه، شامل شماره پایه ها در ستون های مکعب 4×4×4 LED است.

layer: این آرایه، شامل شماره پایه ها در لایه های مکعب 4×4×4 LED است.

time: time یک متغیر بوده و تاخیر استفاده شده در قسمت های مختلف کد را نشان میدهد.

void setup()
{
 
  for(int i = 0; i<16; i++)  
  {
    pinMode(column[i], OUTPUT);  //setting rows to output
  }
 
  for(int i = 0; i<4; i++)
  {
    pinMode(layer[i], OUTPUT);  //setting layers to output
  }
 
  randomSeed(analogRead(10));  //seeding random for random pattern
}

تابع ()setup، یکبار بار و آن هم در ابتدای برنامه اجرا میشود. این تابع، هر پایه شماره گذاری شده در آرایه های column و array را به عنوان پایه خروجی پیکربندی میکند. همچنین با خواندن داده آنالوگ از پایه 10 میکروکنترلر، یک عدد تصادفی تولید میکند.

void loop()
{
  turnEverythingOff();
  flickerOn();
  turnEverythingOn();
  delay(time);
  turnOnAndOffAllByLayerUpAndDownNotTimed();
  layerstompUpAndDown();
  spiralInAndOut();
  turnOnAndOffAllByColumnSideways();
  delay(time);
  aroundEdgeDown();
  turnEverythingOff();
  randomflicker();
  randomRain();
  diagonalRectangle();
  goThroughAllLedsOneAtATime();
  propeller();
  spiralInAndOut();
  flickerOff();
  turnEverythingOff();
  delay(2000);
}

تابع ()loop، حلقه اصلی برنامه است. این تابع، افکت ها و الگوهای نورپردازی مختلف را پس از یک تاخیر زمانی مشخص (برحسب میلی ثانیه) به ترتیب موجود در کد، فراخوانی میکند.

حلقه سپس به مدت 2000 میلی ثانیه یا همان 2 ثانیه قبل از شروع تکرار بعدی، صبر میکند.

توابع کنترلی در کد مکعب 4×4×4 LED با آردوینو

در این کد، توابع مختلفی را تعریف میکنیم. هر کدام از این توابع مسئول اجرای یک افکت یا الگو نورپردازی هستند. در اینجا توابع مهم را با هم مرور میکنیم.

()turnEverythingOff: این تابع تمام لامپ های LED را خاموش میکند.

()turnEverythingOn: این تابع تمام لامپ های LED را روشن میکند.

()flickerOn: این تابع، روشنایی لامپ ها را به تدریج کاهش یا افزایش میدهد.

()turnOnAndOffAllByLayerUpAndDownNotTimed: این تابع لایه ها را به طور متوالی و با الگو up-and-down روشن میکند. (بالا به پایین و پایین به بالا)

()turnOnAndOffAllByColumnSideways: این تابع ستون های جانبی را به صورت متوالی روشن و خاموش میکند.

()layerstompUpAndDown: این تابع با روشن و خاموش کردن یک لایه افکت stomp را شبیه سازی میکند.

()flickerOff: این تابع روشنایی لامپ ها را به تدریج افزایش یا کاهش میدهد.

()aroundEdgeDown: این تابع لامپ های لبه مکعب را به صورت نزولی روشن میکند.

()randomflicker: این تابع یک افکت تصادفی flicker را شبیه سازی میکند.

()randomRain: این تابع با سقوط تصادفی لامپ ها، افکت باران را شبیه سازی میکند.

()diagonalRectangle: این تابع LEDها را با الگو مستطیل مورب روشن میکند.

()propeller: این تابع، افکت propeller را شبیه سازی میکند.

()spiralInAndOut: این تابع LEDها را با الگو مارپیچ به سمت داخل یا بیرون روشن میکند.

()goThroughAllLEDsOneAtATime: این تابع LEDها را به صورت متوالی و یکی پس از دیگری روشن و خاموش میکند.

کد پروژه، مجموعه ای از توابع برای کنترل مکعب 4×4×4 LED در اختیار ما میگذارد که به کمک آن ها میتوانیم افکت ها و الگوهای نورپردازی مختلفی ایجاد کنیم. هر الگو نورپردازی با فراخوانی یک تابع اجرا میشود که همین امر درک کد را برای ما آسان تر ساخته و ماژولاریتی یا پیمانگی سیستم را ارتقا میدهد.

تابع loop این الگوها را هماهنگ کرده و به صورت متوالی اجرا میکند.

کد مکعب 4×4×4 LED با آردوینو

مولد کد مکعب 4×4×4 LED

متوجهم که کدنویسی مکعب LED، به خصوص پس از کنار هم قرار گرفتن 64 لامپ، دردسر بزرگی به نظر میرسد. به همین دلیل از یک اپلیکیشن ویندوز به نام Cube3D استفاده میکنیم. کار با این اپلیکیشن آسان بوده و سختی کدنویسی مکعب LED را از بین میبرد. این اپلیکیشن به گونه ای طراحی شده است که چه از آردوینو استفاده کنید و چه از C در اتمل استودیو، بتواند کد لازم را مهیا کند. کد لازم برای راه اندازی یک مکعب 4×4×4 LED همین حالا نیز آماده است! با استفاده از لینک داده شده، فایل نصبی اپلیکیشن Cube3D با پسوند exe. را دانلود کرده و wizard را دنبال کنید.

این اپلیکیشن یک جدول از الگوهای نورپردازی برای مکعب 4×4×4 LED تولید کرده و با اینکار نمایش الگوها را سهولت میبخشد. کد لازم برای برنامه نویسی مکعب LED در خود اپلیکیشن موجود است. به علاوه میتوانید این کد را در مخزن LED-Cube-Code نیز بیابید.

برای روشن کردن LEDها، تنها کافی است روی آن ها کلیک کنید. بسیار آسان است. هنگامی که Enter را در code editor فشار دهید، جادو اتفاق افتاده و الگویی ایجاد میشود که LEDهای مکعب براساس آن روشن میشوند. این اپلیکیشن یک فیلد ورودی برای متغیر time دارد. تغییر این مقدار مدت زمانیکه یک الگو روی مکعب نشان داده میشود را تغییر میدهد. (برحسب میلی ثانیه)

هنگامی که از کد موجود در قسمت code editor رضایت پیدا کردید، آن را اکسپورت کنید. در این قسمت شما دو گزینه پیش رو دارید. گزینه اول این است که پروژه خود را به عنوان یک پروژه آردوینو اکسپورت کنید. گزینه دوم نیز این است که آن را تنها به عنوان یک فایل الگو اکسپورت کنید. انتخاب گزینه اول (اکسپورت و صدور فایل به عنوان یک فایل آردوینو) به شما یک فایل مرتب شامل کد کامل مکعب 4×4×4 LED در آردوینو و فایل pattern.h میدهد.

این فایل را در IDE آردوینو باز کرده، برنامه را آپلود کنید و بوم! مکعب شما LEDهای خود را مطابق با الگو شخصی سازی شده شما روشن و خاموش میکند. میبینید که چقدر آسان است؟

موارد موجود در فایل : سورس کامل

5 (2 نفر)

برای دریافت مطالب جدید کانال تلگرام یا پیج اینستاگرام ما را دنبال کنید.

محمد رحیمی

محمد رحیمی هستم. سعی میکنم در آیرنکس مطالب مفید قرار بدهم. سوالات مربوط به این مطلب را در قسمت نظرات همین مطلب اعلام کنید. سعی میکنم در اسرع وقت به نظرات شما پاسخ بدهم.

1 دیدگاه

  1. سلام خسته نباشید : برای ساخت مکعب 8*8*8 آیا دستورات فرق میکنه میدونم که از آی سی 74HC595 باید استفاده کرد

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

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