記事一覧

フルカラーLEDと秋月アナログジョイスティックDIP化キットをArduinoにつげてみた

Connection Full Color LED and Analog Joystick to Arduino



RoboTakaoです。ようこそ「極力ローコスト ロボット製作 ブログ」にお越しくださいました。
Hello everyone! I’m RoboTakao. Welcome to my robot blog.

今回は先日紹介した秋月電子通商のアナログジョイスティックDIP化キットと前回紹介したフルカラーLEDをつなげてみたいと思います。

In this case, I try to connect an analog joystick and an full color LED.

FullColorLED06.jpg

以前記事 previous articles
ジョイスティック Joystick
フルカラーLED full color LED

結線図 Connection

FullColorLED05.png

動作結果 Results

ジィスティックを動かすと、その通りにLEDの色が変わります。
また、明るさもジョイスティックの傾き度合いでコントロールできました。

I can control LED’s color and brightness by joystick.



Arduinoのスケッチ Sketch of Arduino

int joy_x = 0;
int joy_y = 1;
long val0,val1,val2;
int angle;

void setup() {
Serial.begin(9600);
}

void loop() {
val0 = analogRead(joy_x)-512;
val1 = -(analogRead(joy_y)-512);

angle = -(atan2(val1,val0)/3.142*180);
if (angle <= 0){
angle = 360 + angle;
}

val2 = sqrt(val0*val0 + val1*val1);

Serial.print("H:");
Serial.print(angle);
Serial.print(" V:");
Serial.println(val2);

FullColorLED(angle, val2);

delay(50);
}

void FullColorLED(int H,int br){
int R , G , B ;
int V;

V = map(br,0,724,0,255);

/* HSVのH値を各LEDのアナログ出力値(0-V)に変換する処理 */
if (H <= 120) {
/* H値(0-120) 赤-黄-緑 */
R = map(H,0,120,V,0) ; // 赤LED R←→G
G = map(H,0,120,0,V) ; // 緑LED G←→R
B = 0 ;
} else if (H <= 240) {
/* H値(120-240) 緑-水色-青 */
G = map(H,120,240,V,0) ; // 緑LED G←→B
B = map(H,120,240,0,V) ; // 青LED B←→G
R = 0 ;
} else {
/* H値(240-360) 青-紫-赤 */
B = map(H,240,360,V,0) ; // 青LED B←→R
R = map(H,240,360,0,V) ; // 赤LED R←→B
G= 0 ;
}
/* RGBLEDに出力する処理 */
analogWrite(9,R) ; //  9番ピンから赤LEDの出力
analogWrite(11,G) ; // 11番ピンから緑LEDの出力
analogWrite(10,B) ; // 10番ピンから青LEDの出力

}


それでは今回はこのへんで失礼します。
Good bye!

スポンサードリンク

コメント

コメントの投稿

非公開コメント

プロフィール

RoboTakao

Author:RoboTakao
みなさんご訪問ありがとうございます。ロボット作りたいけどお小遣いそんなにないし、簡単でローコストでロボットを作るための私のプロジェクトを紹介します。

ウェブサイトもありますのでそちらもよろしくお願いします。
http://robotakao.jp/

スポンサーリンク