함수설명: pinMode()



설명:

지정한 핀이 입력 또는 출력으로 작동하도록 구성합니다. 핀의 기능에 대한 자세한 내용은 >>아두이노의 핀에 대하여<< 페이지를 참조하세요.

INPUT_PULLUP 모드로 내부 풀업 저항을 활성화할 수 있습니다. 또한 INPUT 모드는 내부 풀업을 명시적으로 비활성화합니다.

 

문법(syntax):

pinMode(pin, mode)

 

매개변수(parameter):

pin: 모드를 설정할 아두이노 핀 번호
mode: INPUT, OUTPUT 또는 INPUT_PULLUP의 세가지 중 하나를 선택. 각 모드에 대한 자세한 내용은 >>아두이노의 핀에 대하여<< 페이지를 참조하세요.

 

리턴값(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초 기다리기 
}

 

참고:

위의 예제 코드에서 //(슬래시 두개)는 주석(컴파일 시 실제 코드로 인식 하지 않겠다는 의미)이며, 다른 글에서 설명하겠지만, >>digitalWrite()<<는 핀에 해당 값을 출력하는 함수, digitalRead는 핀의 현재 상태를 읽는 함수입니다.
또한 >>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