반응형
1. 아두이노 3색 LED 실습
3색 LED(RGB LED 모듈)는 다음과 같이 R, G, B, 그라운드 총 4가지 핀으로 이루어져 있다.
이러한 모듈을 다음과 같이 아두이노에 연결한다
연결하였다면 다음과 같이 코드를 작성한다. 다음 코드는 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 제어하기
버튼은 아래 그림과 같이 평상시에는 전류가 흐르지 않다가 사용자가 버튼을 눌렀을 시 전류가 흐르게 만든다.
이러한 버튼을 사용하여 다음과 같은 회로를 구성한다
회로 구성을 완료하였다면 다음과 같은 코드를 작성한다. 버튼에 연결된 핀 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);
}
반응형
'프로그래밍 > 임베디드SW' 카테고리의 다른 글
[아두이노 강의] #6 아두이노 Analog Input & Output 강의 (아날로그 인풋 & 아웃풋) 가변저항, LED 실습 (0) | 2019.12.23 |
---|---|
[아두이노 강의] #5 아두이노 Analog Output 강의 (아날로그 아웃풋) (0) | 2019.12.20 |
[아두이노 강의] #3 아두이노 LED 실습 / Digital Output 실습 (0) | 2019.12.12 |
[아두이노 강의] #2 아두이노 시리얼(RS232) 통신 예제 및 학습 (0) | 2019.12.09 |
[아두이노 강의] #1 아두이노란? 스케치 설치 및 개발환경 구성 (0) | 2019.12.06 |