아두이노 led 회로도 - adu-ino led hoelodo

아두이노를 시작하는 첫 번째 단계는 LED를 깜빡(blink)이게 하는 것입니다. 지난 강의에서는 아두이노 내에 내장된 LED를 깜빡여 보았습니다.

이번에는 직접 회로를 구성해서 LED를 깜빡이게 만들어 보겠습니다.

전 강의에서 기초적인 부품과 브레드보드에 대해 간단히 설명했기 때문에, 사진을 보며 그대로 구성하시면 됩니다.

회로 구성을 위해서 필요한 건 아두이노 본체, USB 케이블, LED, 점퍼 와이어, 저항 -입니다.

이 중에서 가장 중요한 것은 저항을 사용하는 것입니다. 저항 없이 아두이노 본체와 LED를 연결할 경우에는 아두이노 본체에 타격을 주거나, LED 의 수명이 확 줄어들 수도 있으므로 주의해주세요.

아래의 사진은 저항 없이 회로를 구성한 안 좋은 예시입니다.

아두이노 led 회로도 - adu-ino led hoelodo

위 사진은 안 좋은 예시라는 것을 알았습니다. 그렇다면 저항은 어떻게 사용하는 것일까요?

아래 회로도 사진을 봐주세요. LED와 전류를 공급해주는 점퍼 와이어와 LED 사이에 200(옴) ~ 330(옴) 정도의 저항을 넣어주었습니다.

저항을 넣어주면 전류가 약하게 흐르기 때문에 LED의 빛이 약해지겠지만, 안정적인 상태가 됩니다.

핀 하나당 적당한 전류의 수준은 40mA 정도입니다.

저항의 중요함에 대해 숙지했다면 아래 회로도를 보며 간단한 LED 회로를 구성해주세요.

아두이노 led 회로도 - adu-ino led hoelodo

회로를 구성할 때는 위와 같은 회로도 모형이 정리가 잘 되어있어 보기 편하실 겁니다.

실제로 회로도 구성을 마치면 아래와 같은 모습이 됩니다.

지난 시간 작성한 코드(13번 핀에 전류를 출력으로 설정하여 전류를 깜빡이며 공급)는 아두이노에 그대로 남아 있습니다.

아두이노는 이전에 컴파일하여 업로드한 코드를 계속 저장하고 있는 특징이 있습니다.

따라서 회로를 구성하고 컴퓨터에 USB로 전원 공급만 해줘도 LED가 깜빡이는 것을 확인할 수 있습니다.

아두이노 led 회로도 - adu-ino led hoelodo

안녕하세요.  D.U.T입니다.

방문 & 클릭해주셔서 감사합니다. 

이번 포스팅은 아두이노 LED 제어 On/Off 및 LED 회로 이해입니다. 

새해 목표로 다시 펌웨어(Firmware) 공부를 시작하려고 마음먹었습니다. 

저도 공부를 하는 입장이니 틀린 부분이 있을 수 있습니다. 이점 참고 바랍니다. 

먼저 LED 회로를 간단하게 설명드리겠습니다. 그리고 LED 제어 방법과 LED 제어를 실제 개발 실무에서는 어떻게 사용하는지도 설명하려고 합니다.


■ LED 회로 이해

LED(Light-Emitting Diode)는 빛을 방출하는 발광 다이오드입니다. 다이오드(Diode)이므로 애노드(Anode)캐소드(Cathode)가 있습니다. 애노드는 (+), 캐소드는(-)입니다. LED에서는 다리가 긴 쪽이 플러스(+), 다리가 짧은 쪽이 마이너스(-)입니다. 

아두이노 led 회로도 - adu-ino led hoelodo
( LED ) akscreationskaashif @Pixabay

Q. 그러면 LED에 어떻게해야 빛을 방출할 수 있게 할 수 있을까요? 

정답은 전원을 공급해줘야 합니다.

전원 공급 방법은 여러가지가 있습니다. 배터리로 전원을 공급해줘도 되고 USB 전원, Power supply 등 여러 가지 방법으로 전원을 공급해주면 됩니다. 그러면 LED는 빛을 낼 수 있습니다. 

예제로 전압원을 이용하여 LED를 구동하기 위한 회로도를 그려보겠습니다. 

아두이노 led 회로도 - adu-ino led hoelodo
(  V : 전압원, R : 저항, LED : 발광 다이오드 )

회로도에서 V는 전압원입니다. R은 저항입니다. LED는 발광 다이오드입니다. 

일반적으로 발광 다이오드(LED)는 동작 전압 범위가 있습니다. 일반적인 전압 범위는 1.8 ~ 2.0 [V]로 알려져 있습니다. LED 동작을 위해서는 LED 앞에 저항이 필요합니다. 그 이유는 LED를 보호하는 목적과 효율을 높이는 목적도 있습니다. 

예제와 함께 LED에 필요한 저항을 한 번 계산해보겠습니다. 

< LED 동작에 필요한 저항 계산 방법 >

1. 사용할 LED에 스펙을 먼저 확인합니다. 

저는 L-7113SGD (Green 565nm) LED를 선택했습니다. Datasheet를 확인해보니 동작 전압은 2.2[V]입니다. 그리고 소비 전류는 20m[A]입니다. 

2. 옴의 법칙을 사용합니다.  [ V(전압) = I(전류) * R(저항) ]

옴의 법칙은 V=I*R입니다. R=V/I입니다. 

저 위에 LED 동작 회로도를 보시면 직렬 회로입니다. 직렬 회로는 전류가 일정합니다. 

R=( 저항 전압 - LED 동작 전압 ) / LED 소비 전류 

R=(V-2.2) / 0.02      ※ 0.02A = 20mA

만약 전압원이 5 [V]라고 가정하면

R=(5-2.2) / 0.02

R=140 [Ω]

필요한 저항 값을 구했습니다. 140 [Ω]이 없으면 작은 저항 값을 사용해도 됩니다. 


■ 아두이노 LED 제어  On/Off

앞서 간략하게 LED 동작 회로도를 알아보았습니다. 다음은 아두이노로 LED를 제어해보겠습니다. 

먼저 앞서 공부를 했던 회로도처럼 아두이노도 동일하게 연결해보겠습니다. 

아두이노 led 회로도 - adu-ino led hoelodo
( 아두이노 LED 동작 제어 연결 방법 )

여기서 전압원은 아두이노라고 이해하시면 됩니다. 아두이노가 5V 전원을 LED에 공급합니다. 사진을 보시면 회로도와 동일하게 아두이노도 연결했습니다. 전압원(아두이노) - 저항 - LED 순서로 연결했습니다. 

다음은 아두이노를 실행하여 LED 제어 코드를 작성합니다. 

아두이노 led 회로도 - adu-ino led hoelodo
( 아두이노 LED 제어 코드 작성 )

int LED;                          /* 아두이노 출력 핀 설정을 위한 변수 선언 

LED=10;                         /* LED는 10번으로 지정 

pinMode(LED,OUTPUT);    /* LED에 해당하는 핀을 출력 핀으로 지정

저는 아두이노 10번 핀에 연결하였기 때문에 10으로 지정하였습니다. 

pinMode(핀번호, 모드)에서 모드에 INPUT을 쓰면 입력이고 OUTPUT은 출력입니다. 즉, INPUT은 전압을 입력받고 OUTPUT은 전압을 출력하라는 뜻입니다.

void loop ()                     /* 무한으로 반복 실행 

digitalWrite(LED,HIGH);      /*  전압 5V 출력 

delay(2000);                    /*   2초 유지

digitalWrite(LED,LOW);       /*  전압 0V 출력

delay(2000);                    /*   2초 유지 

digitalWrite(핀번호, 모드)에서 모드에 HIGH를 쓰면 전압을 5V 출력, LOW를 쓰면 0V 출력입니다. 아두이노에서는 직접적으로 HIGH, LOW를 사용하고 있습니다. 쉽게 접근할 수 있게끔 만든 것 같습니다. 개인적으로 예전에 LED를 제어하는 코드를 작성한 경험으로는 16진수를 이용하여 0xFF, 0x00 등을 사용했습니다.

코드를 작성하고 아두이노 메뉴에 동그라미 체크 표시를 클릭하면 컴파일이 완료됩니다. 

아두이노 led 회로도 - adu-ino led hoelodo
( 아두이노 업로드 )

컴파일이 완료되고 아두이노를 USB 케이블로 컴퓨터에 연결합니다. 그리고 화살표 동그라미를 클릭하면 작성한 코드가 아두이노로 업로드됩니다. 업로드가 완료되면 아두이노가 동작되고 LED가 깜박깜박 제어됩니다. 

아두이노 led 회로도 - adu-ino led hoelodo
( 아두이노 LED 제어&amp;nbsp;&amp;nbsp;On/Off )

예전에는 가장 기초적인 LED On/Off 제어를 왜 공부할까? 궁금했습니다. 실제 개발 업무를 경험해보니 LED 제어가 필요한 경우가 있습니다. 통신을 하는 시스템 경우에는 통신 상태를 알 수 있습니다. LED가 깜박이면 신호를 오실로스코프로 측정하지 않아도 통신이 정상 동작하는 것을 알 수 있습니다. 

전원 시스템에서는 LED를 통해 전원이 정상적으로 공급되고 있는지도 육안으로 간편하게 확인할 수 있습니다. 이것 이외에도 필요한 경우가 있습니다. 그리고 LED 제어에서 HIGH, LOW 상태를 이해하면 I/O(입출력) 포트를 응용해서 사용할 수 있습니다.

두서없이 글을 작성했습니다. 이해 부탁드립니다. 

긴 글 읽어주셔서 감사합니다. 

궁금한 점 있으신 분들은 댓글 남겨주시길 바랍니다.