함수설명:digitalWrite()

 

설명:

디지털 핀에 HIGH(1) 또는 LOW(0) 값을 기록합니다.
핀이 pinMode()를 사용하여 출력으로 구성된 경우, 해당 전압은 HIGH의 경우 5V(또는 3.3V 보드의 경우 3.3V), LOW의 경우 0V(접지)로 설정됩니다.
input 모드로 설정된 핀에 대하여 사용 시 pullup 저항을 활성화 하지만, 가능하면 명시적인 INPUT_PULLUP을 사용하여 설정할 것을 추천드립니다.

 

문법(syntax):

digitalWrite(pin, value)

 

매개변수(parameters):

pin: 출력모드로 설정 된 아두이노 핀 번호
value: HIGH(1) 혹은 LOW(0)

 

리턴값(returns):

없음

 

예제 코드:

이 코드는 디지털 핀 13을 OUTPUT으로 설정하고, HIGH와 LOW로 토글(toggle, 전환)합니다.

void setup() {
pinMode(13, OUTPUT); // 디지털 핀 13을 OUTPUT으로 설정
}

void loop() {
digitalWrite(13, HIGH); // 디지털 핀 13을 on으로 설정
delay(1000); // 1초 기다리기
digitalWrite(13, LOW); // 디지털 핀 13을 off로 설정
delay(1000); // 1초 기다리기
}

 

참고:

위의 예제 코드에서 //(슬래시 두개)는 주석(컴파일 시 실제 코드로 인식 하지 않겠다는 의미)이며, 다른 글에서 설명하겠지만, delay() 함수는 말 그대로 '기다리는'함수이며, 그 안에 들어가는 값은 밀리세컨드 단위입니다. 즉 1000ms=1s 입니다.
아날로그 입출력 또한 가능합니다.
아날로그 입력의 경우 A0, A1 등으로 표시된 핀에서 가능하고, 출력은 ~(틸드)표시가 붙은 디지털 핀에서 가능합니다.
또한 반대로 아날로그 출력 핀(A0, A1, etc)을 디지털 핀으로 활용도 가능합니다.
예외적으로 아두이노 나노, 프로미니, 미니의 A6과 A7 핀은 오로지 아날로그 입력 핀으로만 사용할 수 있습니다.

아두이노의 핀에 대하여

 

빨간색 화살표가 가리키는 것처럼 아두이노에 있는 구멍 하나하나를 핀(pin)이라고 합니다.


Arduino 핀은 디지털 핀아날로그 핀으로 구분되며, 입력(INPUT)이나 출력(OUTPUT)으로 구성할 수 있습니다.
이 글은 디지털 핀에 대해서 말하지만, 대부분의 아두이노(Atmega) 아날로그 핀은 디지털 핀과 정확히 같은 방식으로 구성되고 사용될 수 있습니다.

디지털 핀(혹은 아날로그 핀)의 모드는 세가지 입니다.
가장 기본적인 INPUT(입력), OUTPUT(출력)과 특수한 INPUT_PULLUP입니다.
INPUT
INPUT_PULLUP
OUTPUT


INPUT으로 구성된 핀의 속성


Arduino(Atmega) 핀은 기본적(default)으로 input mode(입력 모드)입니다. 따라서 만약 이 핀들을 입력 모드로 사용할 것이라면 pinMode() 함수를 이용하여 명시적으로 선언할 필요가 없습니다.
INPUT으로 구성된 핀은 고임피던스 상태라고 하며 이는 회로에 크게 영향을 미치지 않습니다. 그러나 매우 작은 전류만으로 INPUT 상태 (켜짐/꺼짐 or ON/OFF or HIGH/LOW or 0/1)가 변할 수 있기 때문에 pullup(풀업) 혹은 pulldown(풀다운) 회로를 구성하는 것이 좋습니다.
일반적인 INPUT 모드에서는 센서가 꺼졌을 때 0(LOW), 켜졌을 때 1(HIGH)입니다.



INPUT_PULLUP으로 구성된 핀의 속성


INPUT_PULLUP 모드의 경우 INPUT 모드에 자체적으로 PULLUP 저항을 적용하는 모드입니다. INPUT_PULLUP으로 구성된 핀에 센서를 연결할 때는 반드시 다른 쪽 끝은 접지에 연결해야 합니다.
Atmega 칩에는 기본적으로 20K(키로옴)의 풀업 저항이 내장되어있습니다.
INPUT_PULLUP 모드에서는 센서가 커졌을 때 1(HIGH), 켜졌을 때 0(LOW)입니다.


OUTPUT으로 구성된 핀의 속성


pinMode() 함수를 사용하여 OUTPUT으로 구성된 핀은 저임피던스 상태라고 합니다. 이는 다른 회로에 상당한 양의 전류를 제공할 수 있음을 의미합니다. Atmega 핀은 최대 40mA(밀리암페어)의 전류를 다른 장치/회로에 공급(양전류 제공)하거나 싱크(음전류 제공)할 수 있습니다. 이 전류는 LED를 밝게 켜거나(직렬 저항을 잊지 마십시오) 많은 센서를 작동하기에 충분한 전류이지만 대부분의 릴레이, 솔레노이드 또는 모터를 작동하기에는 충분한 전류가 아닙니다.


아두이노 핀의 단락이나 고전류 장치의 구동을 시도하면 핀의 출력 트랜지스터가 손상되거나 파괴되거나 아트메가 칩 전체가 손상될 수 있습니다. 종종 이로 인해 마이크로컨트롤러에 "데드" 핀이 발생하지만 나머지 칩은 여전히 적절하게 작동합니다.

+ Recent posts