디지털 입력

디지털 입력

디지털 입력은 두 가지의 상태 중 하나를 읽을 수 있는 입력 방식이다. 이 문서에서는 버튼을 이용해 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