PCB Christmas tree (2 / 10 steg)
Steg 2: Circuit design 1: LED multiplexing
Jag ville ha 12 dubbel färg lysdioder, vilket innebär kontroll 24 digitala linjer. Individuellt ta itu med detta är inte möjligt med Arduino, eftersom det endast har 14 digitala linjer. Detta innebär är multiplexing nödvändigt. Detta är en teknik där lysdioderna är trådbunden upp i ett rektangulärt stödraster, och de kan åtgärdas i princip med 2 koordinaterna på nätet. Mer information om hur multiplexing fungerar, kontrollera ut dessa instructables:
amandaghassaei: Multiplexing med Arduino och 74HC595
perez1028: Multiplexing med Arduino - transistorer
För rutnätet jag välja 3 x 8 (se schema på bilden), vilket innebär istället för 24, endast 3 + 8 = 11 stift behövs för att kontrollera alla lampor, så detta bör fungera utan problem.
Jag lade också till strömbegränsande motstånd i slutet av varje kolumn. Detta är tillräckligt, eftersom endast en rad i taget kommer att vara aktiv, så när som helst bara en LED tänds från varje kolumn. Eftersom de gröna och röda lysdioderna behöver olika spänningar (se datablad) att nå 20 mA nuvarande, dessa motstånd är också något annorlunda för de röda och gröna kolumnerna: 62 Ω för gröna och 68 Ω för röda.
En sak att tänka på är den nuvarande sjunka och sourcing funktionerna i ATmega (Arduino). Det är inga problem på C1... 8 stift, eftersom dessa måste diskbänk max 20 mA för nuvarande, och detta bör fungera utan bekymmer. Stiften välja raderna dock bör kunna källa upp till 8 × 20 mA = 160 mA, vilket är långt över 20 mA gräns. Av denna anledning lagt jag några P-MOSFETs mellan stiften och lysdioderna att fungera som en switch. När utfärda utegångsförbud för av MOSFET dras låg, den aktiverar växeln och ström kan flöda till lysdioderna. En mycket fin förklaring på hur man använder MOSFETs som en switch kan hittas här.