20. 수시로 색깔이 변하는 LED
Step 0.개요:
3색 LED등을 초음파센서로 제어해보겠습니다. 초음파 센서가 감지하여 LED등이 10가지 색으로 거리에 따라 10가지 임의의 색으로 빛을 냅니다.
Step 1.
부품은 다음과 같이 준비합니다.3색 LED, 초음파 센서, 아두이노
초음파센서(HC-SR04) |
3색 LED(HJX) |
Step2.
회로도는 다음과 같습니다.
Step 3.
핀 연결은 다음과 같습니다.Step 4.
코드는 다음과 같습니다.참고로 코딩작업은 온라인 프로그램 codebenser로 작업을 하였습니다. 아두이노로 코딩하면 해당 라이브러리를 정확하게 삽입하고 코딩해야됩니다.#define TRIG 2
#define ECHO 3
#define COLOR_COUNT 10
#define GAP 10
#define RED 11
#define GREEN 10
#define BLUE 9
int color[COLOR_COUNT][3]=
{
{255,0,0}, //red
{255,255,0},//yellow
{128,255,0}, //Light green(연두))
{0,255,0}, // green
{0,255,128}, // 연두?
{0,255,255}, //Aqua
{0,128,255}, // blue?
{0,0,255}, // blue?
{127,0,255}, // purple(보라))
{255,0,255} //Magenta
};
void setup()
{
pinMode(TRIG,OUTPUT); //Pin 2 is OUTPUT
pinMode(ECHO,INPUT); // Pin 3 is INPUT
}
void loop()
{
digitalWrite(TRIG,LOW) ;
delayMicroseconds(2);
digitalWrite(TRIG,HIGH);
delayMicroseconds(5);
digitalWrite(TRIG,LOW);
long distance = pulseIn(ECHO,HIGH,5800)/58;
if(0<distance && distance<=COLOR_COUNT*GAP){
for(int i=0;i<COLOR_COUNT;i++)
if(i*GAP<distance && distance<=(i+1)*GAP){
analogWrite(RED,color[i][0]);
analogWrite(GREEN,color[i][1]);
analogWrite(BLUE,color[i][2]);
break;
}
}
else{
analogWrite(RED,0);
analogWrite(GREEN,0);
analogWrite(BLUE,0);
}
}
Step 5.
시현 동영상은 다음과 같습니다.
라벨: 수시로 색깔이 변하는 LED
0개의 덧글:
댓글 쓰기
에 가입 댓글 [Atom]
<< 홈