Stap 1: Multiplexing Basics
De LED's zijn ingedeeld in een rechthoek. De anoden samen in één richting worden gesoldeerd en de kathoden zijn gesoldeerd samen loodrecht op de anoden. Wanneer alle kathoden hoog zijn en anoden laag een negatieve spanning wordt toegepast op elke LED, en als de spanning is laag genoeg (Zie 'LEDs kiezen' in de sectie onderdelen), het zal niet de verdeling. Om te schakelen op een bijzondere LED, draai de kathode lijn laag en de anode lijn hoog. Om te schakelen LED (4,2) in het diagram, zou u bijvoorbeeld segB op hoog en Dig4 ingesteld op laag.
De setup wordt POV (Persistence of Vision) gebruikt om het tekenen van een afbeelding op de array. Elke LED moet tekenen van de afbeelding is ingeschakeld een tegelijk, en een lus heel snel, geven de illusie die alle LEDs op op hetzelfde moment (zie programmeren sectie).
In dit project, ik gebruikte de Arduino Mega 2560, en 16 uitgangen aan kathoden en 16 tot anoden toegewezen. Ik gebruikte de output van hoge spanning (5V) als de krachtbron. Dit werd gedaan om redenen van eenvoud in een eerste project. Echter, als je kunt, moet u vermijden gebruikend een digitaal signaal als een krachtbron. Er zijn een paar redenen hiervoor. Digitale uitgangen zijn signalen, en zijn niet ontworpen om veel stroom. U kunt schendt de per-lijn of de totale huidige limiet van uw microcontroller (40mA per regel levering/sink voor de Atmega) als je schakeling veel macht trekt. Ook zijn de digitale uitgangen in de Arduino en vrijwel elke bestuur direct aangesloten op de microcontroller zonder een zekering. Dit maakt de microcontroller kwetsbaar voor fouten in de bedrading. Een eenvoudige kortsluiting, bijvoorbeeld, kan mogelijk maken de pinnen of de microcontroller nutteloos. Echter is de belangrijkste zekering die totale huidige grenzen trekken dit belet.
De ideale oplossing is het gebruik van de digitale uitgangen een transistor bij elke regel voor bijlagen uitschakelen en gebruiken van een externe voeding te rijden van het circuit. Dit verhoogt de bedrading complexiteit, en natuurlijk je hiervoor een externe voeding nodig. Als u dit als praktijk bouwt voordat u complexere projecten zoals een kubus maakt, overwegen kunt u de transistor route gaan. Als u dit als een klein project doet, uw LED-array niet te groot zijn, of u op tijd / kosten, dan beperkt bent kun je overslaan met behulp van transistoren.
Als u een externe voeding gebruikt, kunt u ook overwegen met behulp van shift registers en de functie shift_out om het aantal van uw output pinnen te verhogen. Dit verhoogt de bedrading en programmering van complexiteit, hoewel het bijna onmogelijk voor de bouw van de projecten waarvoor u de controle van grote aantallen LEDs, zoals een kubus, zonder dat het is.