[매드정] 아두이노 강좌 - 04.Multi-Function Shield LED ON/OFF 동작


안녕하세요~ 매드 입니다.

지난 주에는 개인적인 사정으로 인해...(콜록 콜록) 한주를 쉬어 버렸네요 ㅡㅠ
지송합니다~

하지만!! 이렇게 다시 돌아왔다는 점! 후후...

에헴.. 다시 돌아와서 이번주에는 'Multi-Function Shield LED ON/OFF' 동작을 해보도록 하겠습니다~

사실 이전까지 배운 것을 통해서 충분히 하실 수 있는 부분인데요.

임베디드쪽에서는 LED ON/OFF가 C언어 처음 배울 때 항상 "Hello, World!"를 찍은 것과 동일한 중요한 부분 중에 하나 입니다.

LED ON/OFF만 알아도 '아.. 이 보드 뚫었다' 라고 생각해도 과언ㅠ 이죠. (콜록;)
그 외에도 많은 기능들이 있으니까요 ㅠ

머 어쨋든 강좌를 시작해 볼까요!

4-1. LED원리와 저항
이번 시간에 가장 먼저 알아야 할 것 은 바로 가장 유명한 바로 그 공식
'옴의 법칙' V = IR 입니다.

1926년 독일의 물리학자 Ohm(옴)이 발견했는데요. 전기 회로내의 전류, 전압, 저항 사이의 관계를 나타내는 법칙 입니다~

전압의 크기를 V, 전류의 세기를 I, 전기저항을 R 이라고 할 때 V=IR 공식이 성립한다 인데요~ 먼가 어렵죠. 이해하기 쉽게 하나만 더 알고 설명드리면 모든 공식에는 반드시 단위가 중요한데요.

V는 전압 V 그대로!
I는 전류 A(암페어) 단위!
R은 저항 Ohm(옴) 단위!

가 되겠습니다.

사실 다 필요 없고 전자쪽에서 모든 흐름은 '물'과 비교하시면 이해하시기가 쉽습니다~
물은 높은 곳에서 낮은 곳으로만 흐르지요?~  이게 바로 전압 차이로 전기가 흐르는 원리가 되겠습니다. 5V와 0V가 걸려서 5V - 0V = 5V 만큼의 힘으로 흐르는 것인데 이 흐르는 '물의 양' 이 바로 전류가 되는 것이죠~ 이 흐름을 방해하는 것이 저항이 되구요.
머 워낙 중요한 내용이니까 차차 계속 설명드리기로 하구요.

일단 LED가 어떻게 생겼는지 보죠.

<펌 구글사진>


아.. 이쁘네요. 회로 동작의 모습으로 다시 보면~

<펌 구글사진>

요런식으로 생겼습니다~

LED는 방향이 있습니다~ +(애노드), -(캐소드) 로 불리우고 정확한 방향으로 연결되어야지만 LED의 불이 들어오죠. 그리고 최소한 Vf 값 이상의 전압이 걸려야 불이 들어오는데 상세한 설명은 넘어가고 위 그림에서 3가지가 보이죠.

전압원(배터리), 저항, LED 인데요. 먼저 설명한 대로 따르면 저항은 없이 배터리와 LED만 있어도 LED 불은 들어옵니다. 아주 잠시 동안이죠. 왜냐하면~ LED가 타버리거든요!
여기서 옴 형님께서 만든 공식을 다시 꺼내들어보면

V = IR 인데 조금 바꾸면 I = V/R 같은 형식이 되죠 어렸을 때 기억을 떠올려서 분모인 R이 0이 되면 I는 ??? 바로 무한대가 되죠. 그렇습니다. 전류가 무한대로 흘러서(사실은 배터리 출력 최대치) LED 소자가 파괴되어 버리는 것이죠. 대략 LED는 10~20mA 정도만 흘려줘도 불이 들어오게 되는데요. 이 전류를 제한하기 위한 것이 바로 저 '저항'의 역할 입니다.

전압을 5V라고 한다면 R = 5 / 0.02 (20mA)  = 250옴 정도의 저항이면 LED에 20mA 정도의 전류가 흐르게 되겠네요~ ㅎㅎ

후.. 실습도 하기 전에 많은걸 진행했네요. 이제 원리는 알았으니 실습으로 가볼까요!

4-2. Multi-Function Shield LED 회로

실습인줄 알았는데 회로 ㅠ 보는게 있네요.

위 사진은 이전에 올려드린 멀티펑션 보드의 LED 부분만 확대해서 캡쳐한 것입니다.
회로도를 보면 LED 반대편은 +5 라고 적혀있는데 이 부분은 회로에서 5V 전압이 걸리는 부분이구요. 저항이 510옴이 걸려있는 것으로 봐서 대충 LED는 10mA의 전류가 흐르겠네요~

그리고 LED 반대편은 숫자가 나와있는데요!! 바로 이부분은 아두이노의 포트와 연결된 부분이 되겠습니다. 아두이노 우노 보드와 13,12,11,10 번 핀들이 LED와 연결되어 있는 것이죠. 그럼 이 LED들을 제어하기 위해서는 아두이노 우노 보드의 13,12,11,10 번 핀들을 제어해야되는 것은 알았고 어떻게 하느냐?~

이전에 설명 드린 바와 같이 전압은 높은 곳에서 낮은 곳으로 흐르죠?~ 한쪽에는 이미 5V 전압이 걸려있기 때문에 아두이노 포트에서 5V(HIGH) 신호를 준다해도 LED 불빛은 들어오지 않습니다. 왜냐? 같은 전압으로 인해 전압차이가 발생하지 않아 전류가 흐르지 않는 것이죠! 물이 같은 높이에 있다고 보시면 됩니다. (헉헉 ㅠ 힘듬)

그럼 아두이노 핀에서 0V(LOW) 신호를 주면! LED가 들어오겠죠?~ !!
이제 진짜 실습해보죠!


4-3. 펌웨어 코드

void setup() {
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  digitalWrite(12, HIGH);
  digitalWrite(11, HIGH);
  digitalWrite(10, HIGH);
  delay(1000);          
  digitalWrite(13, LOW);
  digitalWrite(12, LOW);
  digitalWrite(11, LOW);
  digitalWrite(10, LOW);
  delay(1000);
}

코드 설명 및 실습 방법은 동영상 강좌로 대체하겠습니다~


블로그 먼저 보신분들은 뒷부분 부터 시청하시면 될 것 같네요~
다음주에 뵈요!~~ ^^

댓글 쓰기

0 댓글