안녕하세요? LGS입니다.
오늘 Arduino와 MATLAB으로 만들 녀석은 대충 이런(아래 동영상) 녀석입니다.
컴퓨터 프로그래밍으로 치자면 "Hello World" 쯤되는 녀석이죠~ ^^


이번 강의를 진행하기 위해서는 몇가지 준비물이 있습니다.
Arduino Board와 USB 케이블은 당연히 있어야 하구요~
그 이외에도 LED, 저항, Breadboard, Jump Wire 가 필요합니다. ^^
지금 부터 각각의 부품에 대한 설명 들어 갑니다요

LED는 Light Emitting Diode의 약자입니다. 
우리나라 말로 풀어서 말하자면 "빛(Light)을 내뿜는(Emitting) 다이오드(Diode)"가 되겠죠
그럼 다이오드(Diode)는 또 뭐냐... -_-; 다이오드는 신기하게도 한쪽 방향으로만 전류가 흐를 수 있는 전자부품입니다.
즉 전류가 (+)(Anode) 에서 (-)(Cathode)로만 흐를 수 있고 (-)에서 (+)로는 흐르지 못하는 놈이예요~
Diode와 같은 부품을
(+) -> (-)로 전압을 걸어주면 전류가 흐르기도 하고(도체 導體 conductor) 
(-) -> (+)로 전압을 걸어주면 전류가 흐르지 않기도(부도체 不導體  insulator) 하기때문에 
반은 부도체, 반은 도체라고해서 반도체(半導體 semi-conductor)라고 합니다.

C5Vye0e3BPnRqyljYJ9A0tEcV9IM9sw4wUJM4D5HvSJLkqytpaLTRLLm9ZHWVVN19FweDB3_c8auWHewUvKzqNGW4m_g8-0SSfk04neF9BQjhQI8cl0

LED는 다이오드는 다이오드인데 (+)에서 (-)로 전류가 흐를 때 빛을 내는 녀석입니다.
LED는 다른 광원(光原)보다 상대적으로 전기도 적게 먹고 수명도 길고, 가격마저 저렴하기때문에 많이 쓰입니다.
LED 역시 다이오드이기 때문에 Anode(+)와 Cathode(-)를 잘 구분해 주어야합니다. 
(전압을 반대로 걸어주면 불이 들어오지 않아요)
LED에서는 다리의 길이가 긴 녀석이 (+)(Anode) 입니다. 인생에서도 다리가 길면 플러스 요인입습죠 헤헤 ^^;


다음으로 저항(Resistor) 입니다.
처음 실제 저항을 보면 초보자분들은 어는 녀석이 어떤 녀석인지 모르게 되어있습니다요.
조그마한 저항에 몇옴 이런식으로 안써있어요;; 그냥 알록 달록 띠가 둘러져 있습니다. 
이 띠의 색깔을 보고 저항의 크기를 알아내야 합니다.
여려운 건 없구요 아래의 Resistor 컬러 테이블을 참조하시면 됩니다. 해석하는 방법은 쉬우니까 그냥 딱 봐도 아실 거예요
억지로 외우실 필요는 없습니다. 필요하실 때마다 표를 참조하시면 됩니다. ^^ 

6FOEl1XTcF8yb5EiiRoLz479rEabqEdh30vT-c88KtEgpB31xvIgRrVsb4ihYGqMTNQRLY6h_mGknhZnlVeWg9YgfdiKaegjsLXk5YNfBViKUb3bChM

자~ 다음으로 알아볼 타자는 Breadboard!!
Bread Board는 우리나라 말로 '빵판' 이라고 합니다.(그럼 브레드 피트는 빵발?? ;; 죄송합니다. -_-;;)
모양은 아래처럼 생겼구요~ 힘들게 납땜할 필요 없이 Jump Wire(빵판에 사용되는 끝이 단단한 전선)를 
Breadboard 구멍에 쑝쑝 꼽아서 간단하게 원하는 회로를 만들 수 있습니다.
오른쪽에 Breadboard 내부 회로도가 있는데요 어떤식으로 연결되어 있는지 잘 보세요~ ^^

-stTeLDSv3f8LQirG4vTzmtx6EapFBSxvx_UQZ8xbuCji_SQx87ODzV1Lo2uHqNyzuaaE4HptMVyy5lB72b2EVz4n_WpSmV8GPs7T9XhvMzmv509Q6w




기본적인 부품 설명은 끝났습니다.
이제 제일 중요한 Arduino Board에 대한 설명을 하겠습니다 (=^ㅅ^=)
0WpnI2ZdIE9SiBfpMjy0aI4V27TJB0adAitg-05-FK0jNO44KeDTqIJ9auQxlBthW781_nwSyS3rcEv_p2XradWRaOqa9l0fYG07ZPlO6_cjh-kSyVk

우선 Arduino 보드에 대한 다른 설명들은 잠시 접어두고요 이번 강의에 알아야 할 Input/Output Pin에대해서만 설명하겠습니다.
(Arduino 보드에 대한 추가적인 설명은 앞으로의 강의에서 기능을 하나씩 하니씩 써보면서 설명드릴께요~)

Digital은 1(일)/0(영), On/Off, High/Low 흑/백 처럼 단 2가지의 값만을 가질 수 있습니다.
즉 Arduino Board의 Digital Output Pin은 On 이면 5V, Off 이면 0V가 된다는 말입니다.
Digital Pin의 경우 0V와 5V사이의 중간값이 없어요. 모아니면 도!! 5V(On)아니면  0V(Off)상태가 딱 2가지 밖에 없습니다.
Arduino Board의 Digital Input Pin은 Digital Input Pin에 걸리는 전압이 
(이론적으로) 2.5V 이상이면 On, 2.5V 이하이면 Off로 인식한다는 말입니다.
이해가시죠? ^^

그에 반해 (아두이노 우노의 경우) Analog Input은  0부터 1023(2의 10승 - 1)까지의 10 bit 분해능을 가지고 있습니다.
다른 말로 Analog Input으로 들어오는 전압값(0V ~ 5V사이)을 Arduino가 1024단계로 구분해 낼 수 있다는 말입니다.
온도를 재는데 '높은 온도 아니면 낮은 온도' 이런 식으로 온도를 잴 수는 없지 않겠어요 23.5℃이런식으로 측정해야지...

Arduino UNO는 총 14개의 Digital Input/Output 핀을 가지고 있구요.(0번 핀부터 13번 핀까지)
Arduino UNO는 총  6개의 Analog Input           핀을 가지고 있습니다(A0번 핀부터 A5번 핀까지)
만약 Digital I/O가 모자란다면 아날로그 핀(A0~A5)을 디지털 핀으로 변환해서 사용할 수도 있어요.
아날로그 A0 pin은 디지털 14번 pin이 되고 A1 pin은 15번 핀이되고.... 
즉 Analog A0 ~ A5 핀을 Digital 14번 ~ 20번 핀으로 전용해서 사용하실 수도 있습니다.

갑지기 뿅~ 뜬금 없이 Datasheet 이야기!! (LED 회로의 저항을 계산하실 수 있으면 Skip 하셔도 좋습니다.)
Datasheet(데이터 시트)는 한마디로 이야기하자면 자기소개서 같은 겁니다.
전자부품이 "나~ 이런 녀석이예요~" 하고 자신에 대한 모든 정보를 Data sheet에 기록해 두었습니다.
크기는 어떻고, 내부 저항은 어떻고 얼마 이상의 전류가 흐르면 사망하고... 등등등...
지피지기면 백전백승!! Data sheet 만 제대로 정확하게 읽을 수 있다면 게임은 거의 끝난 거죵 ^^
위에서 이야기했던 Arduino Pin에 대한 모든 내용이 Data Sheet에 있을까요? 없을 까요? ㅎㅎ 당연히 있겠죠~~

-XfR14cE_gObCaWD-UrhDyvnqvARWn0SnvtMuDrazyQtUxvwP4rxEQVwryk1lVxD05nHVZvw3b_6n-xDiKKYS3Tsni42Rq6YJ6DJW2NpikJmkJCRgQA

(위의 이미지는 아두이노 공식 홈페이지 arduino.cc에서 캡쳐해왔습니다)
위의 표에서 눈여겨 보셔야 할 항목은 DC Current per I/O Pin 부분 입니다.
즉 Input / Output 핀에 직류(DC) 전류가 40mA가 흐른다는 부분인데요 
만약 여러분이 빵판에 회로를 구성했는데 외부전원으로부터 Input Pin으로 40mA 이상의 전류가 흘러들게 끔 회로를 꾸미셨다면?
Arduino를 동작시키는 순간 여러분의 Arduino는 장렬히 전사할 것입니다. -_-;;

LED도 마찬가지이구요~(LED Datasheet 보시면 알겠지만 통상의 경우 50mA 이상의 전류가 흐르면 LED가 죽어버립니다;;)

9Gh6cs8BPRzFI2pAOBqiqDm3MLrbykPQ5HkS9eVjaMWDOeR7HyEbitRkEQYH4kaG0z4Mwshpkg9U3Y5DxWDGbXI1UpsE4qGiVpsyPYaGupPGiLcBwJM

자~ 이번 시간에 사용할 빨강색 LED의 Data Sheet를 직접 가지고 왔습니다.
(각 부품마다 Data Sheet가 다 다르니 위의 Data Sheet는 참고만 하세요)
제가 지금 무슨말을 하려고 이렇게 말을 어렵게 삥삥 둘러가며 하고 있냐면요~
"저항 없이 LED를 Arduino Board에 다이렉트로 연결하면 안됩니다!!"
이 말을 하려구요...
아무 생각 없이 마구 연결하게 되면 LED는 번쩍하고 나가고요 30$ 짜리 아두이노 보드가 순식간에 날아간다니까요!!
150만원짜리 노트북이 그냥 연기를 모락모락 내며 죽을 수도 있다니까요!!
그래서 저항을 달아서 적정한 current와 voltage를 맞추어 줄 필요가 있다는 거죠!!
무슨말 하는지 아시겠죠?

이제 저항을 달아야하는 건 알겠는데 그럼 또 몇옴(Ohm)짜리 저항을 달아야 할까요?? -_-;; 산넘어 산임니다요 쿨럭
그!러!나! 우리에게는 Node Analysis와 MATLAB Simulink가 있다는 이 말씀입습죠 케케
(이럴 때 써먹으려고 Node Analysis 배웠다 이거죠~ ^^ 사실 이번 시간의 경우에는 Ohm's Law만 있으면 되요 ㅎㅎ)

위의 적색 LED는 몇옴(Ohm) 짜리 저항을 달아야하는지 계산해 봅시다.
Data Sheet에서 빨간색 박스를 주목해주세요~
(아 저런 기호만 보면 왠지 손발이 오그라 듭니다 -_-;;;)
Vf는 Forward Voltage를 말합니다. 위의 datasheet 대로라면 LED를 통과하면 접압이 2.2V 만큼 떨어집니다.
If는 Forward Current (I) 를 뜻해요. LED에 순방향( (+) -> (-) )으로 전압을 걸어주었을 때 흐르는 전류량을 말합니다.
Peak If를 보시면 알겠지만 LED에 흐르는 전류가 50mA가 넘어가면 위험합니다;;
빨간 박스안에 있는 20mA를 If로 잡아주시면 됩니다.
 
qmGVBQrDSDzyJ62xivu83itOQs5cFtAFtAvWP404klnZ7fTmD__sNS0MkhZZEle3ebFh9egl7BjF5wL63MSJJwtFvji5-s4eQNh5I-nYp5FsCBxpMz0

회로를 위의 회로도와과 같이 구성했다면?? (나중에 Voltage Source를 Digital Output Pin으로 대체하면 됩니다)
그럼 LED(Diode)와 저항사이의 Node 전압은 얼마일까요?
너무 쉽죠? ㅋㅋ 2.2V 입니다. Diode에 걸리는 전압이 2.2V 니까 Ground(0V)와 Node 사이의 전압차는 2.2V란 말이죵?
그럼 Resistor에 걸리는 전압은??
넵 ^^ 초등학교 산수 시간입니다요 Voltage Source 5V에서 Diode에 걸리는 전압 2.2V를 빼주면 됩니다.
Closed Loop(닫힌 회로)이므로 회로에 흐르는 전류는 회로전체에 똑같이 20mA가 되겠죠?
자~ 옴의 법칙(Ohm's Law) V=IR을 써서 간단히 저항값을 계산할 수 있습니다. 
계산을 해보니  140Ω 이네요 룰루~ 랄라~ 140Ω 저항을 달러 갑시다

엇 그런데 제가 가지고 있는 저항은 100Ω 짜리 밖에 없는뎅;;;
100Ω 짜리 저항을 그냥 써도 될까요? 역시 V = IR 공식을 쓰면 2.8V/100Ω = 28mA로 Peak If 50mA 보다는 작은 값입니다.
그냥 써도 되겠습니다요~ ^^ (그래도 되도록이면 140Ω을 쓰시는 것이 좋습니다.)
실제로는 더욱 안전하게 쓰기 위해서 220Ω 정도를 많이 사용합니다.


Blinking LED Hardware Part는 끝~ o(^o^)o
(아흐~ hardware랑 software 동시에 진행하려니 빡세네욤 ;;)
잠시 쉬어갈까요? ^^; (힘들어요 ㅠㅠ)
넵 잠시 쉬어가겠습니다.
다음시간에 뵙죠~ 총총총...