푸시 버튼 스위치 배선 완벽 가이드: 종류, 회로, 아두이노 연동, 실전 팁
푸시 버튼 스위치란?
누르는 동안만 접점이 도통(또는 차단)되는 순간 동작 스위치입니다. 기계식 접점으로 촉각 피드백(클릭감)을 주며, 회로 제어, 사용자 입력, 비상 정지, 모드 전환 등 전자 기기의 기본 인터페이스입니다.
주요 종류 및 동작 방식
| 종류 | 동작 | 상태 유지 | 주 용도 |
| 모멘터리 (Momentary) | 누르는 동안만 ON | 아니오 (놓으면 복원) | 키보드, 리모컨, 인터럽트 입력 |
| 래칭/얼터네이트 (Latching) | 누를 때마다 토글 | 예 (기계적 잠금) | 전원 스위치, 모드 선택 |
| 푸시-투-메이크 (NO, Normally Open) | 평상시 열림, 누르면 닫힘 | - | 일반 제어, 스타트 버튼 |
| 푸시-투-브레이크 (NC, Normally Closed) | 평상시 닫힘, 누르면 열림 | - | 비상 정지, 안전 인터록 |
| 이중 동작 (Double Action) | 1단: NO, 2단: NC | - | 조이스틱, 복합 제어 |
| 조명/LED 내장 | 상태 표시 LED 내장 | 모멘터리/래칭 모두 | 패널 표시, 상태 피드백 |
| 방수/방진 (IP67+) | 밀폐 구조 | - | 옥외, 산업, 자동차 |
| PCB 장착 (타クト 스위치) | 소형, 수평/수직 장착 | 모멘터리 | 보드 레벨 사용자 입력 |
| 패널 마운트 | 나사/너트로 패널 고정 | 모멘터리/래칭 | 전면 패널 UI |
주요 사양 (일반 택트 스위치 기준)
- 정격: 50mA 24V DC (신호용), 고전력용 별도 존재
- 접촉 저항: ≤100mΩ
- 절연 저항: ≥100MΩ (100V DC)
- 내전압: 250V AC 1분
- 조작력: 0.55~0.69N
- 바운스 시간: ≤5ms
- 수명: 10만~100만 회 (기계적), 1만~10만 회 (전기적)
- 동작 온도: -20°C ~ +70°C
내부 구조 및 동작 원리
- 액추에이터(버튼 캡) → 스프링 → 가동 접점 → 고정 접점
- 누름: 스프링 압축 → 가동 접점이 고정 접점과 접촉 → 회로 폐합
- 놓음: 스프링 복원 → 접점 분리 → 회로 개방
- 래칭 타입: 캠/래치 기구로 누름 위치 고정, 재누름 시 해제
배선 기초: 5핀 조명 푸시 버튼 (19mm 메탈, 래칭)
핀 구성: NO(평상시 열림), NC(평상시 닫힘), C(공통/COM), LED+, LED-
배선도 (부하 제어 + LED 표시)
전원 + (예: 12V)
│
[부하 +] ──────────────────┐
│
C (공통) ──────────────────┤
│
NO ──────── [부하 -] ──────┘ (누르면 부하 ON, LED ON)
LED+ ──────── [부하 +] (또는 별도 전원)
LED- ──────── [부하 -] (또는 GND)
※ NC 사용 시: NO 대신 NC 연결 → 누르면 부하 OFF
배선 단계
- C(공통/초록) → 전원 + 또는 부하 + 측 공통 연결
- NO(파랑) → 부하 + 단자 연결 (또는 부하 - 측 스위칭 시 부하 - 와 연결)
- LED+(빨강) → 전원 + (또는 부하 +와 공통)
- LED-(검정) → 전원 - (또는 부하 -와 공통)
- NC(노랑) 미사용 시 절연 처리
아두이노/MCU 연동 (모멘터리 택트 스위치, 풀다운/풀업)
풀다운 저항 구성 (권장, Active High)
5V
│
[스위치]
│
├──→ 디지털 핀 (예: D2)
│
[10kΩ 풀다운]
│
GND
- 스위치 열림: 핀 → GND 풀다운 → LOW 읽힘
- 스위치 닫힘: 핀 → 5V 직결 → HIGH 읽힘
- 풀다운 저항: 1kΩ~100kΩ (10kΩ 표준), 전류 소모 vs 노이즈 내성 트레이드오프
풀업 저항 구성 (Active Low, 내부 풀업 활용 가능)
디지털 핀 (D2)
│
[스위치]
│
GND
pinMode(2, INPUT_PULLUP); // 내부 20~50kΩ 풀업 활성화
// 열림: HIGH, 닫힘: LOW
아두이노 코드: 디바운싱 포함
const int btnPin = 2;
const int ledPin = 13;
bool lastState = HIGH; // 풀업 기준
unsigned long lastChange = 0;
const unsigned long debounceMs = 50;
void setup() {
pinMode(btnPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
}
void loop() {
bool reading = digitalRead(btnPin);
if (reading != lastState) {
lastChange = millis();
}
if (millis() - lastChange > debounceMs) {
if (reading == LOW) { // 눌림 (풀업 기준)
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
lastState = reading;
}
하드웨어 디바운싱 (RC 필터)
스위치 ──→ [1kΩ] ──→ [0.1μF] ──→ GND
│
MCU 핀
시정수 τ = 1k × 0.1μF = 100μs → 기계적 바운스(ms) 필터링
실전 배선 팁 & 트러블슈팅
| 문제 | 원인 | 해결 |
| 입력이 떠다님 (랜덤 HIGH/LOW) | 풀업/풀다운 저항 없음 | 외부 저항 또는 내부 INPUT_PULLUP 필수 |
| 한 번 누르면 여러 번 감지 | 접점 바운스 (기계적 진동) | 소프트웨어 디바운싱(50ms) 또는 RC 필터 |
| LED가 안 켜짐 | 극성 역결선, 전압 불일치, 저항 없음 | LED 순방향 전압 확인, 직렬 저항(220Ω~1kΩ) 필수 |
| 스위치 발열/용착 | 정격 초과 전류 (모터/램프 직결) | 릴레이/트랜지스터/MOSFET으로 부하 분리 |
| 작동 불능 | 납땜 불량, 단선, 잘못된 핀 연결 | 멀티미터 통전 테스트 (스위치 단독) |
응용 예시
- 비상 정지 버튼: NC 타입, 빨간 버섯형 헤드, 강제 개방 접점(IEC 60947-5-5), 안전 릴레이와 연동
- 전원 온/오프: 래칭 타입, 소프트 전원 제어 (MCU가 감지 후 파워 홀드/차단)
- 로터리 인코더 내장 버튼: 회전 + 푸시 복합 입력
- 매트릭스 키패드: 행/열 스캔으로 다수 버튼 소수 핀으로 읽기
- 웨이크업 소스: 딥슬립 모드에서 외부 인터럽트/핀 변경 인터럽트로 깨어남
심볼 (회로도)
- NO (평상시 열림): 간극 있는 접점
- NC (평상시 닫힘): 접촉된 접점
- 래칭: 접점에 잠금 표시(작은 사각형/화살표)
- 조명 내장: 스위치 심볼 옆 LED 심볼 병기
결론
푸시 버튼은 가장 기본적이지만, 바운스 처리, 풀업/풀다운, 정격 초과 방지, 배선 실수 등 초보자가 자주 실수하는 포인트가 많은 부품입니다. 내부 풀업(INPUT_PULLUP) 활용과 소프트웨어 디바운싱(50ms 표준)만 확실히 익히면 90% 이상 문제는 해결됩니다. 고전력 부하는 반드시 반도체 스위치/릴레이로 분리하고, 안전 관련(비상 정지)에는 인증된 NC 타입 강제 개방 접점 스위치를 사용하세요.