Cuprins:

Cum să conduceți o mulțime de LED-uri de la câțiva pini de microcontroler .: 6 pași (cu imagini)
Cum să conduceți o mulțime de LED-uri de la câțiva pini de microcontroler .: 6 pași (cu imagini)

Video: Cum să conduceți o mulțime de LED-uri de la câțiva pini de microcontroler .: 6 pași (cu imagini)

Video: Cum să conduceți o mulțime de LED-uri de la câțiva pini de microcontroler .: 6 pași (cu imagini)
Video: Ce VEHICUL poți să conduci FĂRĂ PERMIS ?! 2024, Noiembrie
Anonim
Cum să conduceți o mulțime de LED-uri de la câțiva pini de microcontroler
Cum să conduceți o mulțime de LED-uri de la câțiva pini de microcontroler

Folosind faptul că mulți pini de microcontroler au trei stări (+ V, GND sau "impedanță ridicată", puteți conduce N * (N-1) LED-uri de la N pini. Deci micul microcontroler cu 8 pini ca un PIC12Fxxx sau un ATtiny11 poate conduce 20 de LED-uri conțin cinci pini de ieșire disponibili și mai rămâne un pin pentru un anumit tip de intrare. Vezi și

Pasul 1: 20 de LED-uri pe 5 pini

20 LED-uri pe 5 pini
20 LED-uri pe 5 pini

Recolta actuală a microcontrolerelor cu număr mic de pini (6 pini la 20 pini activi

întregul pachet) au un preț atractiv și sunt „drăguțe”, dar se pune întrebarea cu privire la modul în care puteți utiliza cele mai bune ace ace pentru aplicații obișnuite, cum ar fi LED-urile de conducere. O abordare prin conectare directă la conducerea LED-urilor consumă un pin pentru fiecare LED. O schemă tradițională de multiplexare în care rândurile de anodi LED sunt conduse de un set de N pini și catodul comun al fiecărui rând este condus de un alt set de pini M reușește să aprindă LED-uri N * M cu N + M pini. Cu toate acestea, la un procesor cu doar 5 sau mai puține ieșiri (așa cum este cazul majorității microcontrolerelor cu 8 pini), acest lucru abia obține mai multe ieșiri decât unitatea directă.

Pasul 2: Charlieplexing

Charlieplexing
Charlieplexing

Presupunând că pinii de ieșire pot fi tri-stabili (impedanță activă, activă scăzută și înaltă (intrare)), este de asemenea posibil să partajați driverele de rând și coloană și să controlați LED-urile N * (N-1) cu doar N pini. Un pin este conectat la catodii obișnuiți ai unui rând de LED-uri și este condus jos, iar pinii N-1 rămași sunt conectați la anodi și fie direcționați în sus pentru a lumina acea coloană, fie lăsați ca intrări pentru a părăsi LED-ul. Maxim numește această tehnică „Charlieplexing” și o descrie în (1); Microchip menționează acest lucru și în documentul lor (2) (și implementează și pe placa PICKit 1.) (1) „Charlieplexing - Reduced Pin-Count LED Display Multiplexing” https://www.maxim-ic.com/appnotes. cfm / appnote_number / 1880 (2) "Tips 'n Tricks 8-pin FLASH PIC Microcontrollers" https://ww1.microchip.com/downloads/en/DeviceDoc/40040b.pdf(3) LED-uri Charlieplexing- Theory An Instructable by rgbphil

Pasul 3: Puneți-l la treabă

Punându-l la treabă
Punându-l la treabă
Punându-l la treabă
Punându-l la treabă

Aceasta conduce 20 de LED-uri de la un ATtiny11. O versiune anterioară a acestui tablou a fost

de fapt construit și apare ca fotografia paginii principale. Mă tem că imaginea schemei este destul de deznădăjduită; aveți nevoie de Eagle pentru a vă spune ce semnale sunt conectate unde.

Pasul 4: mai mic și mai versatil …

Mai mic și mai versatil …
Mai mic și mai versatil …

Deoarece majoritatea plăcii este preluată de matricea de LED-uri, putem face loc

fie pentru un cip Attiny SAU pentru un chip PIC12F cu microcip. Micșorați LED-urile până la 3 mm și mergeți la o placă dublă și avem ceva de aproximativ 27x44 mm Din păcate, această placă nu a fost încă testată …

Pasul 5: Itty Bitty

Mic de tot
Mic de tot

Desigur, microcipul are cipurile PIC10F cu 6 pini, capabile să conducă un

doar 6 LED-uri de la cei 3 pini de ieșire. Acesta are aproximativ 16 mm în diametru. Dacă mergeți la 603 de LED-uri, vă permite să deveniți puțin mai mici, dar nu sunt sigur ce rost are.

Pasul 6: Software

Software-ul devine puțin dezordonat din motive serverale:

1) pentru PCB-urile afișate, LED-urile sunt așezate într-un mod care este convenabil pentru aspectul PCB-ului, mai degrabă decât în ordinea de biți „corectă”. OMI, aceasta este modalitatea de a face lucrurile, dar înseamnă că rândul 1 nu înseamnă în mod necesar bitul 1, sau coluimn 3 nu înseamnă bitul 3. Acest lucru necesită un nivel de mapare între adresarea obișnuită a rândului / coloanei și biți care necesită setare. 2) Deoarece aceiași biți sunt utilizați pentru anodii și catodii, conexiunea comună (rând) pentru unii biți poate fi în mijlocul biților conduși (coloană). Asta înseamnă că trebuie să schimbați biții de coloană în funcție de faptul dacă sunt înainte sau după bitul de rând pentru acel set de coloane. 3) Trebuie să derivați cuvinte de ieșire atât pentru ioport cât și pentru registrul de direcție a portului. Codul ASM atașat pentru ATtiny11 este o „dovadă a conceptului”. Este jalnic neoptimizat și slab comentat, dar este tot ce am scris până acum.

Recomandat: