INHOUDSOPGAWE:

Charlieplexing LEDs- die teorie: 7 stappe (met prente)
Charlieplexing LEDs- die teorie: 7 stappe (met prente)

Video: Charlieplexing LEDs- die teorie: 7 stappe (met prente)

Video: Charlieplexing LEDs- die teorie: 7 stappe (met prente)
Video: Правила работы с микроскопом / Как настроить / Инструкция 2024, November
Anonim
Charlieplexing LEDs- die teorie
Charlieplexing LEDs- die teorie
Charlieplexing LEDs- die teorie
Charlieplexing LEDs- die teorie

Hierdie instruksies is minder 'n eie projek, maar meer 'n beskrywing van die teorie van charlieplexing. Dit is geskik vir mense met die basiese beginsels van elektronika, maar nie volledige beginners nie. Ek het dit geskryf na aanleiding van die vele vrae wat ek in my voorheen gepubliseerde Instructables gekry het.

Wat is 'Charlieplexing'? Dit dryf baie LED's met slegs 'n paar penne. As u wonder Charlieplexing is vernoem na Charles Allen by Maxim wat die tegniek ontwikkel het. Dit kan nuttig wees vir baie dinge. Miskien moet u statusinligting op 'n klein mikrobeheerder vertoon, maar u moet slegs 'n paar penne oor hê. Miskien wil u 'n splinternuwe matriks of klok wys, maar wil nie baie komponente gebruik nie. 'N Paar ander projekte wat charlieplexing aandui waarna u wil kyk, is: Hoe u baie LED's van 'n paar mikrobeheerspennetjies kan dryf. deur Westfw:- https://www.instructables.com/id/ED0NCY0UVWEP287ISO/ En 'n paar van my eie projekte, The Microdot kyk:- https://www.instructables.com/id/EWM2OIT78OERWHR38Z/ Die Minidot 2-horlosie: - https://www.instructables.com/id/E11GKKELKAEZ7BFZAK/ Nog 'n goeie voorbeeld van die gebruik van charlieplexing is op: https://www.jsdesign.co.uk/charlie/ Die Minidot 2 -horlosie stel 'n gevorderde charlieplexing -skema bekend vir vervaag/verdof, wat nie hier bespreek sal word nie. UPDATE 19 Augustus 2008: Ek het 'n zip -lêer bygevoeg met 'n stroombaan wat moontlik die matrix charliplexing kan benut vir LED's met 'n hoë krag wat bespreek word (breedvoerig:)) in die kommentaarafdeling. Dit het 'n drukknop + posisie -enkodeerder vir 'n gebruikerskoppelvlak, plus kringe vir USB- of RS232 -rekenaarbeheer. Elkeen van die hoogspanningsrails kan op een van twee spannings gestel word, sê 2,2V vir ROOI LED's en 3,4V vir groen/blou/wit. Die spanning vir die hoë syrails kan deur trimpot ingestel word. Ek sou dink dat 'n 20 -draads IDC -lintkabel in die bord gekoppel word en dat 20pin IDC -aansluitings langs die lint aangebring word, elke LED -bord met skakels na die drade in die matriks. Die kring is in Eagle Cad en word weergegee in die onderafbeelding hieronder. Die hoëkantkring word geïmplementeer deur optokoppelaars te gebruik, wat volgens my geskik kan wees. Ek het hierdie kring eintlik nie getoets nie en ook geen sagteware geskryf nie, maar ek het dit vir kommentaar gelewer; ek is veral geïnteresseerd in die implementering van die optokoppelaar. Almal wat dapper genoeg is om dit te probeer … plaas asseblief u resultate. UPDATE 27 Augustus 2008: Vir diegene wat nie EagleCad gebruik nie … hieronder is 'n pdf van die skematiese

Stap 1: 'n paar LED -teorie

Sommige LED -teorie
Sommige LED -teorie
Sommige LED -teorie
Sommige LED -teorie

Charlieplexing maak staat op 'n aantal nuttige aspekte van LED's en moderne mikrobeheerders.

Wat gebeur eerstens as u 'n LED aan elektrisiteit koppel? Die onderstaande hoofdiagram toon die sogenaamde If v Vf -kromme van 'n tipiese 5 mm lae krag LED. As staan vir 'vorentoe stroom' Vf staan vir 'vorentoe spanning'. Die vertikale as toon met ander woorde die stroom wat deur 'n LED sal vloei as u die horisontale as spanning oor sy terminale plaas. Dit werk ook andersom. As u meet dat die stroom 'n waarde het, kan u na die horisontale as kyk en die spanning sien wat die LED oor die terminale sal plaas. Die tweede diagram toon 'n skematiese voorstelling van 'n LED met If en Vf gemerk. Uit die hoofdiagram het ek ook gebiede van die grafiek gemerk wat van belang is. - Die eerste gebied is waar die LED af is. Meer akkuraat straal die LED so dof uit dat jy dit nie kan sien nie, tensy jy 'n soort super-duper beeldversterker gehad het. - Die tweede gebied het 'n effense gloed van die LED. - Die derde gebied is waar 'n LED gewoonlik gebruik word en wat lig uitstraal volgens die vervaardiger se gradering. - Die vierde gebied is waar 'n LED buite sy werkgrense werk, gloei waarskynlik baie helder, maar helaas slegs 'n kort rukkie voordat die magiese rook binne ontsnap en dit nie weer kan werk nie … dws in hierdie gebied brand dit uit omdat te veel stroom vloei daardeur. Let daarop dat die If/Vf-kromme of bedryfskromme van die LED 'n 'nie-lineêre' kromme is. Dit wil sê, dit is nie 'n reguit lyn nie … dit het 'n buiging of knik. Laastens is hierdie diagram vir 'n tipiese 5 mm rooi LED wat ontwerp is om op 20mA te werk. Verskillende LED's van verskillende vervaardigers het verskillende werkskurwes. Byvoorbeeld, in hierdie diagram by 20mA sal die voorspanning van die LED ongeveer 1,9V wees. Vir 'n blou 5 mm LED by 20mA kan die voorwaartse spanning 3,4V wees. Vir 'n hoë -krag wit luxeon -LED op 350mA kan die voorspanning ongeveer 3,2V wees. Sommige LED -pakkette kan verskeie LED's in serie of parallel wees, wat die Vf/If -kromme weer verander. Gewoonlik sal 'n vervaardiger 'n bedryfsstroom spesifiseer wat veilig is om die LED te gebruik, en die voorwaartse spanning by die stroom. Gewoonlik (maar nie altyd nie) kry u 'n grafiek soos hieronder in die datablad. U moet na die datablad van die LED kyk om te bepaal wat die voorwaartse spanning is by verskillende werkstrome. Waarom is hierdie grafiek so belangrik? Omdat dit toon dat wanneer die spanning oor die LED is, die stroom wat vloei volgens die grafiek sal wees. Verlaag die spanning en minder stroom vloei …. en die LED sal 'af' wees. Dit is deel van die teorie van charlieplexing, waarna ons in die volgende stap gaan.

Stap 2: Die wette (van elektronika)

Die wette (van elektronika)
Die wette (van elektronika)
Die wette (van elektronika)
Die wette (van elektronika)
Die wette (van elektronika)
Die wette (van elektronika)

Nog steeds nie die wonder van charlieplexing nie … ons moet na die basiese beginsels van elektroniese wette kyk. spanning oor die komponente. Dit word in die onderstaande diagram getoon. Dit is handig as u LED's gebruik, omdat u gemiddelde battery of mikrokontroller -uitsetpen nooit presies die regte spanning sal wees om u LED teen die aanbevole stroom te laat werk nie. Byvoorbeeld, 'n mikrobeheerder werk gewoonlik op 5V, en die uitsetpenne daarvan sal by 5V wees as dit aan is. As u net 'n LED aan die uitsetpen van die mikro koppel, sal u op die werkingskromme op die vorige bladsy sien dat daar te veel stroom in die LED vloei en dit sal warm word en uitbrand (waarskynlik ook die mikro beskadig). As ons egter 'n tweede komponent in serie met die LED bekendstel, kan ons 'n paar van die 5V aftrek sodat die spanning wat links is, reg is om die LED op die regte werkstroom te laat loop. Dit is tipies 'n weerstand, en word op hierdie manier 'n stroombeperkende weerstand genoem. Hierdie metode word baie algemeen gebruik en lei tot die sogenaamde 'ohms law' … so genoem na mnr Ohm. Ohms law volg die vergelyking V = I * R waar V die spanning is wat oor 'n weerstand R sal verskyn wanneer 'n stroom I vloei deur die weerstand. V is in volt, ek is in ampère en R is in ohm. As ons dus 5V moet spandeer, en ons wil 1.9V oor die LED hê om dit teen 20mA te laat werk, dan wil ons hê dat die weerstand 5-1.9 = 3.1 het V daaroor. Ons kan dit in die tweede diagram sien. Omdat die weerstand in serie met die LED is, vloei dieselfde stroom deur die weerstand as die LED, dws 20mA. Om die vergelyking te herrangskik, kan ons die weerstand vind wat nodig is om dit te laat werk. tot dusver … cool. Kyk nou na diagram 3. Dit het die LED tussen twee weerstande. Volgens die eerste wet hierbo genoem, het ons dieselfde situasie op die tweede diagram. Ons het 1.9V oor die LED, so dit werk volgens die spesifikasieblad. Elke weerstand trek ook 1,55V af (vir 'n totaal van 3,1). As ons die spannings bymekaar tel, het ons 5V (die mikrokontrolepennetjie) = 1,55V (R1) + 1,9V (die LED) + 1,55V (R2) en alles balanseer. Met behulp van die ohm -wet vind ons dat die weerstande elk 77,5 ohm moet wees, Dit is die helfte van die bedrag wat bereken word uit die tweede diagram. Natuurlik sal u in die praktyk moeilik wees om 'n weerstand van 77,5 ohm te vind, sodat u die naaste beskikbare waarde kan vervang, sê 75ohms en 'n bietjie meer stroom in die LED of 82 ohm om veilig te wees en 'n bietjie minder te hê. Waarom op aarde moet ons hierdie weerstand doen om 'n eenvoudige LED aan te dryf … wel, as u een LED het, is dit 'n bietjie dom, maar dit is 'n instruksie vir charlieplexing en dit is handig vir die volgende stap.

Stap 3: Bekendstelling van 'komplementêre Drive'

Ons stel 'komplementêre Drive' bekend
Ons stel 'komplementêre Drive' bekend

'N Ander naam wat meer akkuraat is om' charlieplexing 'te beskryf, is' komplementêre dryf '.

In u gemiddelde mikrobeheerder kan u in die firmware vir die mikro sê om 'n uitsetpen op 'n '0' of '1' te stel, of om 'n 0V -spanning by die uitgang of 'n 5V -spanning by die uitgang aan te bied. Die onderstaande diagram toon nou die ingeboude LED met 'n omgekeerde maat …. of 'n komplement LED, vandaar komplementêre aandrywing. In die eerste helfte van die diagram gee die mikro 5V na pin A en 0V na pin B. Die stroom sal dus van A na B. vloei. Omdat LED2 agteruit na LED1 gerig is, vloei daar geen stroom deur nie en dit sal nie gloei. Dit is wat omgekeerd bevooroordeeld genoem word. Ons het die ekwivalent van die situasie op die vorige bladsy. Ons kan LED2 basies ignoreer. Pyle wys die huidige vloei. 'N LED is in wese 'n diode (vandaar Light Emitting Diode). 'N Diode is 'n toestel waarmee stroom in die een rigting kan vloei, maar nie in die ander rigting nie. Die skema van 'n LED wys dit, die stroom vloei in die rigting van die pyltjie, maar word andersom geblokkeer. As ons die mikro opdrag gee om nou 5V na pin B en 0V op pin A uit te voer, het ons die teenoorgestelde. Nou is LED1 omgekeerd bevooroordeeld, LED2 is vorentoe bevooroordeeld en laat stroom vloei. LED2 sal gloei en LED1 sal donker wees. Dit is miskien 'n goeie idee om na die skemas van die verskillende projekte in die inleiding te kyk. U behoort baie van hierdie komplementêre pare in 'n matriks te sien. Natuurlik ry ons in die onderstaande voorbeeld twee LED's met twee mikrokontrole -penne …. jy kan sê hoekom jy pla. Die volgende afdeling is waar ons by die ingewande van charlieplexing kom en hoe dit effektief gebruik maak van die uitvoerpenne van mikrobeheerders.

Stap 4: Uiteindelik … 'n Charlieplex Matrix

Uiteindelik … 'n Charlieplex Matrix
Uiteindelik … 'n Charlieplex Matrix
Uiteindelik … 'n Charlieplex Matrix
Uiteindelik … 'n Charlieplex Matrix

Soos in die inleiding genoem, is charliplexing 'n handige manier om baie LED's te bestuur met slegs 'n paar penne op 'n mikrobeheerder. Maar op die vorige bladsye het ons nie regtig penne gestoor nie, maar twee LED's met twee penne aangedryf …. groot tjop!

Wel, ons kan die idee van komplimentêre drywing uitbrei na 'n charlieplex -matriks. Die diagram hieronder toon die minimum charlieplex -matriks wat bestaan uit drie weerstande en ses LED's en slegs drie mikrobeheerspennetjies gebruik. Sien u nou hoe handig hierdie metode is? As u ses LED's op die normale manier wil dryf, het u ses mikrokontrolerspelde nodig. Met N -penne van 'n mikrobeheerder kan u moontlik N * (N - 1) LED's dryf. Vir 3 penne is dit 3 * (3-1) = 3 * 2 = 6 LED's. Dinge stapel vinnig op met meer penne. Met 6 penne kan u 6 * (6 - 1) = 6 * 5 = 30 LED's aandryf ….wow! Nou tot die charlieplexing -bietjie. Kyk na die diagram hieronder. Ons het drie komplementêre pare, een paar tussen elke kombinasie van mikro -uitsetpenne. Een paar tussen A-B, een paar tussen B-C en een paar tussen A-C. As u pin C vir nou ontkoppel het, sou ons dieselfde situasie gehad het as voorheen. Met 5V op pen A en 0V op pen B, sal LED1 gloei, LED2 is omgekeerd en nie geleidend nie. Met 5V op pen B en 0V op pin A sal LED2 gloei en LED1 is omgekeerd. Dit volg vir die ander mikropenne. As ons pen B ontkoppel en pen A op 5V en pen C op 0V stel, dan sal LED5 gloei. Omdraai sodat pen A 0V en pen C 5V is, dan sal LED6 gloei. Dieselfde geld vir die komplementêre paar tussen penne B-C. Wag, ek hoor jou sê. Kom ons kyk na die tweede geval van naderby. Ons het 5V op pen A en 0V op pen C. Ons het pen B (die middelste) ontkoppel. OK, so 'n stroom vloei deur LED5, stroom vloei nie deur LED6 nie, omdat dit omgekeerd is (en so ook LED2 en LED4) … maar daar is ook 'n pad wat die stroom kan neem van pen A, deur LED1 en LED3 is daar nie? Waarom gloei hierdie LED's ook nie. Hier is die kern van die charlieplexing -skema. Daar is inderdaad 'n stroom wat beide LED1 en LED3 vloei, maar die spanning oor albei hierdie gekombineerde is slegs gelyk aan die spanning oor LED5. Gewoonlik het hulle die helfte van die spanning oor LED5. As ons dus 1.9V oor LED5 het, dan is slegs 0.95V oor LED1 en 0.95V oor LED3. Uit die If/Vf -kromme wat aan die begin van hierdie artikel genoem word, kan ons sien dat die stroom by hierdie halfspanning baie laer is as 20mA … en die LED's sal nie sigbaar gloei nie. Dit staan bekend as huidige steel. Die meeste van die stroom sal dus vloei deur die LED wat ons wil hê, die mees direkte pad deur die minste aantal LED's (dws een LED), eerder as enige reeks kombinasies van LED's. As u na die huidige vloei kyk vir 'n kombinasie van 5V en 0V op twee dryfpenne van die charlieplex -matriks, sien u dieselfde. Slegs een LED sal op 'n slag brand. Kyk na die eerste situasie as 'n oefening. 5V op pen A en 0V op pen B, ontkoppel pen C. LED1 is die kortste roete vir die stroom, en LED 1 sal gloei. 'N Klein stroom sal ook deur LED5 gaan, dan weer 'n back -up van LED4 na pin B …. maar weer, hierdie twee LED's in serie sal nie genoeg stroom kan sifon in vergelyking met LED 1 om helder te gloei nie. So word die krag van charlieplexing besef. Sien die tweede diagram wat die skematiese weergawe van my Microdot -horlosie is …..30 LED's, met slegs 6 penne. My Minidot 2 -horlosie is basies 'n uitgebreide weergawe van die Microdot …. dieselfde 30 LED's in 'n skikking. Om 'n patroon in die skikking te maak, word elke LED wat verlig moet word kort aangeskakel, en dan gaan die mikro na die volgende. As dit geskeduleer is om te verlig, word dit weer vir 'n kort tydjie aangeskakel. Deur vinnig genoeg deur die LED's te blaai, kan 'n beginsel genaamd 'volharding van die visie' 'n verskeidenheid LED's 'n statiese patroon toelaat. Die Minidot 2 -artikel het 'n bietjie verduideliking oor hierdie beginsel. Maar wag … ek het oënskynlik 'n bietjie in die beskrywing hierbo verby gegaan. Wat is hierdie 'ontkoppel pen B', 'ontkoppel pen C' besigheid? Volgende afdeling asseblief.

Stap 5: Drie-state (nie driewiele nie)

Drie-state (nie driewiele nie)
Drie-state (nie driewiele nie)
Drie-state (nie driewiele nie)
Drie-state (nie driewiele nie)

In die vorige stap het ons genoem dat 'n mikrobeheerder geprogrammeer kan word om 'n 5V -spanning of 'n 0V -spanning uit te voer. Om die charlieplex -matriks te laat werk, kies ons twee penne in die matriks en ontkoppel enige ander penne.

Dit is natuurlik 'n bietjie moeilik om die penne met die hand te ontkoppel, veral as ons dinge baie vinnig skandeer om die visie -effek aan te hou om 'n patroon te toon. 'N Mikrokontroleerder -uitsetpenne kan egter ook geprogrammeer word om insetpenne te wees. As 'n mikropen geprogrammeer is om 'n inset te wees, gaan dit in wat 'hoë-impedensie' of 'tri-toestand' genoem word. Dit wil sê, dit bied 'n baie hoë weerstand (in die orde van megaohms, of miljoene ohm) teen die pen. As daar 'n baie hoë weerstand is (sien diagram), kan ons die pen in wese beskou as ontkoppel, en die charliplex -skema werk dus. Die tweede diagram toon die matrikspennetjies vir elke kombinasie wat moontlik is om elk van die 6 LED's in ons voorbeeld te verlig. Gewoonlik word 'n drie-staat aangedui met 'n 'X', 5V word getoon as '1' (vir logiese 1) en 0V as '0'. In die mikro -firmware vir 'n '0' of '1' programmeer u die penne as 'n uitset, en die toestand daarvan is goed gedefinieer. Vir tri-state programmeer u dit as 'n invoer, en omdat dit 'n invoer is, weet ons nie eintlik wat die toestand kan wees nie.. Vandaar die 'X' vir onbekend. Alhoewel ons 'n pen kan toewys as 'n drie-toestand of 'n invoer, hoef ons dit nie te lees nie. Ons trek net voordeel uit die feit dat 'n invoerpen op 'n mikrobeheerder hoë impedensie het.

Stap 6: 'n Paar praktiese sake

Die magie van charlieplexing is afhanklik van die feit dat die individuele spanning wat oor verskeie LED's in serie verskyn, altyd minder sal wees as die van een enkele LED as die enkele LED in parallel is met die reekskombinasie. As die spanning minder is, dan is die stroom minder, en hopelik sal die stroom in die reekskombinasie so laag wees dat die LED nie sal brand nie. Dit is egter nie altyd die geval nie. Kom ons sê dat u twee rooi LED's gehad het met 'n tipiese voorspanning van 1.9V in u matriks en 'n blou LED met 'n voorspanning van 3.5V (sê LED1 = rooi, LED3 = rooi, LED5 = blou in ons 6 LED -voorbeeld). As u die blou LED aangesteek het, het u 3,5/2 = 1,75V vir elk van die rooi LED's. Dit kan baie naby aan die dowwe bedieningsarea van die LED wees. U sal moontlik vind dat die rooi LED's effens skyn as die blou verlig word. Dit is dus 'n goeie idee om seker te maak dat die voorspanning van verskillende LED's in u matriks ongeveer dieselfde is by die werkstroom, of anders dieselfde kleur gebruik LED's in 'n matriks. In my Microdot/Minidot -projekte hoef ek nie hieroor bekommerd te wees nie; ek het blou/groen SMD -LED's met 'n hoë doeltreffendheid gebruik, wat gelukkig dieselfde voorspanning het as die rooi/geel. As ek egter dieselfde met 5 mm LED's implementeer, sou die resultaat meer problematies wees. In hierdie geval sou ek 'n blou/groen charlieplex -matriks en 'n rooi/geel matix afsonderlik geïmplementeer het. Ek sou meer spelde nodig gehad het … As u 'n groot matriks het en dit vinnig soek, dan is elke LED slegs 'n kort tyd aan. Dit sal relatief dof lyk in vergelyking met 'n statiese skerm. U kan bedrieg deur die stroom deur die LED te verhoog deur die stroombeperkende weerstande te verminder, maar slegs tot 'n punt. As u te lank te veel stroom uit die mikro trek, beskadig u die uitvoerpenne. As u 'n matriks wat stadig beweeg, sê 'n status- of siklon -skerm, kan u die stroom op 'n veilige vlak hou, maar steeds 'n helder LED -skerm hê, omdat elke LED langer aan is, moontlik staties (in die geval van 'n Sommige voordele van charlieplexing:- gebruik slegs 'n paar penne op 'n mikrobeheerder om baie LED's te beheer- verminder komponenttelling, aangesien u nie baie bestuurderskyfies/weerstande ens nodig het nie. beide spanningstoestand en ingangs-/uitgangstoestand van die penne- moet versigtig wees met die vermenging van verskillende kleure- PCB-uitleg is moeilik, want die LED-matriks is meer kompleks.

Stap 7: Verwysings

Daar is baie verwysings oor charlieplexing op die internet. Benewens die skakels aan die voorkant van die artikel, is daar ook 'n paar: Die oorspronklike artikel van Maxim, dit het baie te sê oor die bestuur van 7 segmentvertonings, wat ook moontlik is. https://www.maxim-ic.com/appnotes.cfm/appnote_number/1880A wiki-inskrywing

Aanbeveel: