Stap 1: Puls breedte modulatie voor het mengen van kleuren
Puls breedte modulatie draait in wezen de kracht, gevoed met een elektrisch apparaat op en af vrij snel. De bruikbare macht resultaten uit de wiskundige gemiddelde van de functie van de blokgolf overgenomen van het interval van één periode. Hoe langer de functie blijft in de ON-positie, hoe meer macht je krijgt. PWM heeft hetzelfde effect op de helderheid van de LED's als een dimmer op AC lichten.
De taak vooruit is het individueel bepalen de helderheid van 64 RGB LEDS (= 192 één LEDs!) in een goedkope en eenvoudige manier, dus men het hele spectrum van kleuren krijgen kan. Bij voorkeur moeten er geen flikkeringen of andere storende effecten. De niet-lineaire perceptie van helderheid tentoongesteld door het menselijk oog niet hier rekening zal worden gehouden (bijvoorbeeld het verschil tussen 10% en 20% helderheid lijkt "groter" dan tussen 90 en 100%).
Beeld (1) illustreert het werkingsprincipe van de PWM-algoritme. Zeggen dat de code een waarde van 7 is gegeven voor de helderheid van de LED(0,0). Bovendien weet het dat er is een maximum van N stappen in helderheid. De code wordt uitgevoerd op N loops voor alle mogelijke niveaus van helderheid en alle nodige lussen om elke één LED in alle rijen. In geval de lus teller x in de lus van de helderheid is kleiner dan 7, de LED is ingeschakeld. Als het groter dan 7 is, wordt de LED is uitgeschakeld. Dit zeer snel te doen voor alle LEDs, helderheid en basis kleuren (RGB), kan elke LED individueel worden aangepast om aan te tonen van de gewenste kleur.
Meten met een oscilloscoop hebben laten zien dat de weergave vernieuwen code ongeveer duurt 50% CPU-tijd. De rest kan worden gebruikt voor het doen van seriële communicatie met een PC, lees knoppen, praten met een RFID-lezer, ik2C gegevens verzenden naar andere modules...