MCU 공부/아두이노 레퍼런스 Arduino Reference

아두이노 입출력 선택, pinMode () 사용법

이티의 골방 2020. 5. 13. 08:19

아두이노의 선택된 디지털핀을 입력으로 할지 출력으로 설정할지 구성하는 함수인 pinMode()에 대해 알아보겠습니다.

 

 

정의

지정된 핀이 입력 또는 출력으로 작동하도록 구성합니다. 

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

 

사용 예

pinMode(pin, mode)

 

매개변수

pin: Arduino 핀 번호로 모드를 설정합니다.
mode: INPUT, OUTPUT또는 INPUT_PULLUP.

 

예제

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(3,OUTPUT);
  pinMode(4,INPUT);
 
}
 
void loop() {
  // put your main code here, to run repeatedly:
  int val;
  digitalWrite(3,HIGH);
  val = digitalRead(4);
  Serial.print("입력 값:");
  Serial.println(val);
  delay(5000);
 
}
 

 

위의 예제 코드를 보시면 pinMode(3,OUTPUT); , pinMode(4,INPUT); 으로 각각 3번핀을 출력, 4번핀을 입력으로 설정한 것을 확인하실 수 있습니다.

 

당연히 결과는 HIGH로 출력하였으니 1(HIGH)가 나오게 됩니다

 

출력 결과

 

그런데 위에서 명시했듯 "Arduino 1.0.1부터는 모드로 내부 풀업 저항을 활성화할 수 있습니다 INPUT_PULLUP. 또한이 INPUT모드는 내부 풀업을 명시 적으로 비활성화합니다."라는 말이 있습니다.

 

입력 모드에서 저희가 풀업, 풀다운을 설정할 수 있다는 것이죠.  풀업 풀다운은 아래 그림을 참고하시면 됩니다.

 

풀업 풀다운 설정

 

쉽게 설명하자면 저항이 그라운드 위쪽이면 Pull - UP 아래면 Pull - Down 이라고 생각하시면 됩니다. 풀업의 경우 스위치가 off상태(이번 예제에서는 write(LOW))에서 1(HIGH)를 출력하며 풀다운의 경우 스위치가 off상태에서 0(LOW)를 출력합니다.

 

아두이노의 입력 모드에서는 기본적으로 풀다운이지만 pinMode설정을 통해 풀업을 설정할 수 있습니다. 

풀업은 pinMode(4,INPUT_PULLUP);를 통해 설정할 수 있습니다.