#define Pin_red 4
#define Pin_green 2
#define Pin_blue 15
// 共陰極、共陽極設定
#define hardwareConfig 1 //COMMON_ANODE=1 COMMON_CATHODE=0
// 條件編譯
#if hardwareConfig==0
// 共陰極
void Colorset(unsigned char redVal, unsigned char greenVal, unsigned char blueVal, int ms){
analogWrite(Pin_red, redVal);
analogWrite(Pin_green, greenVal);
analogWrite(Pin_blue, blueVal);
delay(ms);
}
#else
// 共陽極(請思考共陽極與共陰極最暗~最亮數值轉換方式)
void Colorset(unsigned char redVal, unsigned char greenVal, unsigned char blueVal, int ms){
redVal=255-redVal;
greenVal=255-greenVal;
blueVal=255-blueVal;
analogWrite(Pin_red,redVal);
analogWrite(Pin_green,greenVal);
analogWrite(Pin_blue,blueVal);
delay(ms);
}
#endif
void setup() {
pinMode(Pin_red, OUTPUT);
pinMode(Pin_green, OUTPUT);
pinMode(Pin_blue, OUTPUT);
}
void loop() {
// 呼吸燈
// Colorset(255,255,255,10);
// for(int i=0;i<256;i++){
// analogWrite(Pin_red, 255-i);
// delay(10);
// }
// for(int i=0;i<256;i++){
// analogWrite(Pin_green, 255-i);
// }
// for(int i=0;i<256;i++){
// analogWrite(Pin_red, i);
// }
// for(int i=0;i<256;i++){
// analogWrite(Pin_blue, 255-i);
// }
// for(int i=0;i<256;i++){
// analogWrite(Pin_green, i);
// }
// for(int i=0;i<256;i++){
// analogWrite(Pin_blue, i);
// }
// Colorset(0xff,0x00,0x00,1000);
// Colorset(0xff,0x66,0x00,1000);
// Colorset(0xff,0xff,0x00,1000);
// Colorset(0x00,0x80,0x00,1000);
// Colorset(0x00,0xff,0xff,1000);
// Colorset(0x00,0x00,0xff,1000);
Colorset(0x80,0x00,0x00,1000);
}