Cuprins:
- Pasul 1: 20 de LED-uri pe 5 pini
- Pasul 2: Charlieplexing
- Pasul 3: Puneți-l la treabă
- Pasul 4: mai mic și mai versatil …
- Pasul 5: Itty Bitty
- Pasul 6: Software
Video: Cum să conduceți o mulțime de LED-uri de la câțiva pini de microcontroler .: 6 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:46
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
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
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ă
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 …
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
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:
Sistem de alarmă de incendiu care utilizează Arduino [în câțiva pași simpli]: 3 pași
Sistem de alarmă la incendiu care utilizează Arduino [în câțiva pași simpli]: Căutați să faceți un proiect simplu și interesant cu Arduino care, în același timp, ar putea fi cu adevărat util și potențial salvator de vieți? Dacă da, ați venit la locul potrivit pentru a învăța ceva nou și inovator. În această postare suntem plecați
Pike - Conduceți mai sigur, conduceți mai inteligent, conduceți o știucă !: 5 pași
Pike - Drive Safer, Drive Smarter, Drive a Pike !: Bine ați venit la proiectul meu numit Pike! Acesta este un proiect care face parte din educația mea. Sunt student NMCT la Howest din Belgia. Scopul a fost de a face ceva inteligent folosind un Raspberry Pi. Am avut o libertate deplină în care am vrut să devenim inteligenți. Pentru mine a fost
Controlează o mulțime de servo cu Arduino !: 4 pași (cu imagini)
Controlați o mulțime de servo cu Arduino !: La început ar trebui să spun ceva. Nu aveam poze frumoase. Deci, am făcut fotografiile de pe bildr.blog. Știm, un Arduino UNO nu are prea mulți pini pentru a controla multe servoe. Deci, adesea cădem într-o problemă pentru a controla mai multe servome de către un arduino
Cum să alegeți un microcontroler: 21 de pași (cu imagini)
Cum să alegeți un microcontroler: se obișnuia că numărul de cipuri diferite de microcontroler disponibile pentru hobbyist era destul de limitat. Trebuie să folosești tot ce ai reușit să cumperi de la distribuitorul de cipuri prin corespondență, ceea ce a restrâns alegerea la un număr mic de ch
ISP 6 pini la 8 pini soclu: 4 pași
Socket ISP 6 pini la 8 pini: Motivul pentru care am construit în principal acest proiect a fost să programez ATTiny45, care are o conexiune cu 8 pini, în timp ce USBtinyISP (de la Ladyada) are doar o conexiune cu 10 pini și 6 pini. După ce am cercetat internetul timp de vreo 3-4 săptămâni, nu am găsit nimic ce