[아두이노 강좌] 11. 아두이노 디지털핀 신호 출력하기 / pinMode(), digitalWrite()

3679fceb0fa8f202bf65375422ba49a6_1462599
 

 

3679fceb0fa8f202bf65375422ba49a6_1462599 개요

 

아두이노는 디지털 신호 혹은 아날로그 신호를 통해 다른 전자기기들과 통신(데이터를

주고 받음)할 수 있어요. 이번 시간에는 아두이노의 디지털 신호, 디지털 핀에 대해 알아

보고 직접 사용해보는 시간을 갖도록 할게요.

 

3679fceb0fa8f202bf65375422ba49a6_1462599

 

3679fceb0fa8f202bf65375422ba49a6_1462599 디지털 신호

 

앞 강의에서 디지털 신호와 아날로그 신호를 언급한적이 있었지만, 디지털 신호에 대해 

한번더 언급하고 넘어가도록 할게요. 전자기기들은 전기의 신호를 통해 서로 통신(대화)을

할 수 있어요. 디지털 신호도 그중 하나이죠. 디지털 신호의 특징은 아래와 같아요.


3679fceb0fa8f202bf65375422ba49a6_1462599

그림 1. 디지털 신호

 

그림을 보면 알 수 있듯 디지털 신호는 2개의 신호로 이루어져있어요. 높을 때와 낮을 때. 

높을 때는 1 또는 HIGH라고 표현하며, 낮을 때는 0 또는 LOW라고 표현해요. 아두이노의

경우 높을 때(HIGH, 1)에는 5V를 출력하며 낮을 떄(LOW, 0)에는 0V를 출력하죠.

이 때 5V를 우리는 레벨이라고 표현해요. ( "이건 5V레벨이고, 저건 3.3V 레벨이야" )

  

3679fceb0fa8f202bf65375422ba49a6_1462600
 


3679fceb0fa8f202bf65375422ba49a6_1462600 아두이노 디지털 신호 출력

 

아두이노 우노 보드를 보면 디지털핀 0번부터 13번까지 총 14개의 디지털 핀이 존재해요.


3679fceb0fa8f202bf65375422ba49a6_1462600

그림 2. 아두이노 디지털 핀 


각 핀은 개별적으로 디지털 신호를 입력받거나 출력할 수 있어요. 물론, 우리가 프로그램을

만들어 넣어줘야 가능한것이죠. 우리가 아두이노에게 '디지털핀 10번으로 HIGH신호를

출력해!' 하면 아두이노는 디지털핀 10번으로 5V를 출력할 것이며, '디지털 핀 5번으로

LOW'신호를 출력해! 하면 아두이노는 디지털핀 5번으로 0V를 출력할겁니다. ㅎㅎ


이러한 원리를 사용해서 전자기기의 전원 입력 또한 가능하며, 우리는 간단하게 LED를

통해 실습을 진행해보도록 할게요.


3679fceb0fa8f202bf65375422ba49a6_1462600

 

그림 3. 아두이노 디지털 신호 출력

  

3679fceb0fa8f202bf65375422ba49a6_1462600
 

 

3679fceb0fa8f202bf65375422ba49a6_1462600 아두이노로 LED 제어하기

 

이런 말이 있습니다.. 모든 예제의 시작은 LED를 켜는 것부터 시작이다!!(...) 아두이노를

통해 LED를 켜볼 것이며, 그 과정에서 아두이노에 넣어줄 프로그램을 만들어봅시다.

 

 

3679fceb0fa8f202bf65375422ba49a6_1462601 준비물

3679fceb0fa8f202bf65375422ba49a6_1462601

 

3679fceb0fa8f202bf65375422ba49a6_1462601

 

3679fceb0fa8f202bf65375422ba49a6_1462601 회로도 연결

3679fceb0fa8f202bf65375422ba49a6_1462601
 

LED의 (-)극을 아두이노의 GND에 연결해주세요.

LED의 (+)극을 디지털 8번핀에 연결해주세요.

중간에는 220옴 저항을 하나 넣어줍니다.

 

3679fceb0fa8f202bf65375422ba49a6_1462601

 

3679fceb0fa8f202bf65375422ba49a6_1462601 프로그램 코드 (1)

 

void setup() {                     

pinMode(8, OUTPUT);     // 디지털 8번 핀을 출력모드로 설정한다.

}


void loop() {                                

digitalWrite(8, HIGH);         // 8번 핀에 HIGH신호 (5V)를 출력한다.

delay(1000);                        // 1초 동안 유지

digitalWrite(8, LOW);         // 8번 핀에 LOW신호 (0V)를 출력한다.

delay(1000);                       // 1초 동안 유지

}

 

프로그램 해석

디지털 8번 핀에 1초동안 HIGH (5V)신호를 출력한 후,

디지털 8번 핀에 1초동안 LOW (0V)신호를 출력하기를 반복함으로써,

디지털 8번핀에 연결된 LED가 1초 간격으로 켜졌다 꺼지기를 반복하게 됩니다.


프로그램의 기본 구조에 대해서는 여기를 클릭해서 추가 학습을 진행합시다!


3679fceb0fa8f202bf65375422ba49a6_1462603

3679fceb0fa8f202bf65375422ba49a6_1462603 사용된 함수 정리하기


■pinMode(핀번호, 모드)

사용할 디지털 핀의 모드(입력or출력)를 설정하기 위한 함수입니다.

매개변수

핀번호 - 모드를 설정할 디지털 핀 번호를 적어줍니다.

모드 - OUTPUT(출력)또는 INPUT(입력) 또는 INPUT_PULLUP을 적어줍니다.


■digitalWrite(핀번호, 신호)

설정 핀에 디지털 신호를 출력하기 위한 함수입니다.

매개변수

핀번호 - 신호를 출력할 디지털 핀 번호를 적어줍니다.

신호 - HIGH 또는 LOW를 적어줍니다.


3679fceb0fa8f202bf65375422ba49a6_1462602

 

3679fceb0fa8f202bf65375422ba49a6_1462602 응용하기

 

위에서 배운 내용을 응용하여 아래의 두가지 프로젝트를 추가로 진행해봅시다.


3679fceb0fa8f202bf65375422ba49a6_1462602 부저 작동하기

부저는 스피커의 일종으로 5V의 전압을 인가 시켜주면 소리를 내며 작동합니다. LED와

마찬가지로 다리가 긴 쪽이 (+)극, 짧은 쪽이 (-)극에 해당됩니다.


3679fceb0fa8f202bf65375422ba49a6_1462602

프로그램 코드는 위에서 사용한 (1)코드를 그대로 사용해보세요. ^^


 

3679fceb0fa8f202bf65375422ba49a6_1462602

 


3679fceb0fa8f202bf65375422ba49a6_1462602 신호등 시스템 만들기

빨강, 노랑, 초록색의 LED를 연결하여 신호등의 원리를 적용해봅시다.

 

3679fceb0fa8f202bf65375422ba49a6_1462602
 

코드는 아래와 같이 하면 되겠죠?


void setup() {                           

pinMode(6, OUTPUT);     // 디지털 6번 핀을 출력모드로 설정한다.

pinMode(5, OUTPUT);     // 디지털 5번 핀을 출력모드로 설정한다.

pinMode(4, OUTPUT);     // 디지털 4번 핀을 출력모드로 설정한다.

}


void loop() {                                

digitalWrite(6, HIGH);         // 6번 핀에 HIGH신호 (5V)를 출력한다.

delay(3000);                        // 3초 동안 유지

digitalWrite(6, LOW);         // 6번 핀에 LOW신호 (0V)를 출력한다.

digitalWrite(5, HIGH);         // 5번 핀에 HIGH신호 (5V)를 출력한다.

delay(1000);                        // 1초 동안 유지

digitalWrite(5, LOW);         // 5번 핀에 LOW신호 (0V)를 출력한다.

digitalWrite(4, HIGH);         // 4번 핀에 HIGH신호 (5V)를 출력한다.

delay(3000);                        // 3초 동안 유지

digitalWrite(4, LOW);         // 4번 핀에 LOW신호 (0V)를 출력한다.

}

 

 

 

디지털 핀을 통한 디지털 신호 출력은 여기까지입니다..! 다음 글에서는 디지털 핀을 통한 

디지털 신호 입력에 대해 알아보도록 할게요. ^^

▶아래 플러스 친구 버튼을 통해 다양한 정보와 교제 자료 및 이벤트등의 소식을 받아보실 수 있습니다.




모바일 버전으로 보기