본문 바로가기

아두이노 IDE/핵심프로그래밍 언어

3. 디지털핀 입출력

핵심 아두이노 프로그래밍 언어 3 - 디지털핀 입출력


1. pinMode()  : 핀 설정
2. digitalWrite()  : 디지털 출력
3. digitalRead() : 디지털 입력




1. pinMode()


아두이노 보드의 핀을 입력이나 출력으로 설정할 때 사용합니다.

사용할 핀을 입력이나 출력으로 사용할지 준비시키는 역할을 하기 때문에 주로 void setup() 뒤에 있는 { } 사이에서 사용합니다.

어떻게 사용하는지 문법을 한 번 보겠습니다.


pinMode(핀번호, 방식)


핀번호는 아두이노 보드에 있는 핀번호를 붙이면 됩니다.

방식은 INPUT, OUTPUT, INPUT_PULLUP 3가지가 있습니다.

INPUT은 핀을 입력으로 설정하는 것입니다.

OUTPUT은 핀을 출력으로 설정하는 것입니다.

INPUT_PULLUP은 핀을 내부 저항을 이용한 풀업 상태의 입력으로 설정하는 것입니다.

아두이노 보드의 핀들은 pinMode가 이미 입력(INPUT)으로 설정이 돼 있습니다.

입력핀으로 사용할 때에는 pinMode를 굳이 넣을 필요가 없다는 것입니다.

다만 아두이노 보드에 있는 내부 저항을 이용해 사용하려는 핀을 풀업 입력 상태(INPUT_PULLUP)로 설정할 때에는 pinMode()를 써야합니다.

아두이노 보드에 있는 아날로그 입력 핀들도 pinMode()를 사용하면 디지털 핀처럼 사용할 수 있습니다.

사용 예를 한 번 보겠습니다.


void setup() {
    pinMode(13, OUTPUT);   // 13번 핀을 출력(OUTPUT)으로 세팅합니다.
    pinMode(5, INPUT_PULLUP);   // 5번 핀을 풀업 입력으로 세팅합니다.
    pinMode(A1, OUTPUT);    // 아날로그핀 A1을 디지털 출력으로 세팅합니다.
}




2. digitalWrite()


디지털 핀을 HIGH 또는 LOW로 출력 할 때 사용합니다.

문법을 한 번 보겠습니다.


digitalWrite(핀번호, 값)


핀번호에는 디지털 출력으로 설정한 핀번호를 넣습니다.

값에는 HIGH 또는 LOW를 넣습니다.

HIGH를 넣으면 해당 핀이 5V(3.3V 보드의 경우 3.3V) 전압의 전기가 출력됩니다.

LOW를 넣으면 해당 핀이 0V가 됩니다.

digitalWrite()를 사용하려면 해당 핀을 pinMode()에서 출력(OUTPUT)상태로 먼저 설정 해야 합니다.

만약 pinMode()에서 해당 핀을 입력(INPUT) 상태로 설정하거나 아예 pinMode를 쓰지 않고 digitalWrite()를 HIGH로 할 경우, 해당 핀은 풀업 입력(INPUT_PULLUP)핀으로 작동됩니다.

사용 예를 한 번 보겠습니다.


void setup(){
    pinMode(13, OUTPUT);    // 13번 핀을 출력 핀으로 설정합니다.
}

void loop() {
    digitalWrite(13, HIGH);    // 13번 핀에 5V(3.3V 보드는 3.3V)의 전기를 가합니다.
    delay(1000);              // 1초 동안 기다립니다.
    digitalWrite(13, LOW);    // 13번 핀을 0V로 만듭니다.
    delay(1000);              // 1초 동안 기다립니다.
}




3. digitalRead()


디지털 핀에 들어오는 전기가 HIGH인지 LOW인지 읽어낼 때 사용합니다.

문법을 한 번 보겠습니다.


digitalRead(핀번호)


핀번호에는 전기를 읽고자하는 핀의 번호를 넣습니다.

5V 보드의 경우에는 해당 핀에 3.0v 이상의 전기가 들어오면 HIGH로 인식합니다.
3.3V 보드의 경우에는 해당 핀에 2.0V이상의 전기가 들어오면 HIGH로 인식합니다.


반대로 5V 보드에서 1.5V 이하의 전기가 들어오면 LOW로 인식합니다.
3.3V 보드의 경우에는 약 1V 이하의 전기가 들어오면 LOW로 인식합니다.

digtalRead()에 적힌 핀번호의 핀에 아무 것도 연결이 되어 있지 않다면, 아두이노는 HIGH나 LOW 중 아무거나 임의로 읽습니다.

예를 한 번 보겠습니다.


void setup() {
    pinMode(13, OUTPUT);       // 13번 핀을 출력으로 설정합니다.
    pinMode(5, INPUT);           // 5번 핀을 입력으로 설정합니다.
}

void loop() {
    if(digitalRead(5) == HIGH) {    // 만약 5번 핀에서 HIGH를 인식하면
        digitalWrite(13, HIGH);      // 13번 핀에 5V의 전기를 출력합니다.
    }
}


'아두이노 IDE > 핵심프로그래밍 언어' 카테고리의 다른 글

6. 상수-2  (0) 2017.02.22
5. 상수 - 1  (0) 2017.02.22
4. 아날로그핀 입출력  (1) 2017.02.22
2. 기호  (0) 2017.02.22
1. 기본 구조  (0) 2017.02.22