PinMode INPUT OUTPUT 차이 - pinMode INPUT OUTPUT chai

공지 목록

공지글

글 제목작성일

(9)

공지 잼코딩이 걸어온 길과 교육철학, 앞으로의 이야기

2020. 6. 15.

[아두이노 함수] pinMode() 함수

PinMode INPUT OUTPUT 차이 - pinMode INPUT OUTPUT chai
잼코딩학원2017. 2. 16. 22:20

안녕하세요, 강남 대치동 1등 코딩학원!
4차 산업혁명에 발 맞춰 IT 인재를 길러가는 코딩학원.
잼있고 깊게, 비교할수록 잼코딩입니다.
이번에는 아두이노의 가장 기본적인 함수 중 하나인 pinMode()에 대해 알아보겠습니다.

pinMode()는 특정한 핀을 입력으로 쓸지 출력으로 쓸지를 설정해주는 함수입니다.
다음과 같이 사용합니다.(대소문자에 주의하세요)

pin: 설정을 하려는 핀의 번호
mode: OUTPUT, INPUT 또는 INPUT_PULLUP

OUTPUT의 경우 출력 모드로 설정하게 되며, LED를 켜거나 모터를 구동하는 데 사용할 수 있습니다.
INPUT의 경우 입력 모드로 설정하게 되며, 센서값을 읽어오는 데 사용할 수 있습니다.
INPUT_PULLUP은 내부의 풀업저항을 사용하는 입력 모드입니다. (풀업저항이란?)

다음은 예시입니다. 아두이노 우노에는 13번 핀에 연결된 LED가 내장되어 있는데(관련 포스팅), 이를 켰다 껐다 하는 예제입니다.

PinMode INPUT OUTPUT 차이 - pinMode INPUT OUTPUT chai

빨간 네모 안의 LED가 13번 핀에 연결되어 있다.

void setup(){ pinMode(13, OUTPUT); //13번 핀을 출력 모드로 설정 } void loop(){ digitalWrite(13, HIGH); //LED 켜기 delay(1000); //1초 기다리기 digitalWrite(13, LOW); // LED 끄기 delay(1000); //1초 기다리기 }

읽어주셔서 감사합니다 ^^
이상 강남 대치동 1등 코딩학원!
4차 산업혁명에 발 맞춰 IT 인재를 길러가는 코딩학원.
잼있고 깊게비교할수록 잼코딩이었습니다.

아두이노의 선택된 디지털핀을 입력으로 할지 출력으로 설정할지 구성하는 함수인 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)가 나오게 됩니다

PinMode INPUT OUTPUT 차이 - pinMode INPUT OUTPUT chai
출력 결과

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

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

PinMode INPUT OUTPUT 차이 - pinMode INPUT OUTPUT chai
풀업 풀다운 설정

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

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

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