void setup() {
}
void loop() {
int Hue ;
int R =9, G = 11 , B =10 ;
int Red, Green, Blue ;
/* HSVのH値を0-360で回します */
for (Hue=0 ; Hue<=360 ; Hue++) {
/* HSVのH値を各LEDのアナログ出力値(0-255)に変換する処理 */
if (Hue <= 120) {
/* H値(0-120) 赤-黄-緑 */
Red = map(Hue,0,120,255,0) ; // 赤LED R←→G
Green = map(Hue,0,120,0,255) ; // 緑LED G←→R
Blue = map (Hue, 0,120,0,0) ;
} else if (Hue <= 240) {
/* H値(120-240) 緑-水色-青 */
Green = map(Hue,120,240,255,0) ; // 緑LED G←→B
Blue = map(Hue,120,240,0,255) ; // 青LED B←→G
Red = 0 ;
} else {
/* H値(240-360) 青-紫-赤 */
Blue = map(Hue,240,360,255,0) ; // 青LED B←→R
Red = map(Hue,240,360,0,255) ; // 青LED R←→B
Green = 0 ;
}
/* RGBLEDに出力する処理 */
analogWrite(R,Red) ; // 9番ピンから赤LEDの出力
analogWrite(G,Green) ; // 11番ピンから緑LEDの出力
analogWrite(B,Blue) ; // 10番ピンから青LEDの出力
delay(100) ;
}
}