Mechanic 공방

8. 아두이노 LED 실습 (1) 본문

아두이노 (Arduino)

8. 아두이노 LED 실습 (1)

H-Mechanic 2020. 7. 12. 11:38
728x90
반응형

이번 포스팅에서는 실제 회로도를 구성하여 LED 1개를 점등시키는 실습을 해보고자 한다.

 

저번 포스팅에서 다루었던 'LED Blink' 예제와 굉장히 유사한 실습이지만, 직접 회로를 구성해본다는 점에서 차이가 있다.

 

[회로 구성]

회로는 아래와 같이 구성하였다.

보통 다른 아두이노 LED 예제를 보게 되면 LED와 보드의 핀 사이에 저항을 하나 연결하는 회로를 많이 볼 수 있는데, 이는 LED가 보드의 핀에서 출력되는 전류값을 못 받아들이는 경우를 대비하여 안전하게 실습하기 위함이다.

 

다만 본 실습에서는 필자가 직접 해 본 결과, 사용하는 키트에 동봉된 LED가 충분히 버틸 수 있음을 확인하였기에 저항을 연결하지 않았다.

 

저항을 연결하고자 하면 아래와 같이 LED의 (+) 부분에 저항을 연결하면 된다.

 

[코드 설명]

아래는 본 실습에서 사용한 코드이다.

#define LED 8

void setup() {
    pinMode(LED, OUTPUT);
}

void loop() {
    digitalWrite(LED, HIGH);
    delay(1000);
    digitalWrite(LED, LOW);
    delay(1000);
}

앞선 포스팅의 'LED Blink' 예제 코드와 굉장히 유사하다.

 

한 가지 달라진 점은 핀 번호를 선언하는 부분인데, 본 코드에서는 #define이라는 구문을 사용하여 코드의 제일 윗부분에 핀 번호와 해당 변수의 이름은 선언해주었다.

 

#define 구문은 코드가 컴파일되기 전에 변수를 미리 정의 및 선언할 수 있게 해주는 구문으로, #define을 통해 정의된 변수의 경우 아두이노 칩셋 내의 프로그램 메모리를 차지하지 않는다는 장점이 있다.

 

하지만, 컴파일 되기 전에 미리 변수의 이름을 정하는 구문이기 때문에 간혹 코드 본문에 동일한 이름의 다른 변수를 사용하게 되면 코드가 꼬일 수 있는 단점이 있다.

 

따라서 아두이노 공식 홈페이지에서는 #define 대신 const라는 구문을 대신 사용할 것을 권장하고 있다.

 

(※ 아래 링크는 아두이노 공식 홈페이지에 올라와 있는 #define 구문에 대한 내용이다.)

https://www.arduino.cc/reference/en/language/structure/further-syntax/define/

 

Arduino Reference

Description #define is a useful C++ component that allows the programmer to give a name to a constant value before the program is compiled. Defined constants in arduino don’t take up any program memory space on the chip. The compiler will replace referen

www.arduino.cc

이 외의 나머지 부분은 모두 저번 포스팅의 'LED Blink' 예제 코드와 동일하며, 마찬가지로 LED를 1초 간격으로 점등하는 내용으로 코드 작성을 하였다.

 

[동작 영상]

위 코드를 정상적으로 업로드시키게 되면 아래와 같은 동작을 볼 수 있다.

 

 

728x90
반응형