Fre, 4 November 2011
Led matriser er morsomme leker. Hvem ville ikke elske blinkenlights? Elektronikkerer vanskelig. Elektronikk er mye vanskeligere enn programmering. Jeg hadde vanskelig tidprøver å forstå hvordan led matriser arbeid. Hva er den beste måten ålære noe? Bygg en selv.
Struktur Av Led Matrix
I en matrise format Led er ordnet i rader og kolonner. Du kan ogsåtenk på dem som y og x koordinater. La oss anta at vi har 4×4 matrise.Rader vil bli merket Fra A Til D og kolonner fra 1 til 4. Nå kan viadresse HVER LEDET av rad og kolonne. Øverst til venstre led ville være (A, 1). Bottomdown led ville være (D, 4).
Led matriser kommer i to varianter. Common-row anode (venstre) og common-rowcathode (høyre).
Figuren over viser de forskjellige konfigurasjonene. Forskjellen mellom disse to konfigurasjonene er hvordan du tente en led. Med vanlig rad anodestrømkilder (positiv spenning) er festet til rader A..D ogstrømmer synker (negativ spenning, jord) til kolonner 1..4. Medcommon-rad katode strøm synker er festet til rader A..D og strømkilder til kolonner 1..4.
For eksempel. For å lyse bunnen ned led (D,4) av vanlig katodematrise youwould mate positiv spenning til kolonne 4 og koble rad D til jord. Forsake of clarity jeg vil bruke common-row katode i eksempler for restof denne artikkelen.
Bygge EN LED-Matrise
for å bygge en 4×4 vanlig rad katode matrise trenger du 16 Lysdioder, firemotstander, noen overskrifter og prototyping bord. Jeg startet med liming theleds til prototyping bord med epoxy lim. På denne måten er det lettere å haveleder vakkert justert. Når du limer lysdiodene, må du sørge for lang og kortbena er justert på samme måte.
når limet er tørt er det på tide å bøye og loddetinn. Først bøy alle katoderå forlate så nær prototyping bord som mulig. Løs alle katoderi hver rad sammen. Når katoder er klare, bøy alle anoder. Anodermå ikke berøre katoder. Jeg brukte stykke plastrør for å hjelpe bendingthe anoder for å danne en bro over katoder.
nå lodd sammen alle anoder i hver rad. Løs hodene ogkoble katoderadene direkte til toppteksten.
Anoderader er koblet til topptekst med nåværende begrensningsmotstander.Verdien av motstanden avhenger AV LYSDIODEN som brukes. Kontroller LED-databladet for fremover spenning og strøm. LEDcalculator hjelper deg med å finne utriktig motstand. Matrix er nå klar for testing.
Adressering Av Enkelt LED
Tilkobling av jord til rad A og positiv spenning til kolonne 1 lyser LED-LAMPEN øverst til høyre (a,1).
Koble bakken til rad D og positiv spenning til kolonne 4 vil lysebunnen ned LED (D, 4).
Intuisjon vil si belysning både (A,1) og (D,4) samtidig kobler bare alle de fire ledningene. Dette er ikke tilfelle. Det er fire Lysdioder som lyser. Dette skyldes at strømmen også strømmer gjennom (A, 4) og (D, 1).
Multipleksing Og Utholdenhet Av Visjon
Multipleksing kan brukes til å vise vilkårlige mønstre med ledmatrices. Multiplexing kalles noen ganger også skanning. Den skanner rader (vanligvis fra opp til ned) og lys trengte lysdioder bare i en rad vedtid. Noe som følger:
- Begynn med å ha alt frakoblet.
- Koble positiv spenning alle nødvendige kolonner.
- Koble rad til bakken. Dette lyser de nødvendige lysdiodene på rad.
- Koble fra raden og alle kolonnene.
- Gjør de samme trinnene en etter en til alle rader og start deretter frabegynnelsen.
Gjør dette sakte, og du vil se blinkende led-rader. Gjør det veldig fortog menneskelig øye kan se hele mønsteret. Fenomenet kallesutholdenhet av visjon.
Tegn Et Mønster
la oss skrive en enkel kode for å tegne et mønster på matrisen. Merk!Selv om Jeg bruker Arduino board, bruker Jeg ikke Arduino libraries norIDE for å utvikle. Jeg liker Imidlertid Arduino pin nummerering ordningen.Funksjoner pin_mode()
og digital_write()
fungerer akkurat på samme måte som Deres Arduino-ekvivalenter.
vi starter med å sette opp pinnene og standardtilstanden for dem.
uint8_t column_pins = { 2, 3, 4, 5 };uint8_t row_pins = { 11, 10, 9, 8 };static void init(void) { /* Turn all columns off by setting then low. */ for (uint8_t x=0; x<4; x++) { pin_mode(column_pins, OUTPUT); digital_write(column_pins, LOW); } /* Turn all rows off by setting then high. */ for (uint8_t y=0; y<4; y++) { pin_mode(row_pins, OUTPUT); digital_write(row_pins, HIGH); }}
for å vise et mønster på matrisen bruker vi draw()
funksjon.Bitmap er bestått som todimensjonal array. Forsinkelse brukes kun tildemonstrere persistens av visjon.
uint8_t pattern = {{1,0,0,1}, {0,1,0,0}, {0,0,1,0}, {1,0,0,1}};void draw(uint8_t buffer, uint8_t delay) { for (uint8_t row=0; row<4; ++row) { /* Connect or disconnect columns as needed. */ for (uint8_t column=0; column<4; ++column) { digital_write(column_pins, buffer); } /* Turn on whole row. */ digital_write(row_pins, LOW); _delay_ms(delay); /* Turn off whole row. */ digital_write(row_pins, HIGH); }}
for å undersøke persistens av visjonseffekt tegner vi mønsteret medforskjellige forsinkelser.
uint8_t main(void) { init(); /* With 100ms delay eye can see updating row by row. */ for (uint8_t i=0; i<10; i++) { draw(pattern, 100); } /* With 10ms delay pattern appears but flickers. */ for (uint16_t i=0; i<100; i++) { draw(pattern, 10); } /* Withoud delay solid pattern appears. */ while (1) { draw(pattern, 1); } return 0;}
Full kode kan bli funnet fragithub.Sjekk utgangen fra videoen nedenfor.
More Reading
Circuit Ferdigheter: LED Matrix Av Make Magazine. Kjører EN LED MED Eller Uten Motstand Av Alexander Weber. Introduksjon TIL Kjøring LED Matriser (PDF) technote av Avago Technologies. Lysdioder (Led) Av Electronics Club.
Postet i
Avr Electronics