Bram zei:
Ik heb dus 4 layers van 16 leds, het idee is om elke layer een gedeelde anode te geven en elke kolom een gedeelde cathode (dan heb ik 20 pins nodig, maar ik gebruik 74hc595 shift registers). Hoe ik dit juist moet schakelen is mij nog een beetje een raadsel: 16 pins van de shift registers zullen naar 16 220 ohm weerstanden gaan die naar de cathodes gaan (tot zo ver zit ik goed, als ik me niet vergis).
Dan is het idee dat ik de 4 (gedeelde) anodes elk apart naar ground kan schakelen. Ik veronderstel dat ik hiervoor 4 transistors nodig heb?
Je kan inderdaad de 16 cathodes, naar een shift register schakelen. Dan moet je wel opletten dat dat register de stromen kunnen sinken.
In jouw geval is de maximale stroom 4x 20mA = 80 mA. (in de prakijk zal er wrs steeds maar 1 anode hoog zijn, waardoor er steeds maximaal 20 mA loopt?)
Zoek dus even op of je register dit kan trekken...
Als je vervolgens je anode's naar ground schakelt, gaan je LED's niet branden...
Als je je anode's op 5 V zet, dan gaan de LEDs branden waarvan de PINs van het shiftregister laag zijn (0V)... In dat geval kan er dus stroom door de LEDs lopen aangezien ze voorwaarts gepolariseerd zijn...
Nu, stel dat je één vd 4 anodes hoog zet, en alle 16 ledjes op die layer moeten branden, dan loopt er een stroom van 16x20 = 320 mA door de anode.
Hoe schakel je die anode's aan en uit? Ik veronderstel ook met je Arduino?
In dat geval moet je 4 transistors gebruiken, aangezien je Arduino Pins geen 320 mA kunnen leveren.
Je verbindt dan (bij NPN) de collector met 5V, de basis met een PIN en de emittor met de anode van je layer...
Alleszins, ik zou het omgekeerd doen

16 anodes verbinden met shift register, en de 4 cathodes (via transistor) naar Arduino
