마스터 누누

[Arduino] LED ON/OFF 1 본문

임베디드/아두이노

[Arduino] LED ON/OFF 1

마스터누누 2017.04.19 01:00

LED ON/OFF


C언어를 처음 배울 때 콘솔창에 "Hello World"를 출력하듯이

MCU(마이크로 컨트롤러)의 기본 기능인 IO(Input/Output)을

LED를 통하여 확인해보는 것이다.







우선 기본 예제를 통하여 LED를 켜보도록 하자.

파일 -> 예제 클릭시 여러개의 예제항목이 나온다.

여기서 Basic -> Blink를 로드하자.

Blink는  내부 LED 깜빡이 예제이다.






 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}
 
// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
 
cs


예제는 위와 같다.

우선 setup부터 살펴보자.

pin의 상태를 설정해준다. pinMode에 의해 13번 핀이 출력으로 설정된것을 볼 수 있다.


다음은 loop이다.

13번핀을 HIGH상태로 설정하고 1초뒤에 다시 LOW상태로 변경한다.

이를 통해 LED는 1초 간격으로 깜빡이게 된다.







즉, 다음과 같이 전류가 흐르게 된다.

HIGH에서 다음 HIGH 상태까지의 간격은 1초이다.

그렇다면 13번 핀의 LED의 확인을 위해 배선 해야하는걸까.







아두이노를 확인해보자

전면부의 붉은 원안의 LED를 보자.

13번 핀은 위의 붉은 원 안의 LED와 연결되어 있다.

따라서 13번 핀으로 신호를 줄 경우 붉은 원의 LED가 깜빡이게 된다.

따라서 별도의 배선을 할 필요가 없다.







실제 아두이노로 업로드 완료시 사진이다.

13번핀이 켜졌다






내부의 LED를 켜보았으니 외부에서 회로를 구성하여 LED를 켜보도록 하자.

출력핀으로 디지털 7번 핀을 사용한다.


여기서 주의해야 할 점은 LED가 극성이 있다는 것이다.

보통 긴쪽이 (+), 짧은쪽이 (-)이다

다리가 짧아 확인 하지 못한다면 LED 머리를 확인해본다

안쪽의 쇠가 작으면 (+), 크면(-)이다.


핀 배치는 다음과같다.






여기서 LED 옆에 저항이 왜 달려야 하는 걸까.

보통  붉은색 5파이 LED의 경우 정격 전압이 2V 내외이다.


아두이노는 핀을 출력으로 설정 했을 시 HIGH에서 5볼트를 내보낸다.

따라서 있는 그대로 LED를 달아버리면 버티지 못하고 터지거나

버틴다고 해도 수명이 짧아지는 부작용이 있다.

따라서 저항을 부착함으로써 안정인 밝기와 수명을 보호하는 효과가 있는 것이다.


중학교 과학시간에 배운 옴의 법칙(V = IR)으로 계산하면 입력전압이 5V일 때

사용해야하는 저항의 값을 금방 구할 수 있다.

이 때, 저항의 값을 계산한 것보다 조금 크게 잡는것이 안정적이다.





 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(7, OUTPUT);
}
 
// the loop function runs over and over again forever
void loop() {
  digitalWrite(7, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(7, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);              // wait for a second
}
 
cs


코드도 처음과 별반 다르지 않다.

핀의 셋팅만 7번으로 바꾸어 주었다.






LED가 켜지는 모습

LED Blink, 잘 동작한다.


저작자 표시
신고

'임베디드 > 아두이노' 카테고리의 다른 글

[Arduino] 시리얼 통신  (0) 2017.04.19
[Arduino] Interrupt 인터럽트  (0) 2017.04.19
[Arduino] LED ON/OFF 2  (0) 2017.04.19
[Arduino] LED ON/OFF 1  (0) 2017.04.19
[Arduino] Arduino IDE 설치  (0) 2017.04.19
[Arduino] 아두이노란?  (0) 2017.04.19
0 Comments
댓글쓰기 폼