フルカラーLEDと秋月アナログジョイスティックDIP化キットをArduinoにつげてみた
- 2018/05/12
- 22:12
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.

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

動作結果 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!
スポンサードリンク