[아두이노] [강좌] 6. digitalWrite() 함수 실습 - LED 깜빡이기

으잉? LED를 깜빡이는 거라면 Blink 예제에서 다 했는데?

 

이번 시간은 아두이노 보드에 달려있는 ‘L’ 램프가 아닌진짜 LED를 켜는 법을 알아보자소스는 Blink 예제와 동일하겠지만 실제로 아두이노와 다른 센서 등이 어떻게 연결되는지 간단하게 알 수 있는 실습이 될 것이다.

 

실습을 위해서는 4가지가 필요하다아두이노 보드, LED, 핀 케이블브레드 보드(일명 빵판).

 

아두이노 보드는 이미 가지고 있을 것이고, LED와 핀 케이블그리고 브레드 보드는 온라인 상에서 쉽게 구입할 수 있다앞으로의 실습을 위해서 브레드 보드와 핀 케이블 정도는 미리 구매해두는 것이 좋다.

 

구매 참고 사이트는 아래에 접어뒀지만말 그대로 참고를 위한 것일 뿐나랑은 전혀 상관없는 사이트 들임을 밝힌다. (요새 이렇게 말 해두지 않으면 잡혀가는 무서운 세상이라ㅜㅜ)



브레드 보드는 소형으로 구매해도 좋고좀 더 큰 것으로 구매해도 좋다본인이 만들고 싶은 작품에 센서나 모듈 등이 많이 필요하다면 큰 걸 고르는 것이 좋겠지그리고 핀 케이블은 넉넉하게 구매해 두도록보통 자신이 가지고 있는 아두이노 보드의 핀 개수보다 조금 더 많게 가지고 있는 것이 좋다명심해야 할 것은핀 케이블에는 발이 달렸다자꾸 없어져. -_-

  

우선 LED를 살펴보자다리가 긴 쪽과 짧은 쪽이 보일 것이다.


e57ef6e4b73d29c5c4367d4f2f409b2e.png


다리 길이로 구분하기 힘들다면 LED 머리 부분의 금속판으로 구분할 수 있다다리가 길고 머리의 금속 판이 좁은 쪽이 +다리가 짧고 머리의 금속 판이 넓은 쪽이 극이다. +/-극에 맞춰 아두이노 보드의 전원을 연결해야 하기 때문에 꼭 확인하도록 하자.

 

우노(Uno) 또는 메가(Mega 2560/ADK) 보드에서 13번 핀의 위치를 찾아보자. USB 커넥터 부분을 왼 쪽으로 뒀을 때 위쪽의 맨 왼쪽(번호가 써진 핀들 중핀이 13번 핀일 것이다


1e120e8b3117456900efded5799aed91.png


LED를 꽂아보자. 13번 핀의 바로 옆에는 “GND”라고 표시된 자리가 있을 것이다. “GND”는 “Ground”의 약자로 우리 말로는 접지’. LED의 극이 꽂히는 자리다. 

 

LED +(다리가 긴 쪽머리가 좁은 쪽다리를 13번에, -(다리가 짧은 쪽머리가 넓은 쪽다리를 GND에 꽂도록 하자꽂는 방향 꼭 주의!!

 

꽂을 때는 반드시 전원을 뺀 상태에서감전될지도 몰라요으흐흐. (농담임)

 a60aafef15e6191f64a1182335ab3d10.jpg 


그리고 Blink 예제를 올려보자. ‘L’ 램프가 깜빡이는 것과 동시에 LED에 불이 들어왔다가 꺼지는 것을 확인할 수 있을 것이다.



근데 핀 케이블이랑 브레드 보드는 왜 산 거


이제 브레드 보드에 꽂아서 실습해볼꺼니까.


 

브레드 보드에 LED를 꽂고역시 꽂는 방향에 주의


브레드 보드는 아래 그림 중에 아래 쪽 그림에 표시된 노란 선끼리 연결되어 있다. 즉, 아래 그림에서 세로로 나열된 구멍 5개씩 서로 연결되어 있고 상단, 하단에 있는 가로로 긴 줄은 길게 한 줄이 모두 연결되어 있다빨간 줄과 파란 줄은 각각 전원과 GND를 꽂기 위한 자리라는 표시이다무조건 전원이랑 GND만 꽂으라는 건 아니고그냥 권장.


c1de89046a9b3af29ca50efd4a164967.jpg


LED의 두 다리는 연결되지 않은 구멍에 각각 꽂아야 하며핀 케이블은 다리 하나 당 하나씩 연결된 구멍에 꽂아야 한다뭔가 엄청 복잡하고 헷갈린 말이지만 사진으로 보면 간단하다.


2182f06b1cc27f08fd215ad2e29aa50a.jpg


.. 사진 찍을 때 초점 잡는 법부터 배워야겠네?

 

작게 써있어서 잘 안보일지도 모르지만, LED +극 다리가 노란 선 쪽, -극 다리가 흰 선 쪽이다노란색 선의 반대 쪽 끝을 13번 핀에 연결하고흰색 선의 반대 쪽 끝을 GND에 연결하자아두이노 보드마다 GND를 꽂을 수 있는 곳은 여러 개가 있는데그 중에 아무 곳에나 꽂아도 상관 없다.



 

노란색 선

 흰색 선

 아두이노 보드

13번 핀 

GND 

 LED

+극 다리 

-극 다리 

 45e22e25f271918e38bd0c2ae65c8b61.png 

그리고는 다시 Blink 예제를 실행해 보자아까와 똑같이 LED가 깜빡이는 것이 보이는가아두이노 보드와 다른 센서 또는 모듈을 연결할 때 브레드 보드를 활용해야 한다면지금처럼 핀 케이블을 이용해서 연결할 수 있다. 

 

물론 센서 보드나 모듈에 핀 헤더(핀 케이블 핀을 꽂는 부분)가 달려 있어서 브레드 보드를 사용하지 않고 핀 케이블만으로 직접 연결할 수도 있고어떤 모듈들은 아두이노 보드에 꼭 맞는 쉴드 형태로 나와서 그냥 아두이노 보드 위에 척 올려 꽂기만 하면 되는 형태도 있다.

 

 

간단하게 LED로 설명했지만 아두이노에 사용되는 다른 대부분의 센서나 모듈들은 아두이노 보드와 연결만 잘하면 작품의 80%를 끝낸 것이라 할 수 있다아두이노 용으로 나온 센서나 모듈들의 대부분에는 어느 핀을 어디에 연결하면 되는지 아주 친절히 설명하고 있으므로 설명서대로만 연결하면 됨앞으로 우리가 하나하나 실습해 보겠지만.

 

 

그냥 끝내기 아쉬우니까 우리 Blink 예제를 한번 수정해볼까?

 

아래와 같이 delay() 함수의 지연 시간을 2000밀리초로 수정한 후 업로드 해보자.


77831710d665fac6e8ce5aa1d590fc20.png


깜빡이는 간격이 2초로 바뀐 것이 보이는가?

 

그럼 이번엔 빨리 깜빡이게 해보자. 500밀리초로 바꿔보자.

 

 5b1878457df8a8c46bb0796be5605709.png 


이욜빨리 깜빡인다ㅋㅋㅋbrown_and_cony-70



이게 다야라고 생각하지 말기를아두이노는 이만큼 쉬운 거고아두이노 강좌는 이제 시작이니까.

 

 

 

참고 : 13번 핀에 대하여.

 

Blink 예제에서도 그렇고대부분의 아두이노 교재에서 LED를 켜는 예제를 보면 13번 핀에 LED를 연결하라고 되어 있다하필이면 13?

 

우노(Uno)나 메가(Mega 2560/ADK)의 경우에도 그렇고대부분의 아두이노 보드에서 13번 핀이 GND와 가장 가까운 핀이라는 것이 첫 번째 이유이고그래서 13번 핀을 LED를 위한 핀으로 정해버렸기 때문에 아두이노 보드 설계 단계에서 13번 핀에 아예 저항을 달아버렸기 때문이다.

 

위 실습에서 사용한 LED는 사실 아두이노 보드의 기본 출력인 5V보다 낮은 전압을 사용하기 때문에 LED가 꼬마전구처럼 펑 터지는 것을 방지하기 위해 +극 쪽에 저항을 연결해줘야 한다하지만 말했다시피 13번 핀에는 저항이 이미 달려있기 때문에 따로 저항을 연결하지 않아도 LED가 터지지 않았던 것.

 

만약에 내가 13번 핀을 사용하지 않고 12번 핀으로 LED를 켜고 싶다면 노란색 케이블을 12번에 바로 꽂아서는 안 된다는 말터진다구노란색 케이블과 12번 핀 사이에 직렬로 저항을 연결해야 한다.

 

13번 핀에 저항이 달려있기 때문에이 핀을 INPUT 모드로 사용할 때 주의해야 한다저항 때문에 입력되는 전압이 실제 전압보다 낮아져서입력 값이 1이냐 0이냐를 판단하는 기준 입력 전압보다 떨어지는 경우가 생길 수 있기 때문 13번 핀을 INPUT 모드로 사용해야 할 경우가 있다면 꼭 풀다운 저항을 연결하라고 아두이노 공식 홈페이지에서는 권장하고 있다.

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

임베디드 보드

번호 제목 글쓴이 날짜 조회수
18 아두이노 [강좌] 10. 아날로그 기능 - analogRead() 함수 icon 양재동메이커 03-14 14,724
17 아두이노 [강좌] 9. digitalWrite()/digitalRead() 실습 – 초음파 센서 icon 양재동메이커 03-14 11,849
16 아두이노 [강좌] 8. digitalRead() 함수(2) – 풀업 저항과 INPUT_PULLUP 모드 icon 양재동메이커 03-14 14,066
15 아두이노 [강좌] 7. digitalRead() 함수(1) - 스위치를 이용한 DigitalReadSerial 예제 icon 양재동메이커 03-14 12,386
14 아두이노 [강좌] 6. digitalWrite() 함수 실습 - LED 깜빡이기 icon 양재동메이커 03-14 11,496
13 아두이노 [강좌] 5. Blink 예제 해부하기(4) - digitalWrite()와 delay() icon 양재동메이커 03-14 10,434
12 아두이노 [강좌] 4. Blink 예제 해부하기(3) - pinMode() icon 양재동메이커 03-14 11,128
11 아두이노 [강좌] 3. Blink 예제 해부하기(2) - 함수 icon 양재동메이커 03-14 10,470
10 아두이노 [강좌] 2. Blink 예제 해부하기(1) icon 양재동메이커 03-14 10,939
9 아두이노 [강좌] 1. 아두이노 보드와 스케치 툴 icon 양재동메이커 03-13 11,359
8 아두이노 [강좌] 0. 아두이노, 시작. icon 양재동메이커 03-11 11,118
7 STM32 / MBED 19년 Mbed OS 동영상 강좌 List icon HelloMaker 03-11 10,880
6 STM32 / MBED MBED 수학 icon HelloMaker 03-11 10,615
5 STM32 / MBED MBED RTOS icon HelloMaker 03-11 10,249
4 STM32 / MBED MBED 파일 시스템 icon HelloMaker 03-11 10,215
3 STM32 / MBED MBED 통신 icon HelloMaker 03-10 11,026
2 STM32 / MBED MBED Timer icon HelloMaker 03-10 12,380
1 STM32 / MBED MBED 기본 구조 icon HelloMaker 03-10 9,667