Stap 2: Circuit ontwerp 1: LED multiplexing
Ik wilde 12 dual color LEDs, waardoor controle 24 digitale lijnen. Individueel het aanpakken van deze is niet mogelijk met de Arduino, omdat het heeft slechts 14 digitale lijnen. Vanwege dit is het noodzakelijk multiplexing. Dit is een techniek waarbij de LEDs zijn bekabeld in een rechthoekig raster en ze kunnen in principe worden aangepakt met de 2 coördinaten op de grid. Voor meer informatie over hoe multiplexing werken, check out deze instructables:
amandaghassaei: met Arduino en de 74HC595 Multiplexing
perez1028: met Arduino - Transistors Multiplexing
Voor het raster kies ik 3 x 8 (zie schema's op de afbeelding), dat wil in plaats van 24, slechts 3 + 8 = 11 zeggen pins nodig zijn om te bepalen van alle de LEDs, dus dit zou moeten zonder een probleem werken.
Ik heb ook huidige beperkende weerstanden toegevoegd aan het einde van elke kolom. Dit is voldoende, omdat slechts één rij tegelijk zal zo actief zijn, te allen tijde slechts één LED zal oplichten van elke kolom. Omdat de groene en rode LEDs verschillende spanningen (zie informatieblad moeten) te bereiken van de 20 mA huidige, deze weerstanden zijn ook iets anders voor de rode en groene kolommen: 62 Ω voor de groene en 68 Ω voor de rode.
Één meer ding te overwegen is de huidige zinken en sourcing mogelijkheden van de ATmega (Arduino). Er is geen enkel probleem op de C1... 8 pins, omdat deze moeten wastafel maximaal 20 mA stroom, en dit zou moeten zonder zorgen werken. De selectie van de rijen echter pinnen moeten zitten kundig voor maximaal 8 × 20 mA source = 160 mA, die ruim boven de 20 mA limiet. Om deze reden, ik heb toegevoegd sommige P-MOSFETs tussen de pennen en de LED's om op te treden als een schakelaar. Wanneer de poort van de MOSFET laag wordt getrokken, het activeert de schakelaar en huidige kan doorstromen naar de LEDs. Een zeer mooie uitleg over het gebruik van MOSFETs als een schakelaar kan hier worden gevonden.