MicroProcessor_SBC/Arduino

Arduino With Tinkercad Circuit - 005_아두이노와 LED 연결 시 저항을 사용하는 이유

LonleyEngineer 2021. 10. 27. 08:19
반응형

정말 원래 쓰려고 했던 글들은 못쓰고 계속 사족이 될 수 있는 글들만 쓰게 되네요.

그래도 중요하다고 생각한 부분이니 꼭 짚고 넘어가야할 것 같아서 기록해봅니다.

 

 

1. LED란?

  • LED는 Light Emitting Diode 의 약자입니다.
  • 한글로는 발광다이오드 라고 하죠. 말그대로 광(빛, Light)을 발(내뿜는, Emitting)하는 다이오드 입니다.
  • 쉽게 이야기 하면 LED의 다리인 애노드(Anode)와 캐소드(Cathode) 사이에 전류가 흐르면 LED구조에 의해 빛이 나오는 것입니다.
  • LED 사용시에는 2가지를 주의해야 합니다.
  • 첫 주의사항은 회로 구성시 애노드(Anode)에는 높은전압(양극, 플러스 등)를 연결하고 캐소드(Cathode)에는 낮은전압(음극, 마이너스, 접지 등)을 연결해주어야지 반대로 연결하면 다이오드의 특성 상 자기가 견딜 수 있는 한계치를 넘어가면 망가진다는 것입니다.
  • 두번째 주의 사항은 LED가 허용하는 전류 이상을 흘려 보내지 말라는 것입니다. LED는 특성 상 순방향으로 전류를 무한히 흘려 보내려는 성질이 있어서 자기 한계이상의 전류가 흐르더라도 다 통과시키다가 한계를 넘어가면 망가져버립니다.(사실 제가 LED 전문가도 아니라 LED구조나 이런 것을 설명하려고 한 것은 아니고 허용 전류 때문에 이 글을 쓴것입니다.)

 

2. LED를 아두이노에 연결할 때 왜 저항을 써야하나?

  • 이 내용에 관해서는 저도 궁금했던 부분이지만 인터넷상 많은 예제에서 그 이유를 알려주지 않고 그냥 아두이노에서 나오는 핀에서는 220~330Ω의 저항만 연결하라고 합니다.
  • 앞선 글에서 데이터시트와 회로도를 잘봐야 한다고 했습니다. 그 이유가 여기서도 적용이 됩니다.

  •  UNO 보드에 사용된 ATmega328P 의 데이터시트에 보면 전기적 특성에 위와같이 명시되어 있습니다. ‘DC Current per I/O Pin ------- 40.0mA’ 라고 써있죠. 그 말은 아두이노의 I/O Pin마다 DC전류 40mA가 흐른다는 뜻입니다.

 

  • 그런데 전자부품을 판매하는 인터넷 사이트를 보면 전구형 LED는 보통 20mA를 소비한다고 되어 있습니다.

 

 

  • LED의 특성상 전류를 무한히 흘려 보내려다 한계값 이상이 되면 망가진다고 했습니다. 그럼 5V, 20mA를 권장 허용치로 내세운 LED에 5V 40mA를 흘려 보내려고 한다면 당연히 LED가 망가지겠지요.

 

  • 그러면 이 문제를 어떻게 해결해야 할지 생각해보면 LED 쪽으로 흐르는 전류를 LED에 맞게 줄여주면 된다는 것은 누구나 알 수 있습니다. 이때 전류를 줄여주는데 사용되는 것이 바로 저항입니다. 저항은 전류가 흐르는 것을 방해한다고 해서 저항(Resister)인 것입니다.

 

  • 그럼 왜 220~330Ω을 사용하라고 하는 것일까요? 
  • 저도 언제 배웠는지 기억도 안나는 옴의 법칙을 들고 나와야 설명이 가능한데요. 전류(I)와 전압(V), 저항(R)의 관계를 설명하는 법칙입니다.

 

  • 즉 전류(I)는 같은 전압(V)이라면 분모에 있는 저항(R) 값이 커지면 작아진다는 것입니다. 그래서 40mA가 나오는 핀에 직결을 하지 않고 전류를 20mA 선까지 낮추기 위해 저항을 사용하는 것입니다.
  • 20mA = 5V/R 이 되어서 R=5V/0.02A=250Ω 이 나옵니다. 그런데 왜 220~330Ω을 사용할까요? 시중에서 쉽게 구할 수 있는 저항은 220Ω과 330Ω이기 때문에 그렇게 사용하는 것입니다. 220Ω은 사실 맞지 않지만 LED의 권장 전류가 20mA로 표기 되어 있으면 20mA가 살짝 넘어도 바로 망가지거나 하지는 않기 때문에 I=5V/220Ω 해서 약 22.7mA가 되어 근접하게 되니 그정도는 LED가 버틴다고 생각하고 사용하는 것입니다.
  • 또 한가지 알아야 할 점은 220Ω일 때 LED의 밝기는 가장 밝고 저항이 커지면 전류가 줄어 밝기가 조금 더 어두워진다는 점 이해하시길 바랍니다.

 

  • 그렇다면 5V / 20mA LED가 아니고 2.2V /20mA LED라면 어떨까요? 제대로 계산하자면 허용전류까지 낮추려면 R =V/I=5V/0.02A=250Ω이 나옵니다. 여기에 LED자체의 내부저항이 있어 R=2.2/0.02A=110Ω이 나옵니다. 그래서 250-110Ω=140Ω을 하면 됩니다. 쉽게 계산하려면 R=(입력전압-LED동작전압)/LED동작전류=(5-2.2)V/0.02A=140Ω을 사용하면 됩니다. 이때도 역시 220Ω을 사용하면 140Ω보다 큰 값이기 때문에 밝기는 줄더라도 LED가 터지지는 않습니다.

 

 

 

 

  • 가끔 인터넷에서 보면 아두이노에 LED 연결했는데 왜 LED가 안켜지냐, LED가 왜 망가졌는지 모르겠다며 사진을 올리면 저항 없이 직결한 사진을 볼 수 있습니다. 바로 이 부분을 모르고 LED를 사용했기 때문인데요. 저도 잘 몰랐던 부분을 정리하면서 알게되었고 또 이 글을 읽는 분들은 그부분을 알고 접근하면 좋겠습니다.
  • 여담으로 저도 이 글을 쓰면서 알게된 사실인데 아두이노의 아버지라고 불리는 이탈리아의 마시모 반지(Massimo Banzi)교수의 저서 Make : Getting started with Arduino에 삽입된 일러스트에서도 LED를 직결하려는 듯한 그림이 있어 잘못된 관념을 심어줬을 수 있다고 합니다. 초심자가 따라했다가 LED좀 날려먹었을 수 있을 것 같습니다.

마시모 반지의 저서 일러스트

 

 

※ 다음 글부터는 진짜 틴커캐드를 이용해서 시뮬레이션하고 코딩하는 과정에 대해 기술할 예정입니다.

 

※ 저는 비전문가이기 때문에 정확하게 쓰려고 노력해도 오류가 있을 수 있습니다. 오류가 있다면 날선 비판 보다는 댓글로 지적해주시면 감사히 받아들이도록 하겠습니다.

반응형