2017년 3월 18일 토요일

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.

시현 동영상은 다음과 같습니다.















라벨:

0개의 덧글:

댓글 쓰기

에 가입 댓글 [Atom]

<< 홈