Stap 2: werken
Dot matrix eenheden komen meestal in een 5 x 7 of 8 x 8 matrix van LEDs. De LEDs zijn aangesloten dematrix zodanig dat de anode of kathode van elke LED gebruikelijk in elke rij is. Met andere woorden, in een
gemeenschappelijke anode LED dot matrix eenheid, elke rij van LEDs zou al hun anoden in die rij bedraad
samen. De kathoden van de LEDs zou alle geschakeld worden samen in elke kolom. De reden hiervoor zal
snel duidelijk geworden.
Een typische één kleur 8 x 8 dot matrix eenheid zal hebben 16 pins, 8 voor elke rij en 8 voor elke kolom.
De rijen en kolommen alle samen aangesloten zijn komt om te minimaliseren van het aantal pins vereist.
Als dit niet het geval was, een enkele kleur 8 x 8 dot matrix eenheid zou moeten 65 pinnen, één voor elke LED en een
gemeenschappelijke anode of kathode connector. Door de bedrading van de rijen en kolommen samen, zijn slechts 16 pins
Vereist.
Echter is dit nu een probleem als u wilt dat een bepaalde LED aan het licht in een bepaalde positie. Indien voor
in het volgende voorbeeld, je had een gemeenschappelijke eenheid van de anode en wilde de LED licht op X, Y positie 5, 3 (5e kolom,
3de rij), dan zou je een stroom van toepassing op de 3e rij en de 5e kolom pin op de grond.
De LED in de 5e kolom en de 3e toer zou nu licht.
Nu laten we veronderstellen dat u wilt ook de LED licht op kolom 3, rij 6. Zodat u een stroom aan toepassen
de 6e rij en grond de 3e kolom pin. De LED op kolom 3, rij 6 nu verlicht. Maar wacht... het
LEDs in kolom 3, rij 6 en kolom 5, rij 6 hebben ook verlicht.
Dit is omdat u macht solliciteert naar rij 3 en 6 en aarding kolommen 3 en 5. U kunt niet
zwenking vandoor de ongewenste LEDs zonder de degene die je wilt op uitschakelen. Het lijkt erop dat er geen
manier waarop je kunt gewoon de twee licht vereist LEDs met de rijen en kolommen wired samen zoals ze zijn. De
enige manier die dit zou werken zou zijn om een aparte pinout voor elke LED, wat betekent dat het aantal pinnen
van 16 zou tot 65 springen. Een 65-pins dot matrix-eenheid zou zeer moeilijk te kabellengte tot en controle omdat
u zou moeten een microcontroller met ten minste 64 digitale uitgangen.
Is er een manier om rond dit probleem? Ja er is, en het heet multiplexing (of muxing).
Multiplexing is de techniek van één rij van de weergave inschakelen op een moment. Door de kolom te selecteren
die bevat de rij met de LED die u wilt branden, en dan draaien de macht daartoe
rij aan (of andersom voor gemeenschappelijke kathode displays), de gekozen LEDs in die rij zal
verlichten. Die rij vervolgens uitstaat en de volgende rij is ingeschakeld, opnieuw met de juiste
kolommen gekozen en de LED's in de tweede rij zal nu verlichten. Herhaal met elke rij tot u om te krijgt
de bodem en start opnieuw bij de top.
Als dit snel genoeg (bij meer dan 100Hz of 100 keer per seconde) dan het verschijnsel van gebeurt
persistentie van de visie (waar blijft een nabeeld op het netvlies voor ongeveer 1/25 seconde) betekent
dat de display wordt weergegeven als stabiel, hoewel elke rij in- en uitschakelen is ingeschakeld in de juiste volgorde.
Door deze techniek te gebruiken, krijg je rond het probleem van het tonen van afzonderlijke LEDs zonder de
andere LEDs in dezelfde kolom of rij ook worden verlicht.
Door het scannen in de rijen en het verlichten van de respectieve LEDs in elke kolom van die rij en
Hierdoor zeer snel (meer dan 100Hz) het menselijk oog de afbeelding als stationaire en het imago van zien zal
het hart zullen herkenbaar in het LED-patroon.
U gebruikt deze multiplexing techniek in de code van het Project. Dat is hoe je om weer te geven de
hart animatie ook zonder vreemde LEDs.