// https://wokwi.com/projects/422957716593624065
// https://forum.arduino.cc/t/randomize-rgb-led-colors/1354125
# include "RGBLed.h"
# define LED0 12, 11, 10
# define LED1 9, 8, 7
# define LED2 6, 5, 4
# define LED3 A0, 2, 3
# define LED4 A3, A2, A1
# define button1 A6
# define button2 A7
int myColor[][3] = {
// OFF
{0, 0, 0},
// RED
{255, 0, 0},
// GREEN
{0, 255, 0},
// BLUE
{0, 0, 255},
// CYAN
{0, 255, 255},
// MAGENTA
{255, 0, 255},
// YELLOW
{255, 255, 0},
// WHITE
{255, 255, 255},
};
const byte nColors = sizeof myColor / sizeof *myColor;
enum byName {Black, Red, Green, Blue, Cyan, Magenta, Yellow, White};
char *colorTags[] = {"off", "red", "green", "blue", "cyan", "magenta", "yellow", "white"};
RGBLed myRGBLedArray[] = {
{LED0, RGBLed::COMMON_CATHODE},
{LED1, RGBLed::COMMON_CATHODE},
{LED2, RGBLed::COMMON_CATHODE},
{LED3, RGBLed::COMMON_CATHODE},
{LED4, RGBLed::COMMON_CATHODE},
};
const byte nLEDs = sizeof myRGBLedArray / sizeof *myRGBLedArray;
void setup() {
Serial.begin(115200);
Serial.println("\nWake Up!\n");
pinMode(button1, INPUT);
pinMode(button2, INPUT);
}
void loop() {
int theLED = random(nLEDs);
int theColor = random(nColors);
Serial.print("Turn LED");
Serial.print(theLED);
Serial.print(" ");
Serial.println(colorTags[theColor]);
myRGBLedArray[theLED].setColor(myColor[theColor]);
delay(1000 + random(500));
}
void loop0() {
myRGBLedArray[0].setColor(myColor[White]);
myRGBLedArray[1].setColor(myColor[Red]);
myRGBLedArray[2].setColor(myColor[Green]);
myRGBLedArray[3].setColor(myColor[Blue]);
myRGBLedArray[4].setColor(myColor[Magenta]);
}
LED0
LED1
LED2
LED3
LED4