[아두이노 강의] #4 아두이노 3색 LED(RGB 모듈), 버튼 실습하기 :: 잡다한 프로그래밍
반응형

1. 아두이노 3색 LED 실습

3색 LED(RGB LED 모듈)는 다음과 같이 R, G, B, 그라운드 총 4가지 핀으로 이루어져 있다.

이러한 모듈을 다음과 같이 아두이노에 연결한다

LED 연결

연결하였다면 다음과 같이 코드를 작성한다. 다음 코드는 R > G > B순서로 0.5초의 딜레이를 가지고 반복적으로 색이 변하는 코드이다. 기존 LED와 다르게 저항을 사용하지 않아도 된다.

int led1 = 8;
int led2 = 9;
int led3 = 10;
void setup()
{
	pinMode(led1, OUTPUT);
	pinMode(led2, OUTPUT);
	pinMode(led3, OUTPUT);
}
void loop()
{
	digitalWrite(led1, HIGH);
	digitalWrite(led2, LOW);
	digitalWrite(led3, LOW);
	delay(500);

	digitalWrite(led1, LOW);
	digitalWrite(led2, HIGH);
	digitalWrite(led3, LOW);
	delay(500);

	digitalWrite(led1, LOW);
	digitalWrite(led2, LOW);
	digitalWrite(led3, HIGH);
	delay(500);
}

2. 버튼 사용하여 LED 제어하기

버튼은 아래 그림과 같이 평상시에는 전류가 흐르지 않다가 사용자가 버튼을 눌렀을 시 전류가 흐르게 만든다.

버튼 구성

이러한 버튼을 사용하여 다음과 같은 회로를 구성한다

버튼, LED 회로도

회로 구성을 완료하였다면 다음과 같은 코드를 작성한다. 버튼에 연결된 핀 12, 13번에 전류가 흐른다면 LED를 ON 하는 코드이다. 이때 12, 13핀에 전류가 흐르는지 확인하기 위해 digitalRead함수를 사용했다. digitalWrite가 디지털 방식으로 전류를 ON/OFF 했다면 digitalRead는 전류가 들어오는지 여부를 확인할 때 사용한다

int led1 = 7;
int led2 = 6;
int key1 = 13;
int key2 = 12;
void setup()
{
	pinMode(led1, OUTPUT);
	pinMode(led2, OUTPUT);
	pinMode(key1, INPUT);
	pinMode(key2, INPUT);
}
void loop()
{
	if( digitalRead(key1) == HIGH )
		digitalWrite(led1, HIGH);
	else
		digitalWrite(led1, LOW);
	if( digitalRead(key2) == HIGH )
		digitalWrite(led2, HIGH);
	else
		digitalWrite(led2, LOW);
	delay(100);
}
반응형

+ Recent posts