فهرست مطالب:

ماتریس LED RGB: 5 مرحله
ماتریس LED RGB: 5 مرحله

تصویری: ماتریس LED RGB: 5 مرحله

تصویری: ماتریس LED RGB: 5 مرحله
تصویری: 8x8 LED Matrix for Arduino 2024, جولای
Anonim
Image
Image
طراحی سخت افزار
طراحی سخت افزار

قابل جستجو ، و می توانید بسیاری از پروژه های ماتریس LED را پیدا کنید. هیچ یک از آنها کاملاً همان چیزی نبود که من می خواستم ، یعنی بررسی تعاملات سخت افزار و طراحی نرم افزار برای تولید چیزی ، و تولید محصول نهایی در یک PCB مرتب با درایور که اجازه دهید با استفاده از سطح بالا به "صفحه LED" بکشم. سازه ها (به عنوان مثال ، ترسیم خط برخلاف تنظیم پیکسل های خاص). این قسمت برای من مهم بود ، زیرا بسیاری از درایورهای ماتریس LED استخوان برهنه ای دارند و در ایجاد برنامه یا تصویر به صورت انیمیشن چیز زیادی ارائه نمی دهند. این بدان معنا نیست که شما نمی توانید تصاویر و انیمیشن ها را با سایر درایورها ایجاد کنید ، فقط باید از پروژه به پروژه کارهای تکراری بیشتری انجام دهید.

بنابراین من برای تحقق چشم اندازم تلاش کردم. اولین قدم طراحی سخت افزار بود. این احتمالاً برای من چالش برانگیز بود ، زیرا سابقه من بیشتر نرم افزاری است. باز هم ، طرح های از پیش پخته شده زیادی وجود داشت ، و من مطمئناً از آنها برای الهام استفاده کردم ، اما می خواستم از طریق انجام این کار یاد بگیرم ، بنابراین یک ماتریس 4x4 را روی یک تخته نان نمونه اولیه کردم. من از طریق آن فرایند بسیار آموختم ، زیرا چند تکرار اول من جواب نداد. اما ، من طراحی سخت افزاری را انجام دادم که به نوبه خود به من امکان توسعه راننده را داد.

من آردوینو را به عنوان پلتفرم درایور خود انتخاب کردم زیرا به طور گسترده در دسترس است و منابع آنلاین زیادی دارد. در حالی که تجربه شغلی به من اجازه می داد از نسخه سخت افزاری راننده بیشتر از تلاش سخت افزاری خود استفاده کنم ، هنوز تعداد زیادی تکرار وجود داشت در حالی که من عملکرد راننده را برای میکروکنترلر ATMega بهینه کردم و یک API برنامه نویسی ایجاد کردم که دوست داشتم.

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

مرحله 1: طراحی سخت افزار

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

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

از آنجا که من از LED های آند معمولی استفاده می کنم ، این بدان معنی است که ردیف ها قدرت مثبت را فراهم می کنند و ستون ها به زمین فرو می روند. خبر خوب این است که رجیسترهای شیفت 74HC595 هم می توانند منبع تغذیه و هم منبع تغذیه را کاهش دهند ، اما خبر بد این است که آنها محدودیتی در میزان توان یا منبع تغذیه خود دارند. پین های جداگانه 74HC595 حداکثر جریان 70 میلی آمپر دارند ، اما بهتر است کمتر از 20 میلی آمپر نگه دارید. رنگهای جداگانه در LED های RGB ما هر کدام حدود 20 میلی آمپر تساوی دارند. این بدان معناست که اگر بخواهم همه آنها را روشن کنم ، 74HC595 نمی تواند مستقیماً یک ردیف LED را تغذیه کند.

بنابراین به جای تغذیه مستقیم ردیف ، 74HC595 در عوض برای هر ردیف یک ترانزیستور هدایت می کند و ترانزیستور جریان فعلی ردیف را روشن یا خاموش می کند. از آنجا که در طراحی از LED های آند معمولی استفاده می شود ، ترانزیستور سوئیچینگ PNP خواهد بود. اگر از یک LED کاتد معمولی استفاده می کردیم ، ترانزیستور سوئیچینگ NPN بود. توجه داشته باشید که با استفاده از یک ترانزیستور PNP برای رانندگی در یک ردیف ، تنظیمات شیفت رجیستر برای روشن شدن آن در حال حاضر کم می شود زیرا یک ترانزیستور PNP برای روشن شدن نیاز به ولتاژ منفی بین امیتر و پایه دارد که اجازه می دهد جریان مثبت به داخل جریان یابد ردیف

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

در نهایت ، من باید تعیین کنم که برای هر کدام از LED های LED RGB از چه مقاومتهایی استفاده کنم. در حالی که می توانید از فرمول استاندارد که ترکیبی از ولتاژ جلو و جریان مورد نظر برای محاسبه مقاومت مورد نیاز است استفاده کنید ، من دریافتم که تنظیم جریان هر LED روی 20 میلی آمپر باعث ایجاد رنگ سفید در زمانی که همه LED های قرمز ، سبز و آبی روشن بودند می شود. به بنابراین شروع کردم به چشم زدن آن. قرمز زیاد در رنگ سفید به معنای افزایش مقاومت LED قرمز به اهم برای کاهش جریان است. من مقاومت های مختلف اهم را تغییر دادم تا اینکه ترکیبی را پیدا کردم که رنگ سفید را تولید می کرد که به نظرم درست بود. ترکیب نهایی برای LED قرمز 180 Ω ، برای LED سبز 220 Ω و برای LED آبی 100 Ω بود.

مرحله 2: ساخت سخت افزار - Breadboard

ساخت سخت افزار - تخته نان
ساخت سخت افزار - تخته نان
ساخت سخت افزار - تخته نان
ساخت سخت افزار - تخته نان

اولین مرحله سازنده سخت افزار ، سوار شدن بر روی نان بود. در اینجا من یک ماتریس 4x4 با LED های RGB ایجاد کردم. برای کنترل این ماتریس به 16 بیت ، برای ستون های RGB و برای هر سطر 4 بیت نیاز است. دو رجیستر شیفت 74HC595 می توانند همه را اداره کنند. من ابتدا یک مدار را بررسی کردم و طراحی کردم که فکر می کردم کار می کند ، سپس آن را روی تخته نان درست کردم.

احتمالاً بزرگترین چالش ساخت نان برد مدیریت تمام سیم ها بود. من یک کیت سیم از پیش ساخته شده برای تخته نان برداشتم ، اما در آن صورت کمی سخت بود. یک ترفند که به نظر من مفید بود ایجاد یک "پورت" برای اتصال به برد آردوینو بود. به این معنا که به جای اتصال پین های آردوینو به پین های مختلف IC روی تخته نرد ، چند ردیف روی تخته نان را به نقطه اتصال آردوینو اختصاص دهید و سپس پین های شناسه مربوطه را به آن ردیف ها وصل کنید. برای این پروژه ، شما فقط به پنج اتصال به آردوینو نیاز دارید: +5V ، زمین ، داده ، ساعت و قفل.

پس از اتمام ساخت نان برد ، باید آن را آزمایش کنم. با این حال ، بدون وجود درایوری برای ارسال سیگنال های مناسب به رجیسترهای شیفت ، نتوانستم آزمایش کنم که آیا طرح سخت افزار کار می کند یا خیر.

مرحله 3: طراحی نرم افزار درایور

Image
Image

با توجه به تجربه شغلی خود در زمینه توسعه نرم افزار ، این بخشی از پروژه بود که من احتمالاً در مورد مسیری که باید طی کنم روشن ترین بود. من بسیاری از دیگر درایورهای ماتریس LED مبتنی بر آردوینو را بررسی کردم. در حالی که مطمئناً درایورهای خوبی در دسترس هستند ، هیچ کدام به طرزی دلخواه من مطابق نبود. اهداف طراحی راننده این بود:

  • یک API سطح بالا ارائه دهید تا بتوانید به صورت برنامه نویسی تصاویر و انیمیشن ها ایجاد کنید. اکثر رانندگانی که دیدم بیشتر بر روی تصاویر سخت کدگذاری شده متمرکز بودند. همچنین ، از آنجا که من حرفه ای برنامه نویس C ++ هستم ، می خواستم از طراحی شی گرا خوب برای پیاده سازی و مدیریت فعالیت های رسم به ماتریس LED استفاده کنم.
  • برای مدیریت تصویر روی صفحه از رویکرد دو بافر استفاده کنید. یکی از بافرها چیزی است که از نظر برنامه ای به آن کشیده می شود ، در حالی که دیگری حالت پیکسل های ماتریس را در هر لحظه نشان می دهد. مزیت این رویکرد این است که در بین چرخه های به روزرسانی مالتی پلکس ، نیازی به به روز رسانی کامل فریم بعدی برای صفحه ندارید.
  • از PWM برای اجازه دادن به بیش از هفت رنگ اولیه که RGB می تواند از طریق ترکیب ساده عناصر قرمز ، سبز و آبی ارائه دهد ، استفاده کنید.
  • درایور را طوری بنویسید که فقط با ماتریس های LED RGB با اندازه متفاوت کار کند که از رویکرد طراحی کلی ماتریس من پیروی می کرد. توجه داشته باشید که در حالی که در طراحی سخت افزار من از رجیسترهای شیفت 74HC595 استفاده می شود ، من انتظار دارم که راننده من با هر مکانیزم روشن/خاموش سبک تغییر مکان که با استفاده از طرح بیت مشابه به عنوان طراحی سخت افزار من ارائه شده است ، کار کند. به عنوان مثال ، من انتظار دارم راننده من با طراحی سخت افزاری کار کند که از تراشه های DM13A برای کنترل ستون ها و تراشه 74HC595 برای کنترل ردیف ها استفاده می کند.

اگر می خواهید مستقیماً به دنبال کد درایور بروید ، ممکن است آن را در GitHub اینجا پیدا کنید.

اولین تکرار درایور من کمی منحنی یادگیری در مورد قابلیت های پلت فرم آردوینو بود. آشکارترین محدودیت مربوط به RAM است که برای Arduino Uno و Nano 2 کیلوبایت است. استفاده از اشیاء C ++ در چنین سناریویی به دلیل حافظه سربار اجسام اغلب توصیه نمی شود. با این حال ، من احساس کردم اگر این کار را به درستی انجام دهید ، مزایای اشیاء در C ++ از هزینه آنها (در RAM) بیشتر است.

دومین چالش مهم این بود که چگونه نحوه مدولاسیون عرض پالس را از طریق رجیسترهای شیفت پیاده سازی کنیم تا بتوانم بیش از هفت رنگ اولیه RGB LED را ایجاد کنم. من که سالها بر روی سیستم عامل های لینوکس برنامه نویسی کرده بودم ، عادت داشتم از ساختارهایی مانند نخ برای مدیریت فرایندهایی که نیاز به زمان بندی ثابت دارند استفاده کنم. زمان انجام عملیات به روز رسانی رجیستر شیفت هنگام تهیه درایور برای ماتریس LED که از مالتی پلکس استفاده می کند بسیار مهم است. دلیل این امر این است که حتی اگر مالتی پلکس آنقدر سریع اتفاق می افتد که چشم های شما نمی تواند LED های روشن و خاموش چشمک زن را ببیند ، چشم های شما می توانند تفاوتهایی را در کل زمان کلی که هر یک از LED ها روشن هستند مشاهده کنند. اگر یک ردیف LED به طور مداوم برای مدت زمان بیشتری نسبت به سایرین روشن باشد ، در طول مالتی پلکس روشن تر به نظر می رسد. این می تواند منجر به روشنایی ناهموار در ماتریس یا نوسان دوره ای ماتریس به طور کلی شود (این زمانی رخ می دهد که یک چرخه به روز رسانی بیشتر از بقیه طول بکشد).

از آنجایی که من نیاز به یک مکانیسم زمان بندی ثابت داشتم تا رضایت به روزرسانی های shift به وجود آید ، اما آردوینو به طور رسمی از موضوع پشتیبانی نمی کند ، مجبور شدم مکانیزم شبیه به موضوع خود را ایجاد کنم. اولین تکرار من این بود که به سادگی یک تایمر حلقه ایجاد کنم که به تابع حلقه آردوینو () بستگی داشته باشد و هنگامی که زمان معینی از آخرین باری که عملیات شلیک شده است سپری شود ، عملیاتی را انجام می دهد. این نوعی "چند وظیفه ای مشارکتی" است. خوب به نظر می رسد اما در عمل این ثابت شد که میزان شلیک بر حسب میکروثانیه اندازه گیری می شود. دلیل این امر این است که اگر دو تایمر حلقه در حال حرکت بودم ، یکی از اقدامات آنها اغلب به اندازه کافی طول می کشید تا باعث شود عمل دوم دیرتر از زمان مورد نظر شلیک شود.

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

طراحی بقیه راننده یک مورد نسبتاً ساده از طراحی شی گرا بود. به عنوان مثال ، من یک شی برای مدیریت تصویر بیت ثبت تغییر در هر حالت صفحه نمایش ایجاد کردم. با درنظر گرفتن کد مربوط به مدیریت تصویر بیت ، ایجاد رویکرد بافر دوقلو فوق الذکر به خودی خود یک تمرین ساده بود. اما من این دستورالعمل را برای تحسین ویژگی های طراحی شی گرا ننوشتم. سایر عناصر طراحی شامل مفهوم Glyph و RGB Image است. Glyph یک ساختار اصلی تصویر است که هیچ اطلاعات رنگی ذاتی ندارد. می توانید آن را تصویری سیاه و سفید در نظر بگیرید. هنگامی که Glyph به صفحه LED کشیده می شود ، اطلاعات رنگی برای نشان دادن نحوه رنگ آمیزی پیکسل های "سفید" داده می شود. تصویر RGB تصویری است که در آن هر پیکسل اطلاعات رنگ مخصوص به خود را دارد.

من شما را تشویق می کنم که نمونه های طرح آردوینو را مرور کرده و اسناد سربرگ درایور را مرور کنید تا با نحوه استفاده از درایور برای ایجاد تصاویر و انیمیشن ها در ماتریس LED RGB آشنا شوید.

مرحله 4: LED Ghosting

شبح LED
شبح LED
شبح LED
شبح LED

در ماتریس LED ، "شبح" پدیده ای است که LED در ماتریس می درخشد ، وقتی که مطلوب نباشد ، معمولاً بسیار کاهش می یابد. طراحی سخت افزاری اصلی من مستعد شبح بود ، به ویژه در ردیف آخر. علت این امر به دو دلیل است: ترانزیستورها بلافاصله خاموش نمی شوند و خازنی انگلی در LED های RGB.

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

برای رفع مشکل اشباع ترانزیستور ، می توان یک دیود Schottky به ترانزیستور بین پایه و کلکتور اضافه کرد تا در مواقع روشن بودن ترانزیستور ، جریان کمی برگشتی به پایه ایجاد شود و از اشباع شدن ترانزیستور جلوگیری شود. این امر به نوبه خود باعث می شود که ترانزیستور با خروج جریان از پایه سریعتر خاموش شود. برای توضیح عمیق این اثر به این مقاله مراجعه کنید. همانطور که در تصویر این بخش مشاهده می کنید ، بدون دیود ، شبح کاملاً قابل توجه است ، اما افزودن دیود به مدار برای هر ردیف ، شبح را به میزان قابل توجهی حذف می کند.

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

با این حال ، شایان ذکر است که در عمل من تأثیر خازن انگلی را به سختی قابل توجه می دانم (اگر آن را جستجو کنید ، می توانید آن را بیابید) ، و بنابراین من افزودن این مقاومت اضافی را اختیاری می دانم. تأثیر زمان آهسته شدن برای ترانزیستورهای اشباع بسیار قوی تر و قابل توجه است. با این وجود ، اگر سه عکس ارائه شده در این بخش را بررسی کنید ، می بینید که مقاومتها هرگونه شبح را که هنوز فراتر از زمانهای آهسته ترانزیستور رخ می دهد ، به طور کامل حذف می کند.

مرحله 5: تولید نهایی و مراحل بعدی

Image
Image

مرحله نهایی این پروژه برای من ایجاد یک برد مدار چاپی (PCB) بود. من از برنامه منبع باز Fritzing برای طراحی PCB خود استفاده کردم. در حالی که کارهای زیادی برای انجام 100 طرح LED روی صفحه 10x10 انجام شد ، من در واقع این مرحله از پروژه را به طرز عجیبی رضایت بخش دیدم. پی بردن به نحوه قرارگیری هر مسیر الکتریکی مانند یک پازل بود و حل آن معما حس موفقیت را ایجاد کرد. از آنجایی که من برای تولید تابلوهای مدار آماده نیستم ، از یکی از منابع آنلاین زیادی استفاده می کنم که PCB های سفارشی را اجرا می کند. لحیم کاری قطعات با هم تقریباً رو به جلو بود زیرا طراحی من از تمام قطعات حفره دار استفاده می کرد.

در زمان نگارش این دستورالعمل ، من برنامه های زیر را برای پروژه های RGB LED ماتریس خود دارم:

  1. به بهبود درایور در لایه API ادامه دهید تا قابلیت های سطح بالاتری را برای برنامه نویس فعال کنید ، که مهمترین آنها پیمایش متن است.
  2. طرح های ماتریس بزرگتری مانند 16x16 یا حتی 16x32 ایجاد کنید.
  3. برای تغییر قدرت ردیف ، به جای BJT از MOSFET ها کاوش کنید
  4. با استفاده از درایورهای جریان ثابت DM13A به جای 74HC595 برای تغییر ستون ، کاوش کنید
  5. درایورهایی را برای سایر سیستم عامل های کنترل میکرو مانند Teensy ، ODROID C2 یا Raspberry Pi ایجاد کنید.

توجه داشته باشید که طراحی سخت افزار و درایور تحت مجوز منبع باز GPL v3 در این مخزن GitHub منتشر شده است. علاوه بر این ، اگرچه تولیدکنندگان مدار چاپی "کارهای کوچک" طراحی PCB من را انجام می دهند ، اما من هنوز به مراتب بیشتر از آنچه شخصاً به آن نیاز دارم به دست می آورم. بنابراین من کیت های کامل برای طرح های مختلف ماتریس RGB LED (PCB و تمام قطعات موجود) را از وب سایت خود در اینجا می فروشم.

توصیه شده: