Ik zou graag een RGB led strip maken met 16 RGB-leds via een CD74HCT4067 en uC. Hierbij zou ik volgende leds gebruiken: MFT722N-S. Nu staat er in de datasheet dat elke afzonderlijk led (rood, groen en blauw) 30mA nodig heeft terwijl de demultiplexer per channel 20mA kan leveren. Zou ik dan een driver voor de leds moeten nemen of het gewoon laten bij een voorschakelweerstand.

Op 20mA werken ze even zo goed, het verschil in intensiteit tussen 20mA en 30mA is meestal niet groot. Dat kan je btw snel even testen.

Oké bedankt dan ga ik gewoon een voorschakelweerstand gebruiken

Mijn leds zijn besteld dan kan ik kijken hoe het zit met die stroom.

Ik zou voor het aansturen 3 PWM kanalen nodig hebben. Hiervoor zou ik hardware PWM kunnen gebuiken via de PIC184431(4xPWM). Maar het kan ook software matig via een PIC16F628. Mijn vraag is nu is het via software PWM mogelijk om ook drie afzonderlijke duty-cycle's te hebben.

Wanneer je die duty-cycle voor elk kanaal afhankelijk maakt van een andere variabele gaat dat prima met een soft-PWM. Wanneer je de duty-cycle van de soft-PWM kanalen allemaal afhankelijk maakt van dezelfde variabele dan lukt dat uiteraard niet. Soft-PWM is niet zo heel moeilijk om te maken dus dat moet makkelijk lukken om 3 kanalen in een 628 te gooien, dan heb je zelfs nog voldoende ruimte over om andere dingen te doen met dat dingetje (mits je interrupts gebruikt voor je soft_pwm)

Mzzls

Ik ga software PWM gebruiken heb zonet de application note van Microchip gevonden waarin duidelijk staat beschreven hoe je drie software PWM-kanalen kan maken + voorbeelden.AN1074

Dat kan zeker. Ik ben niet thuis in de pic, wel in de AVR. Maar zal het effe schetsen hoe ik te werk zou gaan als het softwarematig moet en om maar 1 timer te gebruiken.

Stel:
R: 10%
G: 30%
B: 50%
1 periode duurt 255 clock ticks

Maak de 3 pinnen hoog.
Laat een 8bit timer tot 25 tellen in CTC mode. (Clear Timer on Compare Match) Bij de compare interrupt is dan 10% van 255 gepasseert.
Bij interrupt: de R-PIN clearen en zet het compare register op 50.
Bij interrupt: 30% van de eerste periode is verstreken. Clear de G-PIN en zet het compare register op 50.
Bij interrupt: 50% van de periode is verstreken en kan de B-PIN gecleared worden. Zet nu het compare register op 127.
Bij interrupt: nu is net 1 periode verstreken, maak nu alle pinnen weer hoog.

Je laat dus de tijd tot een volgende interrupt variëren ifv de duty-cycles. Je krijgt 4 interrupts per periode, terwijl kan je nog andere dingen doen. Om het aantal interrupts te verminderen kan je de periode verlengen. Zolang je maar boven de 100 Hz blijft.