// B Rushan Perera
// 17.05.2023
// Raspberry Pi Pico RGB Test
// Version 1.00
//-------------------------------
#define Red 13
#define Green 14
#define Blue 15
byte Dim_delay = 50;
void setup() {
pinMode(Red, OUTPUT);
pinMode(Green, OUTPUT);
pinMode(Blue, OUTPUT);
analogWriteResolution(8);
}
void loop() {
Drive_RGB(1,255,0,0); // Red
delay(1000);
Drive_RGB(1,0,255,0); // Green
delay(1000);
Drive_RGB(1,0,0,255); // Blue
delay(1000);
Drive_RGB(1,255,255,0); // Yellow
delay(1000);
Drive_RGB(1,150,0,150); // Purple
delay(1000);
Drive_RGB(1,0,255,255); // Aqua
delay(1000);
Drive_RGB(1,255,20,147); // DeepPink
delay(1000);
Drive_RGB(1,0,255,127); // Spring Green
delay(1000);
Drive_RGB(1,255,69,0); // Orange Red
delay(1000);
Drive_RGB(1,0,191,255); // Deep Sky Blue
delay(1000);
Drive_RGB(1,255,165,0); // Orange
delay(1000);
Drive_RGB(1,123,104,238); // MediumSlateBlue
delay(1000);
Drive_RGB(1,255,0,255); // Magenta
delay(1000);
Drive_RGB(1,0, 250, 154); // Medium Spring Green
delay(1000);
Drive_RGB(1,255,255,255); // White
delay(1000);
Off(1);
delay(1000);
for(int i=0; i<=255; i++){
Drive_RGB(1,i,0,0); // Red
delay(Dim_delay);
}
Off(1);
delay(1000);
for(int i=0; i<=255; i++){
Drive_RGB(1,0,i,0); // Green
delay(Dim_delay);
}
Off(1);
delay(1000);
for(int i=0; i<=255; i++){
Drive_RGB(1,0,0,i); // Blue
delay(Dim_delay);
}
Off(1);
delay(1000);
//-----------------------------------------------
for(int i=255; i>0; i--){
Drive_RGB(1,i,0,0); // Red
delay(Dim_delay);
}
Off(1);
delay(1000);
for(int i=255; i>0; i--){
Drive_RGB(1,0,i,0); // Green
delay(Dim_delay);
}
Off(1);
delay(1000);
for(int i=255; i>0; i--){
Drive_RGB(1,0,0,i); // Blue
delay(Dim_delay);
}
Off(1);
delay(1000);
//-----------------------------------------------
for(int i=0; i<=255; i++){
Drive_RGB(1,i,0,0); // Red
delay(Dim_delay/2);
}
for(int i=255; i>0; i--){
Drive_RGB(1,i,0,0); // Red
delay(Dim_delay/2);
}
Off(1);
delay(1000);
//--------------------------------
for(int i=0; i<=255; i++){
Drive_RGB(1,0,i,0); // Green
delay(Dim_delay/2);
}
for(int i=255; i>0; i--){
Drive_RGB(1,0,i,0); // Green
delay(Dim_delay/2);
}
Off(1);
delay(1000);
//--------------------------------
for(int i=0; i<=255; i++){
Drive_RGB(1,0,0,i); // Blue
delay(Dim_delay/2);
}
for(int i=255; i>0; i--){
Drive_RGB(1,0,0,i); // Blue
delay(Dim_delay/2);
}
Off(1);
delay(1000);
}
//-------------------------------------------------- Both CC and CA RGB LEDs
void Drive_RGB(bool ca,byte red,byte green,byte blue){
if (ca == 1){
analogWrite(Red, 255 - red);
analogWrite(Green,255 - green);
analogWrite(Blue, 255 - blue);
}
else{
analogWrite(Red,red);
analogWrite(Green,green);
analogWrite(Blue,blue);
}
}
//-------------------------------------------------- RGB LED Off
void Off(bool ca){
Drive_RGB(ca,0,0,0);
}