스킬캠퍼스

오늘 끝나면

마이크로컨트롤러

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

실습 미션

Arduino 첫걸음 — 코드로 핀에 전기를 흘리다 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

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

Physical AI · 02

마이크로
컨트롤러

Arduino는 작은 칩 하나에 핀이 달린 컴퓨터다.
코드를 올리면 핀에 전기를 켜고 끈다.
LED 깜빡이기가 이 세계의 hello world다.

P.01Physical AI · 02

Arduino = 작은 칩 + 핀

Physical AI의 첫 부품은 거대한 GPU가 아니라 손바닥만 한 보드다.

Arduino는 마이크로컨트롤러(MCU) 한 칩을 중심으로 만든 보드다.
대표 모델 Arduino Uno는 ATmega328P 칩을 쓴다. 8비트, 16MHz, 메모리는 KB 단위다.

이 작은 칩 안에 CPU와 메모리, 입출력이 다 들어있다. 컴퓨터 한 대가 칩 하나로 압축된 셈이다.
화면에 영상을 그리는 게 아니라 핀에 전기를 켜고 끄는 게 일이라서 느려도 된다.

보드 가장자리에 핀(pin)이 줄지어 박혀 있다.
이 핀에 LED와 센서, 모터를 꽂아 바깥 세상과 연결한다.

보드 한 장 = 칩 + 핀 줄
Arduino Uno · 한 장 안내도
디지털 핀 (켜고 끄는 핀)
13
12
11
10
9
8
중앙 칩 · MCU
ATmega328P
8-bit · 16 MHz · CPU+메모리+I/O
아날로그 핀 (센서 읽는 핀)
A0
A1
A2
A3
A4
A5

파란 13번 핀이 보드에 달린 LED와 연결돼 있다

P.02Physical AI · 02

핀에 전기를 흘리다, digitalWrite

코드로 핀을 움직이는 명령은 딱 두 가지 상태다. HIGH 아니면 LOW다.

digitalWrite(13, HIGH)는 13번 핀에 전기를 흘려라, 즉 켜라는 뜻이다.
digitalWrite(13, LOW)는 끊어라, 즉 꺼라는 뜻이다.

디지털 핀은 두 값뿐이다. HIGH는 약 5V, LOW는 0V다.
중간값은 없다. 켜짐과 꺼짐, 1과 0의 세계다.

그 전에 핀을 출력으로 정해줘야 한다.
pinMode(13, OUTPUT)으로 “이 핀은 내보내는 핀”이라고 한 번 선언한다.
이 두 명령만 알면 LED와 부저, 릴레이를 다 켤 수 있다.

HIGH = 5V 켬 · LOW = 0V 끔
핀 = 두 값뿐 · HIGH 아니면 LOW
전기를 흘린다≈ 5V

digitalWrite(13, HIGH)

핀이 1이 되면 LED가 켜진다

전기를 끊는다0V

digitalWrite(13, LOW)

핀이 0이 되면 LED가 꺼진다

중간값은 없다. 1과 0의 세계다
P.03Physical AI · 02

LED 깜빡이기 = hello world

모든 첫 Arduino 코드는 LED 하나를 깜빡인다. 이게 임베디드의 hello world다.

Arduino 코드는 두 칸으로 나뉜다.
setup()은 처음 한 번만 도는 칸이고, 여기서 pinMode로 핀을 정한다.
loop()은 전원이 켜진 동안 끝없이 도는 칸이다.

loop 안에서 켜고, 잠깐 멈추고, 끄고, 다시 잠깐 멈추기를 반복한다.
멈춤은 delay(1000)이고, 1000밀리초, 즉 1초 동안 그대로 있으라는 뜻이다.
이 켜고 끄고 기다리는 리듬이 눈에는 깜빡임으로 보인다.

오른쪽 코드가 가장 흔한 Blink 예제다. 숫자 하나(delay)만 바꿔도 깜빡이는 속도가 달라진다.

setup 한 번 · loop 무한 반복
Blink · 가장 흔한 첫 코드
1void setup() {
2  pinMode(13, OUTPUT);
3}
4void loop() {
5  digitalWrite(13, HIGH);
6  delay(1000);
7  digitalWrite(13, LOW);
8  delay(1000);
9}
setup()

처음 한 번 돌며 핀을 정한다

loop()

전원 동안 무한 반복

P.04Physical AI · 02

직접 깜빡여 보기

오른쪽은 가상 Arduino다. 핀을 직접 켜고 꺼 본다.

digitalWrite 버튼으로 13번 핀을 HIGH나 LOW로 토글하면 위의 가상 LED가 즉시 켜지고 꺼진다.
RUN loop()을 누르면 delay 값만큼 쉬며 자동으로 깜빡인다. delay 슬라이더를 줄이면 빨라지고 키우면 느려진다.

코드 한 줄의 숫자가 물리 세계의 리듬을 정한다.
이 작은 토글이 모터 회전과 로봇 관절, 자율주행 신호의 가장 밑바닥 단위다.

HIGH/LOW 토글 · delay로 자동 반복
가상 Arduino · 13번 핀 제어
핀 13 상태
LOW
0 · 0V
마지막 명령

digitalWrite(13, LOW);

delay( ms )500

작을수록 빨리 깜빡임

점등 횟수0
P.05Physical AI · 02

핀 하나가 세상을 움직인다

LED 깜빡이기는 장난 같지만, 원리는 끝까지 똑같다.

같은 digitalWrite(HIGH)로 LED 대신 릴레이를 켜면 전등이 켜진다.
모터 드라이버를 켜면 바퀴가 돌고, 부저를 켜면 소리가 난다.

켜고 끄는 속도를 아주 빠르게 조절하면(PWM) 밝기와 속도까지 부드럽게 다룬다.
이 강에서는 켜짐과 꺼짐만 봤고, 그 위에 센서(3강)와 제어(PID), 강화학습이 차곡차곡 쌓인다.

Q. Arduino에서 13번 핀에 연결된 LED를 켜는 명령은? (digitalRead(13) · digitalWrite(13, HIGH) · delay(13) · pinMode(13, INPUT))정답은 digitalWrite(13, HIGH)다.
digitalWrite(핀, HIGH)가 그 핀에 전기를 흘려 LED를 켠다.
digitalRead는 읽기, delay는 기다리기, pinMode(.., INPUT)은 입력으로 쓰겠다는 선언이고, 켜는 명령이 아니다.
같은 digitalWrite · 부품만 바뀐다
digitalWrite(HIGH) 하나로
핀에 꽂은 부품켜지면
LED불빛이 강에서 다룬다
부저소리켜면 삑
릴레이전등·가전큰 전류 스위치
모터 드라이버바퀴 회전로봇 이동

명령은 그대로고 핀에 꽂은 부품만 바뀐다

3줄 요약

  1. 1Arduino 첫걸음 — 코드로 핀에 전기를 흘리다
  2. 2마이크로컨트롤러은 하드웨어 → 제어·비전 → 로보틱스·RL → LLM 연동 → 자율주행·프로젝트 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

마이크로컨트롤러

Arduino 첫걸음 — 코드로 핀에 전기를 흘리다

센서

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

액추에이터

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