# 아두이노 기초 공부
아두이노 1 / 1
5 min read
목차
아두이노 기초 공부 (시리즈: 아두이노)
아두이노에서 LED 하나만 반짝거리게 하려 해도 알아야 할 기본 원리가 있다. 보드 자체에 대한 자료는 이미 많기 때문에, 여기서는 회로와 버튼 동작 원리를 중심으로 정리했다.
LED 켜지는 기본 원리
아두이노에서 LED를 켜는 기본 회로는 다음과 같다.
디지털 핀 (HIGH, 5V) → 저항 → LED(Anode → Cathode) → GND (0V)디지털 핀 (HIGH, 5V) → LED(Anode → Cathode) → 저항 → GND (0V)- 디지털 핀에 HIGH(5V)가 출력되면, 핀과 GND 사이에 전압 차이가 생긴다.
- 이 전압 차이로 전류가 흐르고, LED를 통과하면서 불빛이 켜진다.
- LED는 전류에 약하기 때문에 반드시 저항을 직렬로 연결해야 한다.
흔히 “저항은 +쪽에 달아야 LED가 안전하다”고 생각할 수 있지만, 직렬 회로에서는 저항의 위치(앞/뒤)는 상관없다. 중요한 건 LED와 저항이 일렬로 연결되어 있어 전류가 제한된다는 점이다.
버튼 회로에서 10kΩ 저항을 쓰는 이유
버튼은 단순히 회로를 연결하거나 끊는 스위치 역할만 한다. 하지만 버튼이 눌리지 않았을 때는 입력 핀이 공중에 둥둥 떠서(floating) HIGH/LOW를 제대로 읽지 못한다. 그래서 풀업 저항(pull-up) 또는 **풀다운 저항(pull-down)**을 반드시 달아줘야 한다. 저항은 입력 핀을 기본적으로 HIGH 또는 LOW 상태로 안정시켜주는 안전핀 역할을 한다.
1. 저항이 없다면?
- 버튼 안 눌림 → 입력 핀이 floating → HIGH/LOW 값이 매번 달라짐 → 오동작 발생
2. 저항이 너무 작다면? (예: 220Ω)
- 버튼이 안 눌려도 불필요한 전류가 계속 흐름 → 전력 낭비
- 회로 전환 시 속도 저하 가능
3. 저항이 너무 크다면? (예: 1MΩ 이상)
- 전류가 너무 약해 노이즈에 쉽게 흔들림 → HIGH/LOW 판별 불안정
4. 그래서 10kΩ이 표준 ✅
- 5V / 10kΩ = 약 0.5mA → 전력 낭비 거의 없음
- 노이즈에도 안정적으로 HIGH/LOW 판별 가능
- 아두이노/라즈베리파이 등 마이크로컨트롤러 회로에서 표준처럼 쓰이는 값
정리
- 버튼 회로에는 풀업/풀다운 저항이 반드시 필요하다.
- 저항 값이 작으면 전력 낭비, 크면 노이즈에 취약하다.
- 10kΩ은 전력 효율과 안정성 사이의 절충점이라 가장 널리 쓰인다.
Pull-down & Pull-up 버튼 차이
실험 회로를 보면,
- b_btn (13번 핀) → 저항을 GND에 연결 → Pull-down 방식
- w_btn (12번 핀) → 저항을 +5V에 연결 → Pull-up 방식
이 상태에서 시리얼 모니터에 초기값을 출력하면:
b_btn : 0w_btn : 1- Pull-down은 기본적으로 0(LOW) → 버튼 누르면 HIGH(1)
- Pull-up은 기본적으로 1(HIGH) → 버튼 누르면 LOW(0)
즉, 풀업/풀다운은 버튼이 안 눌렸을 때의 기본 상태가 반대라는 차이가 있다.