PWM: RGB LED

Overview

This is a sample app which drives a RGB LED using PWM.

There are three single-color component LEDs in an RGB LED. Each component LED is driven by a PWM port where the pulse width is changed from zero to a fusion flicker threshold (the minimum flicker rate where the LED is perceived as being steady), causing each component LED to step from dark to max brightness. Three for loops (one for each component LED) generate a gradual range of color changes from the RGB LED, and the sample repeats forever.

Wiring

Hexiwear K64

No special board setup is necessary because there is an on-board RGB LED connected to the K64 PWM.

Arduino 101

You will need to connect the LED pins to PWM0, PWM1 and PWM2 on Arduino 101 via the shield. Depending on what kind of RGB LED you are using, please connect the common cathode to the ground or the common anode to Vcc. You need current limiting resistor for each of the single color LEDs.

Building and Running

This samples does not output anything to the console. It can be built and flashed to a board as follows:

Using west:

west build -b hexiwear_k64 samples/basic/rgb_led
west flash

Using CMake and ninja:

cmake -B build -GNinja -DBOARD=hexiwear_k64 samples/basic/rgb_led
ninja -C build
ninja -C build flash