GPIO, Digital Input / Output

노혀누·2024년 9월 10일
0

IoT: Internet of Things

목록 보기
1/1
post-thumbnail

1. 디지털의 이해


세상은 디지털아날로그로 이루어져 있다. 아날로그는 연속적인 신호를 나타내며, 우리 주변의 대부분의 물리적 현상을 아날로그로 볼 수 있다. 반면, 디지털은 연속적인 값을 이산적인 값으로 변환하여 처리하는 방식이다.

아날로그 세상

  • Real World
  • 애매모호
  • 노이즈
  • 복제한계
  • 필름 카메라

디지털 세상

  • 논리 세상
  • 명확
  • Noiseless
  • 무한 복제 가능
  • 디지털 카메라

이 두 세상을 변환해주는 것이 각각 ADC(Analog to Digital Converter), DAC(Digital to Analog Converter) 이다.

아날로그디지털디지털
전기신호논리값코드값
2.3~3.3V1 (HIGH)0 이외의 값
0~1V0 (LOW)0

2. 저항과 LED


저항

저항은 전류의 흐름을 제한하는 전기 소자로, 저항 값은 “오옴(Ω)“으로 측정된다. 저항은 저항에 그려진 색띠를 통해 저항 값을 확인할 수 있다.

예를 들어, 4-band 저항에서 저항 값은 다음과 같이 확인할 수 있다.

  • 첫 번째 색띠: 1 (갈색)
  • 두 번째 색띠: 0 (검정색)
  • 세 번째 색띠: ×10^2 (빨간색, 승수)
  • 네 번째 색띠: ±5% (금색, 오차범위)

LED

LED란 발광다이오드(Light-Emitting Diode)로, 전류가 흐를 때 빛을 내는 소자이다. 일반적인 다이오드와 마찬가지로 순방향 전압이 인가되었을 때 전류가 흘러 빛을 방출한다.

LED는 단방향성으로 양극(Anode)과 음극(Cathode)이 있으며 전류는 +에서 -로 흐른다.

LED의 스펙은 다음과 같다:

  • 정격 순방향 전류: 20mA
  • 최대 순방향 전류: 30mA
  • 순방향 전압 강하: 약 1.8~2V
  • 소비 전력: 105mW
  • 발광 세기: 150~200mcd (밀리칸델라, 발광량 단위)

3. 옴의 법칙


옴의 법칙(Ohm’s Law)은 전기 회로에서 전압(V), 전류(I), 저항(R) 간의 관계를 나타내는 기본적인 법칙이다. 이 법칙은 다음과 같이 정의된다:

V=I×RV=I \times R
  • V는 전압(Voltage)을 나타내며, 단위는 볼트(V)
  • I는 전류(Current)를 나타내며, 단위는 암페어(A)
  • R은 저항(Resistance)을 나타내며, 단위는 오옴(Ω)

옴의법칙 예제

  1. 전지에 은박지를 연결할 때 왜 불이 붙을까?

    전지의 플러스극과 마이너스극이 저항이 거의 없는 도체로 직접 연결되었을 때 전류가 크게 흘러 short circuit 현상이 발생해 불이 붙는다.

  2. 회로의 저항이 100Ω이고 배터리의 전압이 10V일 때, 회로에 흐르는 전류는?

    I=VR=10100=0.1A=100mAI = \dfrac{V}{R} = \dfrac{10}{100} = 0.1A = 100mA
  3. 만약 회로에서 최대 허용 전류가 500mA라면, 허용할 수 있는 최대 전압은?

    V=I×R=500mA×100=50VV = I \times R = 500mA \times 100 = 50V

옴의법칙과 LED

아래 그래프는 다양한 색상의 LED가 서로 다른 순방향 전압(Forward Voltage)에서 작동함을 보여준다. 또한 LED는 LED의 전압과 전류의 관계가 직선적으로 증가하지 않는 비선형적 특성을 갖고 있다.

  • 적외선(Infra-red) LED는 약 1V 이하에서 작동
  • 적색(Red) LED는 약 1.8~2V에서 작동
  • 주황/호박색(Orange/Amber) LED는 약 2V에서 작동
  • 파란색(Blue) LED는 더 높은 전압(약 3~4V)에서 작동

이렇듯 전류가 특정 한계(그래프에서 약 20mA)를 넘으면 LED가 손상될 수 있으므로, 적절한 저항을 사용하여 전류를 제한하는 것이 중요하다.

옴의법칙 LED 예제

  1. 최대 허용 전류가 20mA일 때 LED 종류별 최대 허용 전압은?

    LED의 종류에 따라 필요한 순방향 전압이 다르다. 그래프에 따르면 각 색상의 LED는 최대 20mA의 전류에서 서로 다른 순방향 전압을 필요로 한다.

    • 적외선(Infrared): 약 1.2V
    • 적색(Red): 약 1.8V
    • 주황/호박색(Orange/Amber): 약 2V
    • 파란색(Blue): 약 3~4V
  2. LED 사용 시 주의할 점은?

    • 최대 전류 제한: LED는 과도한 전류가 흐르게 되면 손상될 수 있으므로 저항 등을 이용해 전류를 제한해야 한다
    • 역전압 방지: LED는 한 방향으로만 전류가 흐르는 다이오드이므로, 역방향 전압을 걸 경우 손상될 수 있다.

전압의 분배 및 예제

회로에서 공급된 총 전압(5V)는 저항(R)과 LED의 순방향 전압(V_L)으로 분배된다. 옴의 법칙을 이용해 아래 문제를 풀어보자.

5V=VR+VL5V =V_R + V_L
  1. 적색 LED에 18mA가 흐르게 하기 위해서는 저항값을 얼마로 해야할까?

    LED에 흐르는 전류가 18mA가 되도록 하려면, 저항에 걸리는 전압과 전류를 이용해 저항값을 계산할 수 있습니다. 수식은 다음과 같다.

    R=(LED)I=(5V1.8V)18mA=3.2V0.018A=177.78R= \dfrac{(-LED)}{I}=\dfrac{(5V-1.8V)}{18mA}=\dfrac{3.2V}{0.018A}=177.78
  2. 이 저항을 백색 LED에 사용할 경우 전류는?

    옴의 법칙을 이용해 백색 LED(순방향 전압: 3.2V)에 흐르는 전류를 구하면 다음과 같다.

    VR=1.8VI=VRR=[1.8V][178]=0.0101A=10.1mAV_R=1.8V \\ I=\dfrac{V_R}{R}=\dfrac[1.8V][178]=0.0101A=10.1mA
  3. 배터리의 전압이 3.3V 일 때의 전류는?

    적색 LED의 경우

    • V_R = 3.3V - 1.8V = 1.5V이다.
    • 이 때 저항에 걸리는 전압으로부터 흐르는 전류 I = 1.5V / 178 = 8.43mA

    백색 LED의 경우

    • V_R = 3.3V - 3.2V = 0.1V이다.
    • 이 때 저항에 걸리는 전압으로부터 흐르는 전류 I = 0.1V / 178 = 0.56mA

4. ESP32 GPIO에 적용


지금까지 배운 옴의 법칙과 전압의 분배 개념을 실제 ESP32 회로에 적용해보자. GPIO Port는 16번을 사용하고 VCC = 3.3V 사용을 가정한다.

포트에서 흘릴 수 있는 전류는 보통 최대 20m라고 하지만 안전하게 5~10mA 정도로 정한다.

  • Red LED: 1.8V
  • 저항 소모: 1.5V

이 경우 LED를 ON하기 위해서 저항값을 얼마로 해야할까?

R=VI=3.31.80.005 0.010=150 300R = \dfrac{V}{I} = \dfrac{3.3-1.8}{0.005 \char`~ 0.010} = 150\char`~300

보통 220Ω ~ 330Ω 의 저항을 사용하므로 앞 두 띠의 색이 갈색인 저항(220Ω)을 찾아 사용하면 된다.

!

5. Digital Tact Switch


Tact Switch란?

Tact SwitchPush Button 형태로, 버튼을 누르면 전류의 흐름을 제어하는 스위치이다

  • 평소에는 회로가 끊겨 있어 전류가 통하지 않지만, 버튼을 누르면 회로가 연결되어 전류가 흐르게 된다
  • 스위치의 각 다리는 연결 상태에 따라 다르게 작동한다. 예를 들어, 다리 1-2와 3-4는 평상시에 연결되어 있고, 버튼을 누르면 1-2-3-4 모두가 연결된다

Pull Up

Pull Up 방식은 입력이 없는 상태에서 HIGH(논리 1) 신호가 기본 상태로 유지되게 하는 방식이다

  • 스위치가 눌리지 않았을 때는 입력 핀이 VCC(전원)에 연결되어 HIGH 상태가 유지된다
  • 스위치를 누르면 회로가 접지(GND)와 연결되어 LOW(논리 0) 신호를 보낸다
  • 저항을 사용하여 전류를 제한하고, Floating 상태(입력이 불확실한 상태)를 방지하기 위해 pull-up 저항을 사용한다
  • 예시 저항값은 10kΩ

Pull Down

Pull Down 방식은 입력이 없는 상태에서 LOW(논리 0) 신호가 기본 상태로 유지되게 하는 방식이다

  • 스위치가 눌리지 않았을 때는 입력 핀이 접지(GND)에 연결되어 LOW 상태가 유지된다
  • 스위치를 누르면 회로가 VCC(전원)와 연결되어 HIGH(논리 1) 신호를 보낸다
  • 이 방식에서도 Floating 상태를 방지하기 위해 pull-down 저항을 사용하며, 저항값은 일반적으로 10kΩ이다
profile
나는 별이 되고 싶었던 게 아니에요

0개의 댓글