스킬캠퍼스

오늘 끝나면

GPIO와 회로

  • GPIO와 회로의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 GPIO와이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

핀으로 하드웨어를 제어 — 전압·저항의 현실 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

Physical AI · 06

GPIO와
회로

보드의 핀 하나로 바깥 세상을 켜고 끈다. 그 핀이 GPIO다.
저항 없이 전선만 꽂으면 부품이 탄다. 회로를 알아야 한다.

P.01Physical AI · 06

GPIO, 핀으로 바깥을 제어한다

소프트웨어가 물리 세계로 나가는 출구가 핀이다. 그 핀 이름이 GPIO, 곧 General Purpose Input Output이다.

Arduino Uno에는 디지털 핀 14개와 아날로그 입력 6개가 달려 있다. Raspberry Pi에는 40핀 헤더가 있다. 핀 하나하나를 코드로 켜고 끌 수 있다.

출력(Output)으로 쓰면 핀이 전압을 낸다. Arduino는 HIGH=5V,LOW=0V이고 Pi는 HIGH=3.3V다.
입력(Input)으로 쓰면 핀이 바깥 전압을 읽는다. 버튼이나 센서 신호를 받아들인다.

digitalWrite(13, HIGH) 한 줄이면 13번 핀에 5V가 걸린다.
여기에 LED를 달면 불이 켜진다.

핀 = 디지털 0/1 스위치
보드 핀, 코드로 켜고 끄기
digitalWrite(13, HIGH)
D13OUT
1 · HIGH
D12OUT
0 · LOW
D8IN
0 · LOW
D7IN
1 · HIGH

OUT은 전압을 낸다 · IN은 바깥 전압을 읽는다

P.02Physical AI · 06

옴의 법칙, 전압·전류·저항

회로를 다루려면 숫자 셋을 봐야 한다. 전압 V, 전류 I, 저항 R이다.

전압(V, 볼트)은 전기를 미는 힘이다. 물탱크의 수압 같은 것이다.
전류(I, 암페어)는 실제로 흐르는 양이다. 파이프를 지나는 물의 양에 해당한다.
저항(R, 옴 Ω)은 흐름을 막는 정도다. 파이프가 좁을수록 크다.

셋은 한 식으로 묶인다. V = I × R이다.
전류를 구하면 I = V / R이 된다.
전압이 같을 때 저항이 크면 전류는 작아진다. 반대도 같다.

이 식 하나로 회로의 거의 모든 걸 계산한다. 부품에 얼마가 흐를지 미리 알 수 있다.

V = I × R · 셋은 한 묶음
옴의 법칙
V = I × R
V
전압 · 볼트
미는 힘
I
전류 · 암페어
흐르는 양
R
저항 · 옴 Ω
막는 정도

전류를 구할 땐 I = V / R

저항이 크면 전류는 작아진다

P.03Physical AI · 06

저항이 없으면 탄다

LED를 핀에 그냥 꽂으면 안 된다. 곧 탄다.

LED는 켜지면 자기 양단에 약 2V를 떨군다(순방향 전압 Vf). 빨강은 약 1.8~2.2V다.
5V 핀에 LED만 달면 남는 3V가 거의 저항 없이 걸린다. 그러면 전류가 폭주한다.

그래서 직렬로 저항을 끼운다. 남는 전압을 저항이 받아 전류를 제한한다.
식으로는 I = (Vcc − Vf) / R이다.
5V 핀, Vf=2V, 저항 220Ω이면 전류는 (5−2)/220 ≈ 13.6mA가 된다. LED가 좋아하는 안전한 값이다.

저항을 너무 키우면(예: 10kΩ) 전류가 0.3mA로 떨어져 불이 흐릿해진다.
너무 작거나 없으면 전류가 한계(보통 20mA)를 넘겨 LED가 타거나 핀이 망가진다. 적당한 값이 핵심이다.

LED에 직결 = 과전류 = 사망
5V · LED(Vf=2V) · 저항값에 따른 전류
저항 R전류 I결과
없음 (0Ω)≈ ∞
47Ω64mA
220Ω13.6mA안전
1kΩ3mA흐림
10kΩ0.3mA거의 꺼짐

LED 한계 ≈ 20mA · 넘으면 탄다

P.04Physical AI · 06

저항값을 바꿔 직접 태워본다

5V, 220Ω, LED 직렬 회로다. 전류는 I = (5 − 2) / R로 계산된다.

저항을 키우면 전류가 줄어 LED가 흐려지고, 줄이면 밝아진다.

저항을 충분히 낮추면 전류가 LED 한계(20mA)를 넘어 LED가 탄다. 실제 회로에서 일어나는 일이다.

저항 ↓ → 전류 ↑ → 밝기 ↑ → 사망
LED 회로 시뮬 · 5V, R, LED
5V220ΩLED
저항 R, 밀어 본다220Ω
옴의 법칙, I = (5 − 2) / R
전류 I
13.6 mA
밝기
68 %
전류 vs 한계 20mA20mA

정상 점등 · 안전 구간

저항을 낮추면 전류가 오르고 밝기도 오른다. 너무 낮추면 탄다.

P.05Physical AI · 06

풀업·풀다운, 입력은 떠 있으면 안 된다

입력 핀에는 함정이 있다. 아무것도 안 연결하면 값이 0도 1도 아닌 채로 떠 있는다(플로팅).

버튼만 핀에 달면 안 눌렀을 때 핀이 공중에 뜬다. 주변 전기 잡음에 따라 0과 1을 멋대로 오간다. 누르지도 않았는데 눌렸다고 읽힌다.

그래서 기준을 잡아주는 저항을 끼운다.
풀업(pull-up)은 핀을 저항으로 전원에 묶는다. 평소엔 1이고, 누르면 0으로 떨어진다(GND로).
풀다운(pull-down)은 핀을 저항으로 GND에 묶는다. 평소엔 0이고, 누르면 1이 된다.

외부 저항 대신 칩 내부 풀업을 켜도 된다. Arduino는 INPUT_PULLUP 한 줄, Pi는 GPIO.PUD_UP이다.
핀 하나 읽는 데도 저항으로 기준을 세워야 안정적이다.

Q. LED에 저항을 직렬로 다는 이유는? (전압을 올리려고 · 전류를 제한해 소자가 타지 않게 · LED를 더 밝게 · 색을 바꾸려고)정답은 전류를 제한해 소자가 타지 않게다.
LED는 자체 저항이 거의 없어 직결하면 과전류가 흘러 곧 탄다.
직렬 저항이 남는 전압(Vcc − Vf)을 받아 전류를 안전한 값(보통 10~20mA)으로 떨군다.
밝기는 그 전류의 부수 효과일 뿐이고, 핵심 목적은 소자 보호다.
안 눌렀을 때 0인지 1인지 정해주기
입력 핀을 0/1로 고정하기
저항 없음

떠 있다 · 잡음에 0/1 흔들린다

풀업

누르면 0 (GND로)

풀다운

누르면 1 (5V로)

Arduino: INPUT_PULLUP · Pi: GPIO.PUD_UP

3줄 요약

  1. 1핀으로 하드웨어를 제어 — 전압·저항의 현실
  2. 2GPIO와 회로은 하드웨어 → 제어·비전 → 로보틱스·RL → LLM 연동 → 자율주행·프로젝트 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

GPIO와

핀으로 하드웨어를 제어 — 전압·저항의 현실

센서

빛·거리·온도 같은 물리 신호를 숫자로 바꾸는 부품

액추에이터

전기 신호를 움직임으로 바꾸는 부품(모터 등)