Tā kā esam apguvuši, kā pieslēgt LED diodes kontrolierim un darbināt tās ar pogu, pamēģināsim vadīt RGB gaismas elementu, ļaujot tam attēlot dažādas krāsas.
Lai vadītu RGB gaismas elementu, jāizmanto digitāla signāla modulācija (PWM).
PWM darbība ir kā slēdža pārslēgšana ļoti daudz reižu ļoti īsā laikā, simulējot high-low-high-low signālu.

Iestatot pietiekami augstu frekvenci, panākam nepārtrauktu RGB LED spīdēšanu.
Lai kontrolētu gaismas toni, RGB LED elementam ir trīs kājas, kas apzīmētas ar R, G un B. Tās jāpieslēdz trīs mikrokontroliera GPIO kontaktiem, piemēram, 25, 26 un 27.
Ceturtā kāja Common PIN (Cathode) jāpieslēdz mikrokontroliera GND kontaktam.
Nepieciešams importēt Pin un PWM funkcijas, lai definētu visus vajadzīgos elementus.
from machine import Pin, PWM
import time
Jādefinē krāsu kontakti, kas izmanto PWM ar vienādu frekvenci
red = PWM(Pin(25), freq=1000)
green = PWM(Pin(26), freq=1000)
blue = PWM(Pin(27), freq=1000)
Lai darbinātu LED diodi, jākonvertē RGB vērtības (0-255) uz tādām, ko saprot mikrokontrolieris (0-65535). Duty vērtība nosaka, cik ilgi spīdēs diode vienā high ciklā jeb cik spoži tā paspēs iespīdēties līdz brīdim, kad tā atkal nodzisīs. Tā kā PWM signāla modulācijas notiek ļoti ātri, spuldzītes mirgošana ir gandrīz neredzama, tā šķietami spīd ar vienādu spilgtumu.
red.duty_u16(int(r * 65535 / 255))
green.duty_u16(int(g * 65535 / 255))
blue.duty_u16(int(b * 65535 / 255))
Vieglāk ietērpt PWM kodu funkcijā, kas vienlaikus iestata vērtības RGB diodei.
def set_color(r, g, b):
red.duty_u16(int(r * 65535 / 255))
green.duty_u16(int(g * 65535 / 255))
blue.duty_u16(int(b * 65535 / 255))
Izmēģini RGB LED diodi ar dažādām krāsām
YELLOW = (255, 255, 0)
RED = (255, 0, 0)
WHITE = (255, 255, 255)
# Pievieno 3 savas krāsas
Pievieno slēdžus (slide switch), kas ļauj pārslēgt katras krāsas kontaktu starp minimālo 0 un maksimālo 255 vērtību.