//// blinking and changing intensity
int r = 9;
int g = 11;
int b = 10;
void setup() {
// put your setup code here, to run once:
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
pinMode(11, OUTPUT);
}
void rgb(int R, int G,int B){
analogWrite(r,R);
analogWrite(g,G);
analogWrite(b,B);
}
void hsl2rgb(int h,int s,int l) {
float RGB[3];
float H = h%360,
S = s*0.01,
L = l*0.01;
float c = (1.0 - abs(2*L-1.0))*S;
float H_ = H/60;
float a = H_ - (int)(H_/2) * 2 - 1;
float x = c * (1 - abs(a));
float m = L - c/2;
if(H_>=5){
RGB[0] = (c+m)*255;
RGB[1] = m * 255;
RGB[2] = (x+m)*255;
}else if(H_>=4){
RGB[0] = (x+m)*255;
RGB[1] = m * 255;
RGB[2] = (c+m)*255;
}else if(H_>=3){
RGB[0] = m * 255;
RGB[1] = (x+m)*255;
RGB[2] = (c+m)*255;
}else if(H_>=2){
RGB[0] = m * 255;
RGB[1] = (c+m)*255;
RGB[2] = (x+m)*255;
}else if(H_>=1){
RGB[0] = (x+m)*255;
RGB[1] = (c+m)*255;
RGB[2] = m * 255;
}else if(H_>=0){
RGB[0] = (c+m)*255;
RGB[1] = (x+m)*255;
RGB[2] = m * 255;
}
rgb(RGB[0],RGB[1],RGB[2]);
}
void loop() {
// put your main code here, to run repeatedly:
int arr[] {60,100,50};
hsl2rgb(arr[0],arr[1],arr[2]);
}
// int red_pin = 9;
// int green_pin = 11;
// int blue_pin = 10;
// enum {
// RED, // 0
// YELLOW, // 1
// GREEN, // 2
// CYAN, // 3
// BLUE, // 4
// MAGENTA, // 5
// WHITE //6
// };
// void setup() {
// pinMode(red_pin, OUTPUT);
// pinMode(green_pin, OUTPUT);
// pinMode(blue_pin, OUTPUT);
// }
// void loop() {
// // red(); // 0
// // delay(1000);
// // yellow(); // 1
// // delay(1000);
// // green(); // 2
// // delay(1000);
// // cyan(); // 3
// // delay(1000);
// // blue(); // 4
// // delay(1000);
// // magenta(); // 5
// // delay(1000);
// // white(); // 6
// // delay(1000);
// // for(int i=0; i<=6; i++) {
// // color(i);
// // delay(1000);
// // }
// rgb(9, 31, 146);
// }
// // homework
// void hsl2rgb() {
// }
// void color(int color_code) {
// switch(color_code) {
// case RED:
// red();
// break;
// case YELLOW:
// yellow();
// break;
// case GREEN:
// green();
// break;
// case CYAN:
// cyan();
// break;
// case BLUE:
// blue();
// break;
// case MAGENTA:
// magenta();
// break;
// case WHITE:
// white();
// break;
// }
// }
// void rgb(int red_value, int green_value, int blue_value) {
// analogWrite(red_pin, red_value);
// analogWrite(green_pin, green_value);
// analogWrite(blue_pin, blue_value);
// }
// void red() {
// // analogWrite(red_pin, 255);
// // analogWrite(green_pin, 0);
// // analogWrite(blue_pin, 0);
// rgb(255, 0, 0);
// }
// void yellow() {
// // analogWrite(red_pin, 255);
// // analogWrite(green_pin, 255);
// // analogWrite(blue_pin, 0);
// rgb(255, 255, 0);
// }
// void green() {
// // analogWrite(red_pin, 0);
// // analogWrite(green_pin, 255);
// // analogWrite(blue_pin, 0);
// rgb(0, 255, 0);
// }
// void cyan() {
// // analogWrite(red_pin, 0);
// // analogWrite(green_pin, 255);
// // analogWrite(blue_pin, 255);
// rgb(0, 255, 255);
// }
// void blue() {
// // analogWrite(red_pin, 0);
// // analogWrite(green_pin, 0);
// // analogWrite(blue_pin, 255);
// rgb(0, 0, 255);
// }
// void magenta() {
// // analogWrite(red_pin, 255);
// // analogWrite(green_pin, 0);
// // analogWrite(blue_pin, 255);
// rgb(255, 0, 255);
// }
// void white() {
// // analogWrite(red_pin, 255);
// // analogWrite(green_pin, 255);
// // analogWrite(blue_pin, 255);
// rgb(255, 255, 255);
// }