안녕하세요!! 드린이입니다 ::))
지난 포스팅을 통해서 아두이노(Arduino)의 시리얼(Serial) 통신에 대한 내용과 실행 예제에 대해 포스팅했었습니다. 오늘은 디지털 신호의 입력과 출력에 대한 간단한 실행 예제를 통해서 본격적으로 아두이노(Arduino)와 친숙해질 수 있는 포스팅을 하도록 하겠습니다.
GPIO?
디지털 신호의 입력과 출력에 대한 예제를 보기 전에 ‘GPIO’의 개념에 대해 잠시 설명하겠습니다. GPIO는 General Purpose Input Output의 약어로 ‘범용 입출력’을 뜻합니다. 즉, 개발자의 의도에 따라서 입력 또는 출력으로 사용할 수 있는 다용도 목적의 핀입니다. 다용도 목적 입출력 핀(GPIO) 사용 방법은 약간의 준비 작업이 필요합니다. 첫 번째는 핀의 용도 설정이다. 즉, 입력 또는 출력 중 어느 용도로 사용할지 결정해야 합니다. 두 번째는 핀을 통해 데이터를 입력받거나 출력합니다. 이때, 아날로그 또는 디지털 데이터에 따라 사용 가능 함수가 각각 다르게 되니 참고 바랍니다. 추가로 앞단에서 결정된 핀의 용도 및 데이터 종류를 동작 중간에 변경도 가능합니다.
디지털 입출력
아두이노 UNO 보드는 0번부터 13번까지 총 14개의 디지털 핀을 통해 디지털 신호를 출력하거나 입력받을 수 있습니다. 여기서 말하는 디지털 신호는 전기 신호의 일종이며, O(LOW) 또는 1 (HIGH) 두 가지의 신호로 구분됩니다. 디지털 신호를 출력할 경우, 5V(HIGH 신호) 혹은 OV(LOW 신호)를 출력할 수 있습니다.
LED
LED는 전기 에너지를 빛 에너지로 변환시켜 주는 반도체 소자로 발광 다이오드라고도 합니다. LED는 +와 –극성이 있기 때문에 LED를 사용할 때는 반드시 극성을 확인하고 사용해야 합니다. LED의 극성은 아래의 그림과 같이 다리가 긴 쪽이 + 극, 짧은 쪽이 – 극입니다. 약 1. 8~2V의 전압에서 20mA의 전류를 소모하여 작동하며 그 이상의 전원을 사용하여 동작할 경우 파손될 수 있습니다.
LED 불 켜기 예제
아래의 그림과 같이 LED와 저항을 연결하고 예제 코드를 입력합니다.
void setup() {
pinMode(0, OUTPUT); // 8번핀을 출력모드로 설정합니다.
}
void loop() {
digitalWrite(0, HIGH); // 0번핀에 HIGH 신호를 출력합니다.
delay(1000); // 1초간 대기합니다.
digitalWrite(0, LOW); // 0번핀에 LOW 신호를 출력합니다.
delay(1000); // 1초간 대기합니다.
}
|
코드의 내용을 보면
- pinMode(0, OUTPUT); -> 0번 핀을 출력모드로 설정
- digitalWrite(0, HIGH); -> 0번핀에 HIGH 신호를 출력합니다.
- delay(1000); -> 1초 대기
- digitalWrite(0, LOW); -> 0번핀에 LOW 신호를 출력합니다.
결과
UNO 보드에 코드를 업로드하고 실행하면, LED 불빛이 1초 간격으로 ON과 Off를 반복하게 됩니다. 여기서 pinMode(핀번호, 모드)는 사용할 디지털 핀의 모드(입력 또는 출력)를 설정하는 함수입니다. digitalWrite(핀번호, 신호)는 설정 핀에 디지털 신호 출력하기 위한 함수입니다. 이번 예제에는 없었지만 digitalRead(핀번호) 함수는 설정 핀에 디지털 신호를 입력받기 위한 함수입니다.
만약 LED의 ON/Off 간격을 늘리거나 줄이려고 하면 delay( ) 함수의 시간을 조절하면 됩니다~~
오늘은 아두이노(Arduino)의 간단한 예제를 통하여 LED의 전원을 ON과 OFF를 반복하는 방법에 대해서 알아보았습니다. 다음 포스팅에서는 더 쉽고 간단한 예제를 가지고 돌아오도록 하겠습니다.
감사합니다::))