Fre, Nov 4, 2011
Led matricer er sjove legetøj. Hvem ville ikke elske blinkenlights? Elektronikker hårdt. Elektronik er meget sværere end programmering. Jeg havde svært vedforsøger at forstå, hvordan led matricer arbejde. Hvad er den bedste måde atlære noget? Byg en selv.
struktur af Led-matricen
i et matriceformat er LED ‘ er arrangeret i rækker og kolonner. Du kan også tænke på dem som Y-og K-koordinater. Lad os antage, at vi har 4H4 matrice.Rækker vil blive markeret fra A til D og kolonner fra 1 til 4. Nu kan viadresse hver ledet af række og kolonne. Øverste venstre led ville være (a, 1). Bund ned led ville være (D, 4).
Led matricer kommer i to varianter. Common-række anode (venstre) og common-rækkekatode (højre).
figuren ovenfor viser de forskellige konfigurationer. Forskellen mellemdisse to konfigurationer er, hvordan du tændte en led. Med fælles række anodecurrent kilder (positiv spænding) er fastgjort til rækker A..D andcurrents dræn (negativ spænding, jord) til kolonner 1..4. Medfælles række katode nuværende dræn er fastgjort til rækker A..D og currentssources til kolonner 1..4.
for eksempel. For at tænde bunden ned led (D, 4) af fælles katodematrice, du vil tilføre positiv spænding til kolonne 4 og forbinde række D til jorden. Forsake of clarity jeg vil bruge almindelig række katode i eksempler til resten af denne artikel.
opbygning af en LED-Matrice
for at opbygge en 4H4 katodematrice med fælles række skal du bruge 16 LED ‘ er, firemodstande, nogle overskrifter og prototypekort. Jeg startede med at lime theleds til prototyping bord med epoksilim. På denne måde er det lettere at haveLEDs smukt justeret. Ved limning af LED ‘ erne skal du sørge for lang og kortbenene er justeret på samme måde.
når limen er tør, er det tid til at bøje og lodde. Først bøje alle cathodesto venstre så tæt på prototyping bord som muligt. Lod alle katoderi hver række sammen. Når katoder er klar, bøj alle anoder. Anodermå ikke røre ved katoder. Jeg brugte et stykke plastrør til at hjælpe med at bøje anoderne til at danne en bro over katoder.
nu lodde sammen alle anoder i hver række. Lodde overskrifterne ogTilslut katoderækker direkte til overskriften.
Anode rækker er forbundet til overskrift med nuværende begrænsende modstande.Modstandens værdi afhænger af den anvendte LED. Kontroller LED-dataarketfor spænding og strøm fremad. LEDcalculator hjælper dig med at finde ud afkorrekt modstand. Matricen er nu klar til test.
adressering af enkelt LED
tilslutning af jord til række A og positiv spænding til kolonne 1 lyser den øverste højre LED (a,1).
tilslutning af jord til række D og positiv spænding til kolonne 4 lysernederst ned LED (D,4).
Intuition ville sige at tænde både (A,1) og (D,4) på samme tider bare at forbinde alle de fire ledninger. Dette er ikke tilfældet. Der erfire lysdioder, der er tændt. Dette skyldes, at strømmen også strømmer gennem (a, 4) og (D,1).
multipleksering og persistens af syn
multipleksering kan bruges til at vise vilkårlige mønstre med ledmatricer. Multipleksering kaldes undertiden også scanning. Det scanner rækker (normalt fra op til ned) og lyser kun led ‘ er i en række ad gangen. Noget som at følge:
- Start med at have alt afbrudt.
- Tilslut positiv spænding alle de nødvendige kolonner.
- Forbind række til jord. Dette lyser de nødvendige lysdioder i rækken.
- Afbryd rækken og alle kolonner.
- gør de samme trin en efter en til alle rækker og start derefter frabegyndelsen.
gør dette langsomt, og du vil se Blinkende LED-rækker. Gør det virkelig hurtigtog menneskelige øje kan se hele mønsteret. Fænomen kaldesvisionens vedholdenhed.
Tegn et mønster
lad os skrive en simpel kode til tegning af et mønster på matricen. Bemærk!Selvom jeg bruger Arduino board, bruger jeg ikke Arduino libraries norIDE til udvikling. Jeg kan dog godt lide Arduino pin nummereringsordningen.Funktioner pin_mode()
og digital_write()
fungerer nøjagtigt på samme måde som deres Arduino-ækvivalenter.
vi starter med at oprette stifterne 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 at vise et mønster på matricen bruger vi draw()
funktion.Bitmap er bestået som todimensional array. Forsinkelse bruges kun tildemonstrere vedholdenhed af syn.
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 at undersøge persistensen af synseffekten tegner vi mønsteret medforskellige 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;}
fuld kode kan findes fragithub.Tjek output fra videoen nedenfor.
mere læsning
kredsløb færdigheder: LED Matrice af make magasin. At køre en LED med eller uden modstand. Introduktion til kørsel LED matricer (PDF) technote af Avago Technologies. Lysemitterende dioder (LED ‘ er) af Electronics Club.
udgivet i
AVR elektronik