Example Code for Arduino-Control RGB LED Color
Last revision 2025/12/18
The article presents a comprehensive guide on controlling RGB LED colors with Arduino, featuring hardware and software preparation, wiring instructions, and sample code to display conventional and random colors.
Hardware Preparation
- DFRduino UNO R3 (SKU: DFR0216) × 1
- Gravity: IO Expansion Shield for Arduino V7.1 (SKU: DFR0216) × 1
- Gravity: I2C RGB LED Button Module (SKU: DFR0991) × 1
- Gravity-4P I2C/UART Sensor Cable(DFR0991 is equipped with one of these lines) × 1
- USB Cable × 1
Software Preparation
- Download Arduino IDE: Click to download Arduino IDE
- Download and install the DFRobot_RGBButton-main Library
- For Arduino IDE V1.8.19 (or earlier), install the library manually: How to Add a Library ?
- For Arduino IDE V2.0.0 (or later), directly search for the "DFRobot_RGBButton-main Library" in the Library Manager and install it.
Wiring Diagram
Set I2C address and then connect the button module to the I2C interface of the UNO mainboard.

Sample Code
RGB button module shows regular colors, then random RGB colors
#include <DFRobot_RGBButton.h>
DFRobot_RGBButton RGBButton(&Wire, /*I2CAddr*/ 0x2A);
void setup(void)
{ Serial.begin(115200);
while( ! RGBButton.begin() ){
Serial.println("Communication with device failed, please check connection!");
delay(3000);
}
Serial.println("Begin ok!\n");
RGBButton.setRGBColor(RGBButton.eRed); // display conventional colors
delay(1000);
RGBButton.setRGBColor(RGBButton.eOrange);
delay(1000);
RGBButton.setRGBColor(RGBButton.eYellow);
delay(1000);
RGBButton.setRGBColor(RGBButton.eGreen);
delay(1000);
RGBButton.setRGBColor(RGBButton.eCyan);
delay(1000);
RGBButton.setRGBColor(RGBButton.eBlue);
delay(1000);
RGBButton.setRGBColor(RGBButton.ePurple);
delay(1000);
RGBButton.setRGBColor(RGBButton.eWhite);
delay(1000);
RGBButton.setRGBColor(RGBButton.eBlack);
delay(1000);
}
uint8_t rValue, gValue, bValue;
void loop()
{ rValue = random(0,255); // random display colors
gValue = random(0,255);
bValue = random(0,255);
RGBButton.setRGBColor(/*r=*/rValue, /*g=*/gValue, /*b=*/bValue);
delay(1000);
}
Result
After uploading the codes, RGB LED will change color at one-second intervals, displaying 9 conventional colors first and then displaying random colors.
Was this article helpful?
