〔パート2〕 〔パート3〕 〔Arduinoの動かせ方入門に戻る〕
---------------------------------------------------------------------
void setup() {
pinMode( 9,OUTPUT) ; // 赤LED接続のピン(9番)をデジタル出力に設定
pinMode(10,OUTPUT) ; // 青LED接続のピン(10番)をデジタル出力に設定
pinMode(11,OUTPUT) ; // 緑LED接続のピン(11番)をデジタル出力に設定
digitalWrite( 9,LOW) ;
digitalWrite(10,LOW) ;
digitalWrite(11,LOW) ;
}
void loop() {
digitalWrite( 9,HIGH) ; // 赤LEDを点灯
digitalWrite(10,LOW) ;
delay(300) ;
digitalWrite(11,HIGH) ; // 緑LEDを点灯
digitalWrite( 9,LOW) ;
delay(300) ;
digitalWrite(10,HIGH) ; // 青LEDを点灯
digitalWrite(11,LOW) ;
delay(300) ;
}
---------------------------------------------------------------------
CIDEツールバーの赤枠部分「Upload」ボタンをクリックしてコンパイルとarduinoボードに書込みを行います。
---------------------------------------------------------------------
void setup() {
}
void loop() {
int H ;
int R , G , B ;
/* HSVのH値を0-360で回します */
for (H=0 ; H<=360 ; H++) {
/* HSVのH値を各LEDのアナログ出力値(0-255)に変換する処理 */
if (H <= 120) {
/* H値(0-120) 赤-黄-緑 */
R = map(H,0,120,255,0) ; // 赤LED R←→G
G = map(H,0,120,0,255) ; // 緑LED G←→R
B = 0 ;
} else if (H <= 240) {
/* H値(120-240) 緑-水色-青 */
G = map(H,120,240,255,0) ; // 緑LED G←→B
B = map(H,120,240,0,255) ; // 青LED B←→G
R = 0 ;
} else {
/* H値(240-360) 青-紫-赤 */
B = map(H,240,360,255,0) ; // 青LED B←→R
R = map(H,240,360,0,255) ; // 青LED R←→B
G= 0 ;
}
/* RGBLEDに出力する処理 */
analogWrite(9,R) ; // 9番ピンから赤LEDの出力
analogWrite(11,G) ; // 11番ピンから緑LEDの出力
analogWrite(10,B) ; // 10番ピンから青LEDの出力
delay(100) ;
}
}
---------------------------------------------------------------------
FIDEツールバーの「Upload」ボタンをクリックしてコンパイルとarduinoボードに書込みを行います。
これが通常のHSV色空間モデル図です。
赤(0°)は緑方向(120°)に向かう毎に赤を少しずつ減らしています、追記(*1) 2012/06/18
【きむ茶工房ガレージハウス】
Copyright (C) 2006-2020 Shigehiro Kimura All Rights Reserved.