Съдържание:

Как да управлявате много светодиоди от няколко пина на микроконтролера .: 6 стъпки (със снимки)
Как да управлявате много светодиоди от няколко пина на микроконтролера .: 6 стъпки (със снимки)

Видео: Как да управлявате много светодиоди от няколко пина на микроконтролера .: 6 стъпки (със снимки)

Видео: Как да управлявате много светодиоди от няколко пина на микроконтролера .: 6 стъпки (със снимки)
Видео: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Ноември
Anonim
Как да управлявате много светодиоди от няколко щифта на микроконтролера
Как да управлявате много светодиоди от няколко щифта на микроконтролера

Използвайки факта, че много пинове на микроконтролер имат три състояния (+V, GND или "висок импеданс", можете да управлявате N*(N-1) светодиоди от N пинове. Така малкият 8-пинов микроконтролер като PIC12Fxxx или ATtiny11 може да управлява 20 светодиода включват пет налични изходни пина и все още им остава един щифт за някакъв вид вход. Вижте също

Стъпка 1: 20 светодиода на 5 пина

20 светодиода на 5 пина
20 светодиода на 5 пина

Текущият набор от микроконтролери с нисък брой пинове (6 пина до 20 пина включени

целия пакет) са на атрактивни цени и „сладки“, но възниква въпросът как можете да използвате най -добре тези щифтове за често срещани приложения, като например светодиоди за управление. Подходът с директно свързване към управляващите светодиоди консумира по един извод за всеки светодиод. Традиционна схема за мултиплексиране, при която редове от LED аноди се задвижват от един набор от N пина, а общият катод на всеки ред се задвижва от друг набор от M пина, успява да запали N*M светодиоди с N+M щифтове. Въпреки това, на процесор с само 5 или по-малко изхода (какъвто е случаят с повечето 8-пинови микроконтролери), това едва ли ви дава повече изходи от директно задвижване.

Стъпка 2: Чарлиплексиране

Чарлиплекс
Чарлиплекс

Ако приемем, че изходните щифтове са действително с три състояния (активен висок, активен нисък и висок импеданс (вход)), също е възможно да се споделят драйверите на редове и колони и да се контролират N*(N-1) светодиоди само с N пина. Един щифт е свързан към общи катоди на ред светодиоди и задвижван ниско, а останалите щифтове N-1 са свързани към анодите и или се задвижват високо, за да осветят тази колона, или оставят като входове, за да напуснат светодиода. Максим нарича тази техника "Charlieplexing" и я описва в (1); Microchip също споменава това в своя документ (2) (и изпълнения на платката PICKit 1.) (1) „Charlieplexing-Мултиплексиране на LED дисплеи с намален брой пинове“https://www.maxim-ic.com/appnotes. cfm/appnote_number/1880 (2) „Съвети и трикове 8-пинови FLASH PIC микроконтролери“https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf(3) Чарлиплексиращи светодиоди- Теорията Инструктируема от rgbphil

Стъпка 3: Привеждане в действие

Включване в работа
Включване в работа
Включване в работа
Включване в работа

Това задвижва 20 светодиода от ATtiny11. По -ранна версия на тази дъска беше

действително построен и се появява като снимка на главната страница. Боя се, че картината на схемата е доста безнадеждна; имате нужда от Eagle да ви каже кои сигнали къде са свързани.

Стъпка 4: По -малък и по -универсален …

По -малък и по -универсален …
По -малък и по -универсален …

Тъй като по -голямата част от платката се заема от LED масива, можем да освободим място

за чип Attiny ИЛИ за микрочип PIC12F чип. Свийте светодиодите до 3 мм и отидете на двустранна платка и получаваме нещо за 27x44 мм Уви, тази платка все още не е тествана …

Стъпка 5: Itty Bitty

Ити Бити
Ити Бити

Разбира се, микрочипът има своите 6 -пинови PIC10F чипове, способни да управляват

само 6 светодиода от 3 -те изходни щифта. Това е около 16 мм в диаметър. Преминаването към 603 светодиода ви позволява да станете малко по -малки, но не съм сигурен какъв е смисълът.

Стъпка 6: Софтуер

Софтуерът става малко объркан поради служебни причини:

1) за показаните печатни платки, светодиодите са разположени по начин, който е удобен за оформлението на печатната платка, а не в "правилен" ред на битовете. ИМО, това е начинът да се правят нещата, но това означава, че ред 1 не означава непременно бит 1 или колома 3 не означава бит 3. Това изисква ниво на съпоставяне между обичайното адресиране на ред/колона и битове, които се нуждаят от настройка. 2) Тъй като същите битове се използват за аноди и катоди, общата (ред) връзка за някои битове може да бъде в средата на задвижваните (колона) битове. Това означава, че трябва да измествате битовете на колоните в зависимост от това дали са преди или след бита на реда за този набор от колони. 3) Трябва да изведете изходни думи както за ioport, така и за регистъра на посоката на порта. Приложеният ASM код за ATtiny11 е „доказателство за концепцията“. Това е ужасно неоптимизирано и лошо коментирано, но това е всичко, което съм написал досега.

Препоръчано: