نحوه نمایش مطالب: تاریخ | امتیاز | بازدیدها | نظرات | الفبایی
اطلاعات مطلب
  • بازديدها: 498
  • نويسنده: jouzdani
  • تاريخ: 8 فروردین 1396
8 فروردین 1396

charlieplexing

دسته بندی: آموزش

شاید هنگام کار با میکروکنترلر های کوچک از جمله سری ATTiny نیاز به روشن کردن تعداد زیادی LED داشته باشید و یا اینکه اصلا از ابتدا فقط به خاطر این موضوع سراغ آی سی های گران قیمت تر مثل ATmega8 و ... بروید .
برای روشن کردن LED در کل سه روش وجود دارد :
1- روش ساده : در این روش به ازای هر LED باید حداقل یک پایه از میکروکنترلر ها را اختصاص داد که این روش برای کنترل 90 عدد LED اصلا مناسب نمی باشد .
2- روش مرسوم به ماتریس : برای کاهش تعداد پایه های میکروکنترلر از این روش استفاده می شود در این روش LED ها را داخل سطر و ستون می چینند و به طور مثال پایه آند LED های موجود در هر سطر و پایه کاتد LED های موجود در هر ستون را به یکدیگر متصل می کنند و یا بالعکس در این روش برای کنترل 90 عدد LED تنها به 19 پایه از میکروکنترلر نیاز است 10 سطر و 9 ستون
3- روش مالتی پلکس زمانی یا charlieplexing : در این روش نسبتا جدید برای کنترل 90 عدد LED به صورت مجزا تنها به 10 پایه از میکروکنترلر نیاز است . اما چطور؟ خب در جواب باید بگویم که با چیدمان خاص LED ها و زمان بندی پروسسور میکرو می توان این روش را پیاده سازی کرد عجله نکنید در ابتدا کمی مبهم به نظر می رسد ولی جلوتر می بینید که چیز خاصی ندارد و به راحتی می توانید آن را پیاده کنید . برای فهم ساده تر این موضوع فرض کنید با میکرو ATTiny85 کار می کنید و تنها 4 پایه از این میکرو را می توانید برای روشن کردن LED اختصاص دهید خب با توجه به مطالب بالا در روش اول که تنها می توانید 4 LED را روشن نمایید در روش دوم باز هم به 4 پایه برای روشن کردن 4 LED نیاز خواهید داشت (جالبه نه؟؟؟) ولی در این روش میتوانید با 4 پایه از میکروکنترلر 12 عدد LED را روشن کرد !! اما چطور محاسبه می شود
فرمول محاسبه تعداد پایه ها و تعداد LED هایی که می توان با آن روشن کرد را میتوان در زیر مشاهده کرد
Max LED = n*(n-1)
که درفرمول بالا n تعداد پایه های میکروکنترلر می باشد پرواضح است که 4 پایه میکروکنترلر در این روش می تواند 12 عدد LED را روشن نماید.
به جدول زیر نگاهی بیاندازید

charlieplexing


فکر می کنم تا حدود زیادی دستتون آمد که قضیه از چه قراره
در ابتدای مطلب هم اشاره کردم که یه جور مالتی پلکس زمانی است هنگامی که PB.4=1 , PB.1=0 می باشد LED شماره چهار روشن می شود حال چانچه بخواهیم LED شماره 9 روشن شود کافی است داشته باشیم : PB.1=1 , PB.3=0 و به همین ترتیب ...
دقت کنید که به یک پایه همزمان نمی توان صفر و یک اعمال کرد !
اما چطور می شود که همه این LED ها را باهم روشن کرده و ثابت روشن بماند و یا فقط 8 عدد آن دائم روشن باشد و دوتای آن خاموش ؟
در ادامه به توضیح این مطلب می پردازیم