디지털 입력
디지털 입력
디지털 입력은 두 가지의 상태 중 하나를 읽을 수 있는 입력 방식이다. 이 문서에서는 버튼을 이용해 LED를 제어하는 내용을 살펴본다.
결선도

샘플 코드
int LED = 12;
int SWITCH = 2;
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(SWITCH, INPUT);
}
void loop()
{
int input = digitalRead(SWITCH);
Serial.println(input);
digitalWrite(LED, input);
}
컴파일
Ctrl+R
또는 스케치 메뉴의 확인/컴파일
을 눌러 컴파일을 진행한다.
업로드
Ctrl+U
또는 스케치 메뉴의 업로드
를 눌러 업로드를 진행한다.
실행 결과
스위치를 누르면 LED 스위치에 불이 들어오는 것을 확인할 수 있다. 또한 시리얼 모니터를 열면 상태가 0 또는 1로 표시되는 것을 볼 수 있다.
코드 설명
int LED = 12;
LED라는 이름으로 LED 출력핀 번호인 12를 저장한다.
int SWITCH = 2;
SWITCH라는 이름으로 스위치 출력핀 번호인 2번을 저장한다.
void setup()
{
Serial.begin(9600);
pinMode(LED, OUTPUT);
pinMode(SWITCH, INPUT);
}
setup
함수에서는 시리얼 전송속도를 9600bit로 설정하고, 두 개의 핀의 입출력 설정을 수행한다. LED(12번핀)은 출력, SWITCH(2번핀)은 입력으로 설정한다.
void loop()
{
int input = digitalRead(SWITCH);
Serial.println(input);
digitalWrite(LED, input);
}
digitalRead
함수를 이용하여 SWITCH(2번핀)의 값을 입력받는다. 스위치가 눌려있을 경우 1(HIGH), 스위치가 눌려있지 않을 경우 0(LOW)가 input으로 들어온다.
Serial.println
함수를 이용하여 input에 들어온 값을 확인한다. 시리얼 모니터에 값이 출력되는 것을 확인할 수 있다.
digitalWrite
함수를 이용하여 LED(12번핀)에 input에 들어있는 값을 출력한다. 스위치가 눌려있을 경우 input은 1(HIGH)이므로 LED의 불이 켜지고, 스위치가 눌려있지 않을 경우 input은 0(LOW)이 되어 LED의 불이 꺼진다.
Last updated