این پروژه برای کلاس الکترونیک مقدماتی من در دانشگاه واترلو در کانادا ساخته شده است. این اولین آشنایی من با الکترونیک و بنابراین اولین پروژه من بود.
این مراحل را دنبال کنید تا یک آرایه LED 16 x 16 با دیوار بسازید (ال ای دی رنگی متفاوت در حاشیه)، که توسط آردوینو مگا 2560 تغذیه می شود. جزئیات ساخت یک کنترلر بازی را نیز درج کرده ام.
این پروژه برای یک مبتدی ایده آل است، زیرا شما را با چندین عنصر اساسی در الکترونیک عملی آشنا می کند. شما می توانید نحوه خواندن برگه های داده، نحوه لحیم کاری، نحوه کار با LED، مالتی پلکس برای ذخیره خطوط خروجی، برنامه ریزی یک میکروکنترلر از طریق آردوینو، نحوه در نظر گرفتن عوامل عملی در طراحی، مقاومت ها و ملاحظات آنالوگ در مدارهای دیجیتال را بیاموزید. و غیره..
در پایان پروژه، شما باید به خوبی مجهز باشید تا به سراغ موارد پیچیده تر مانند مکعب های LED یا نمایشگرهای چرخان بروید.
مرحله 1: مبانی چند پلکسی
به منظور داشتن یک ماتریس LED با هر اندازه قابل توجهی، باید LED های بیشتری نسبت به خروجی های خود کنترل کنید. برای انجام این کار می توانید LED های خود را مالتیپلکس کنید. اینطوری کار میکنه:
ال ای دی ها در یک مستطیل چیده شده اند. آندها در یک جهت و کاتدها عمود بر آندها به هم لحیم می شوند. هنگامی که همه کاتدها بالا و آندها پایین هستند، ولتاژ منفی به هر LED اعمال می شود، و اگر ولتاژ به اندازه کافی کم باشد (به "انتخاب LED ها" در بخش اجزا مراجعه کنید)، خراب نمی شود. برای روشن کردن یک LED خاص، خط کاتد آن را پایین و خط آند آن را بالا قرار دهید. برای مثال، برای روشن کردن LED (4،2) در نمودار، segB را روی high و Dig4 را روی low قرار دهید.
راه اندازی از POV (Persistence of Vision) برای ترسیم تصویر روی آرایه استفاده می کند. هر LED مورد نیاز برای ترسیم تصویر یکی یکی روشن می شود و خیلی سریع حلقه می شود و این توهم را ایجاد می کند که همه LED ها همزمان روشن هستند (به بخش برنامه نویسی مراجعه کنید).
در این پروژه از آردوینو مگا 2560 استفاده کردم و 16 خروجی را به کاتدها و 16 خروجی را به آندها اختصاص دادم. من از خروجی ولتاژ بالا (5 ولت) به عنوان منبع تغذیه استفاده کردم. این برای سادگی در اولین پروژه انجام شد. با این حال، اگر می توانید، باید از استفاده از سیگنال دیجیتال به عنوان منبع تغذیه خودداری کنید. تعدادی دلیل برای این وجود دارد. خروجی های دیجیتال سیگنال هستند و برای تامین جریان زیاد طراحی نشده اند. اگر مدار شما انرژی زیادی می گیرد، می توانید از حد مجاز در هر خط یا جریان کلی میکروکنترلر خود (40 میلی آمپر در هر منبع تغذیه/سینک برای Atmega) عبور کنید. همچنین، خروجی های دیجیتال در آردوینو و تقریباً هر برد مستقیماً بدون فیوز به میکروکنترلر متصل می شوند. این باعث می شود که میکروکنترلر در برابر خطاهای سیم کشی شما آسیب پذیر باشد. برای مثال، یک اتصال کوتاه ساده میتواند به طور بالقوه پینها یا میکروکنترلر را بیاستفاده کند. با این حال، فیوز اصلی که جریان کلی را محدود می کند باید از این امر جلوگیری کند.
راه حل ایده آل استفاده از خروجی های دیجیتال برای روشن/خاموش کردن ترانزیستور در هر خط و استفاده از منبع تغذیه خارجی برای راه اندازی مدار است. این امر پیچیدگی سیم کشی را افزایش می دهد و البته برای این کار به منبع تغذیه خارجی نیاز دارید. اگر قبل از ساختن پروژههای پیچیدهتر مانند مکعب، این را به عنوان تمرین میسازید، باید مسیر ترانزیستور را در نظر بگیرید. اگر این کار را بهعنوان یک پروژه کوچک انجام میدهید، آرایه LED شما خیلی بزرگ نخواهد بود، یا در زمان/هزینه محدودیت دارید، میتوانید از ترانزیستورها استفاده نکنید.
اگر از منبع تغذیه خارجی استفاده می کنید، می توانید برای افزایش تعداد پین های خروجی خود از رجیسترهای شیفت و تابع shift_out نیز استفاده کنید. این امر پیچیدگی سیمکشی و برنامهنویسی را افزایش میدهد، اگرچه ساخت پروژههایی که نیاز به کنترل تعداد زیادی LED، مانند یک مکعب، بدون آن دارند، تقریبا غیرممکن است.
مرحله 2: اجزاء
برای ساخت آرایه و کنترلر از این قطعات استفاده کردم.
- یک آردوینو مگا 2560
- ال ای دی (256)
- مقاومت (16)
- تخته نمونه سازی
- دکمه های فشاری (8)
- تخته نان
- کابل های IDE / روبان (2)
- اتصالات
- سیم و سیم برش
- آهن لحیم کاری و لحیم کاری
- نوار عایق
– من آردوینو مگا را انتخاب کردم زیرا میخواستم یک ماتریس ۱۶×۱۶ بسازم و برای این کار به ۳۲ خروجی نیاز داشتم. شما می توانید از Arduino Uno (14 پین I/O) استفاده کنید، اما به ماتریس 7×7 محدود خواهید شد و فضایی برای کنترلر وجود ندارد.
- برای یک ماتریس nxn، تعداد LED های مورد نیاز به عنوان تابعی از n^2 افزایش می یابد. بنابراین هر چه بزرگتر می شوید، تعداد LED ها و زمان لحیم کاری شما به طور تصاعدی افزایش می یابد. این را در نظر بگیرید.