3D프린터와 아두이노/아두이노

아두이노 우노 디지털 포트(LED 램프 예제 실험)

메카럽 2020. 9. 13. 09:23

안녕하세요. 메카럽입니다.

여름이 언제 갔는지 요즘 날씨는 아침 저녁으로 쌀쌀하게 느껴질 정도로 계절이 금방 변했습니다. 환절기 건강 조심하세요. 이번 포스팅에서 다룰 내용은 아두이노 우노 기준 디지털 포트에 대해 알아보도록 하겠습니다.

 

■ 디지털 포트

디지털 핀에서는 LOW와 HIGH, 또는 0과 1, 또는 0V와 5V(또는 3.3V), 또는 OFF와 ON과 같이 2가지 상태만 출력이 됩니다. 전기적으로 5V(또는 3.3V)와 0V의 상태만이 출력되는 것이 아날로그 신호와의 큰 차이입니다(디지털 입력 또한 동일한 포트를 통해 이루어짐). 그리고 디지털 입출력은 아날로그 포트(A0~A5)를 이용해서도 가능합니다.

디지털 출력은 pinMode( ) 설정과 digitalWrite( ) 함수를 이용해 수행되며, 디지털 입력은 pinMode( ) 설정과 digitalRead( ) 함수를 사용합니다.

아래는 setup( ) 함수에서 핀의 용도를 설정해주는 구문입니다. pinMode 이후 소괄호( ) 내에 핀 번호와 용도(출력핀이면 OUTPUT, 입력핀이면 INPUT)를 기입합니다.

pinMode(핀 번호, 용도)

센서로부터 데이터를 받아들이는 목적이면 입력(INPUT)으로 설정해주어야 하고, 아래와 같이 LED를 켜고 끄기 위한 목적이면 출력(OUTPUT)으로 설정합니다.

pinMode(D2, INPUT)
pinMode(D3, OUTPUT)

디지털 입력과 출력 포트

 

Blink예제가 있지만, 실제 LED와 저항 하나를 제어하는 예제를 따라 해보겠습니다. 다음은 LED를 제어에 디지털 출력을 활용하는 대표적인 사례입니다. 디지털 입력은 후에 포스팅할 스위치 파트에 예제를 따로 제시하겠습니다.

아두이노 우노와 LED 그리고 150Ω~330Ω 수준이면 적당합니다. 이어서 USB 케이블을 꽂고 우노에 다음 스케치를 업로드 해보겠습니다. 스케치는 3초간 LED를 점등 시키고, 1초간 LED를 소등하는 과정을 반복하도록 구성되어 있습니다.

준비물 : 아두이노 우노, LED, 150Ω~330 저항, 점퍼선, 브레드보드

준비물
디지털 출력활용 LED 예제

int LED = 3;  // 아두이노 D3 단자를 LED 제어에 사용

void setup( )
{
 pinMode(LED, OUTPUT);  // 디지털 포트를 출력으로 설정
 digitalWrite(LED, LOW);  // LED초기상태 LOW
}

void loop( )
{
 digitalWrite(LED, HIGH);  // LED를 3초간 ON
 delay(3000);
 digitalWrite(LED, LOW);  // LED를 1초간 OFF
 delay(1000);
}

디지털 포트는 LED를 켰다가 끄는 것처럼, ON 또는 OFF의 상태만 제어할 수 있습니다. 두 가지 상태는 ON/OFF 외에 HIGH/LOW, 1/0으로도 표현합니다.

아래는 LED램프 예제 결과 입니다. 처음에는 스케치를 업로드해도 아무런 변화가 없길래 어디가 잘못되었는지 한참을 고민하다가 LED램프를 반대로 결속한 것은 발견하고 다시 실행하니 아래와 같은 결과가 나왔습니다.

실제 LED램프가 프로그래밍대로 3초간 켜지고 1초간 꺼지는 것을 직접 실행해보니 신기하기도 했습니다.

LED 예제 실행결과

아래는 사진만으로는 켜지고 꺼지는 시간을 보여드릴 수 없어 동영상으로 올렸습니다.

 

아두이노가 점점 재미있어지는 요즘입니다. 여러분들도 기회가 되시면 꼭 구매하셔서 직접 해보시는 것을 추천드립니다.

다음포스팅에서는 아날로그 포트에 대해 알아보도록 하겠습니다.

오늘 하루도 행복한 하루 되세요.

728x90