코코아팹은 누구나 창의적 아이디어를 현실로 만들어 낼 수 있도록
만들고, 공유하고, 배울 수 있는 터전이
되고자 합니다.
아이디와 비밀번호를 잊으셨나요?아이디 / 비밀번호 찾기
코코아팹 회원이 아니신가요? 회원가입
2014-07-30 04:43:20
NO | 부품명 | 수량 |
1 | 아두이노 우노 R3 | 1 |
2 | 브레드 보드 | 1 |
3 | 5mm RGB LED | 1 |
4 | Soft Potentiometer | 1 |
5 | 330Ω 저항 | 3 |
6 | 10KΩ 저항 | 1 |
7 | 점퍼 케이블 | 9 |
부품명 | 아두이노 우노 R3 | 브레드 보드 | RGB LED | soft potentiometer | 330Ω 저항 |
파트 | x1 | x1 | x1 | x1 | x3 |
부품명 | 10KΩ 저항 | 점퍼 케이블 |
파트 | x1 | x9 |
/* Soft Potentiometer를 사용해서 RGB 색 바꾸기 This sketch was written by SparkFun Electronics, with lots of help from the Arduino community. */ const int RED_LED_PIN = 11; //RED_LED와 연결된 핀 번호를 저장하는 변수 선언 const int GREEN_LED_PIN = 10; //Green_LED와 연결된 핀 번호를 저장하는 변수 선언 const int BLUE_LED_PIN = 9; //Blue_LED와 연결된 핀 번호를 저장하는 변수 선언 const int SENSOR_PIN = 0; //Soft Potentiometer와 연결된 핀 번호 저장하는 변수 선언 int redValue, greenValue, blueValue; //각 LED로 전달할 출력값(밝기)를 저장하는 변수 선언 void setup() { //아날로그 출력 핀도 자동 설정되기 때문에 핀모드를 설정할 필요 없습니다.
Serial.begin(9600); //밝기 값을 찍어보기 위해서 시리얼 포트를 초기화 } void loop() { int sensorValue; //읽어온 아날로그 값을 저장 할 변수를 선언 sensorValue = analogRead(0); //0번 핀을 통해 아날로그 값을 읽어와서 변수에 저장
setRGB(sensorValue); //위 변수 값과 함께 색깔 바꾸는 함수 호출
//아날로그 입력 값, 밝기 값을 출력
Serial.print("sensorValue : "); Serial.print(sensorValue); Serial.print(" red : "); Serial.print(redValue); Serial.print(" green : "); Serial.print(greenValue); Serial.print(" blue : "); Serial.println(blueValue);
delay(1000); //1초 일시정지 } /*
RGB 색 바꾸는 함수
매개변수 : RGBposition(=읽어온 아날로그 값)
*/ void setRGB(int RGBposition) { //빨강 밝기 계산
redValue = constrain(map(RGBposition, 0, 341, 255, 0), 0, 255)
+ constrain(map(RGBposition, 682, 1023, 0, 255), 0, 255);
//초록 밝기 계산 greenValue = constrain(map(RGBposition, 0, 341, 0, 255), 0, 255) - constrain(map(RGBposition, 341, 682, 0,255), 0, 255);
//파랑 밝기 계산 blueValue = constrain(map(RGBposition, 341, 682, 0, 255), 0, 255) - constrain(map(RGBposition, 682, 1023, 0, 255), 0, 255); analogWrite(RED_LED_PIN, redValue); //빨강 LED, redValue만큼 밝혀짐 analogWrite(GREEN_LED_PIN, greenValue); //초록 LED, greenValue만큼 밝혀짐 analogWrite(BLUE_LED_PIN, blueValue); //파랑 LED, blueValue만틈 밝혀짐 }
void setup()
{
//아날로그 출력 핀도 자동 설정되기 때문에 핀모드를 설정할 필요 없습니다.
Serial.begin(9600); //밝기 값을 찍어보기 위해서 시리얼 포트를 초기화
}
/*
RGB 색 바꾸는 함수
매개변수 : RGBposition(=읽어온 아날로그 값)
*/ void setRGB(int RGBposition) { //빨강 밝기 계산
redValue = constrain(map(RGBposition, 0, 341, 255, 0), 0, 255)
+ constrain(map(RGBposition, 682, 1023, 0, 255), 0, 255);
//초록 밝기 계산 greenValue = constrain(map(RGBposition, 0, 341, 0, 255), 0, 255) - constrain(map(RGBposition, 341, 682, 0,255), 0, 255);
//파랑 밝기 계산 blueValue = constrain(map(RGBposition, 341, 682, 0, 255), 0, 255) - constrain(map(RGBposition, 682, 1023, 0, 255), 0, 255); analogWrite(RED_LED_PIN, redValue); //빨강 LED, redValue만큼 밝혀짐 analogWrite(GREEN_LED_PIN, greenValue); //초록 LED, greenValue만큼 밝혀짐 analogWrite(BLUE_LED_PIN, blueValue); //파랑 LED, blueValue만틈 밝혀짐 }
kocoafabeditor
항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!