64 pixel RGB LED-skärm - en Arduino klon (1 / 12 steg)
Steg 1: Pulse bredd modulering för att blanda färger
Pulse bredd modulering i huvudsak vänder kraften matas till en elektrisk anordning och iväg ganska snabbt. Användbara power resultaten från matematiska genomsnittet av funktionen kvadratiska våg tagit över intervallet för en period. Ju längre funktionen stannar i läge ON, ju mer effekt du får. PWM har samma effekt på ljusstyrka lysdioder som en dimmer på AC lampor.
Uppgiften vidare är individuellt styra ljusstyrkan på 64 RGB LEDS (= 192 enda lysdioder!) i ett billigt och enkelt sätt, så man kan få hela spektrumet av färger. Helst bör man inget flimmer eller andra störande effekter. Icke-linjära föreställningen av ljusstyrka ut av det mänskliga ögat tas inte i beaktande här (t.ex. skillnaden mellan 10% och 20% ljusstyrka verkar "större" än mellan 90 och 100%).
Bild (1) illustrerar den arbetande principen av PWM algoritmen. Säga koden ges värdet 7 på LED(0,0) styrka. Vidare vet den att det finns högst N steg i ljusstyrka. Koden körs N öglor för alla möjliga nivåer av ljusstyrka och alla nödvändiga loopar till varje enskild LED i alla rader. I fallet loop räknaren x i ljusstyrka slingan är mindre än 7, lampan slås på. Om den är större än 7, är LED avstängd. Gör det här mycket snabbt för alla lysdioder, ljusstyrka och bas färger (RGB), kan varje LED individuellt anpassas Visa önskad färg.
Mätningar med ett oscilloskop har visar att displayen uppdatera koden tar ca 50% CPU-tid. Resten kan användas för att göra seriell kommunikation med en dator, läsa knappar, prata med en RFID-läsare, sända jag2C data till andra moduler...