> For the complete documentation index, see [llms.txt](https://docs.sysout.co.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sysout.co.kr/base-language/arduino/arduino-control/digital-output.md).

# 디지털 출력

## 디지털 출력

이 문서에서는 `digitalWrite` 함수를 이용한 디지털 출력에 대해서 살펴본다.

### 디지털 신호

디지털 신호는 HIGH(1)와 LOW(0) 두 가지 값을 가진다.\
이 두 가지 값을 출력하여 LED를 끄고 켜는 등의 상태변화를 줄 수 있다.

### 샘플 코드(Blink)

```cpp
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}
```

### 컴파일

`Ctrl+R` 또는 스케치 메뉴의 `확인/컴파일`을 눌러 컴파일을 진행한다.

### 업로드

`Ctrl+U` 또는 스케치 메뉴의 `업로드`를 눌러 업로드를 진행한다.

### 실행 결과

아두이노 보드에 내장된 LED가 1초 주기로 깜빡이는 것을 확인할 수 있다.

### 코드 설명

```cpp
pinMode(LED_BUILTIN, OUTPUT);
```

#### pinMode 함수

[공식 문서 보기](https://www.arduino.cc/reference/en/language/functions/digital-io/pinmode/)\
pinMode 함수는 특정 핀에 대한 입출력 설정을 수행한다.

#### LED\_BUILTIN

`LED_BUILTIN`은 보드상의 LED에 연결된 핀으로 대부분의 보드는 디지털 핀 13번에 연결되어 있다.\
즉, 다음 두 코드는 같다.

```cpp
pinMode(LED_BUILTIN, OUTPUT);
pinMode(13, OUTPUT);
```

#### OUTPUT

`OUTPUT`은 출력을 의미하는 값이며, `pinMode` 함수와 같이 사용하여 핀의 상태를 설정한다.\
`INPUT`으로 설정할 경우 핀의 상태가 입력으로 설정된다.

#### digitalWrite 함수

`digitalWrite` 함수는 `OUTPUT` 설정한 디지털 핀에 `HIGH` 또는 `LOW` 값을 출력하는 함수이다.

```cpp
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED_BUILTIN, LOW);
```

`HIGH`를 출력할 경우 불이 켜지며, `LOW`를 출력할 경우 불이 꺼진다.\
LED가 아닌 다른 도구의 경우도 각각에 맞게 두 가지 상태 중 하나가 실행된다.
