스위치를 디지털 입력 핀에 연결할 때 가장 흔한 실수는 스위치 한쪽만 입력 핀에, 다른 쪽은 접지에 달고 끝내는 것입니다. 스위치를 눌렀을 때는 Low가 되지만, 누르지 않았을 때 입력 핀은 어디에도 연결되지 않은 "떠 있는(floating)" 상태가 되어 High와 Low를 오가며 엉뚱하게 동작합니다. 이 문제를 풀업·풀다운 저항이 해결합니다. 이 글에서는 풀업·풀다운의 원리, 저항값 고르기, 4핀 택트 스위치의 내부 연결, 채터링(바운스)과 대처법을 설명합니다.
입력 핀이 떠 있으면 생기는 일
CMOS 입력 핀은 임피던스가 매우 높아 주변 잡음(손가락 근처, 인접 배선의 신호)만으로도 전압이 변합니다. 아무것도 연결하지 않으면 출력이 무작위로 바뀌거나, 중간 전압에 머물러 IC가 불필요한 전류를 흘립니다. 입력 핀은 항상 High나 Low 중 하나로 확실히 연결되어 있어야 합니다.
풀업과 풀다운
- 풀업 저항: 입력 핀을 저항을 거쳐 +V에 연결합니다. 스위치는 입력 핀과 GND 사이에 둡니다. 누르지 않으면 High, 누르면 GND로 당겨져 Low가 됩니다.
- 풀다운 저항: 입력 핀을 저항을 거쳐 GND에 연결합니다. 스위치는 입력 핀과 +V 사이에 둡니다. 누르지 않으면 Low, 누르면 High가 됩니다.
디지털 회로에서는 풀업 방식이 더 널리 쓰입니다. 접지에 연결하는 스위치는 배선이 쉽고, 많은 마이크로컨트롤러가 내부 풀업 저항을 제공하기 때문입니다.
저항값 고르기
| 값 | 특징 |
|---|---|
| 1kΩ ~ 4.7kΩ | 빠르고 잡음에 강하지만 누를 때 전류가 큼(5V에서 1~5mA) |
| 10kΩ | 가장 흔한 선택. 누를 때 전류 0.5mA |
| 47kΩ ~ 100kΩ | 전류 소모가 적어 배터리 회로에 알맞지만 잡음에 약함 |
스위치를 눌렀을 때 저항을 통해 전원 전압 ÷ 저항 만큼의 전류가 흐릅니다(5V, 10kΩ이면 0.5mA). 입력 핀의 누설 전류보다 충분히 커야 하므로 너무 큰 저항(수 MΩ)은 피하세요. I2C처럼 신호가 빠르게 변하는 선은 풀업 값이 속도에 영향을 줍니다(I2C 배선 기초).
4핀 택트 스위치의 내부 연결
작은 누름 스위치(택트 스위치)는 핀이 네 개이지만 접점은 하나입니다. 몸체의 한 변에 있는 두 핀은 내부에서 항상 이어져 있고, 버튼을 눌러야 맞은편 쌍과 연결됩니다.
- 대각선에 있는 두 핀(예: 1번과 4번)을 쓰면 방향을 헷갈려도 항상 올바른 접점이 됩니다.
- 같은 변의 두 핀만 쓰면 누르지 않아도 항상 연결된 상태라서 스위치가 고장 난 것처럼 보입니다.
- 방향이 헷갈리면 멀티미터를 도통 모드로 놓고 핀 쌍을 확인하세요. 누르지 않았을 때 울리는 쌍이 같은 변입니다.
패턴도의 택트 스위치(소 3×4칸, 대 4×4칸)도 긴 쪽 두 핀을 서로 연결해 두고 짧은 쪽이 눌림 접점이 되도록 실제 부품처럼 모델링되어 있습니다.
채터링(바운스)
기계식 스위치는 접점이 붙을 때 몇 ms 동안 여러 번 붙었다 떨어지기를 반복합니다. 사람 눈에는 한 번 누른 것이지만, 빠른 디지털 회로는 수 번 눌린 것으로 읽습니다. 카운터에 연결하면 한 번 눌러도 숫자가 여러 번 올라가는 이유입니다.
해결 방법은 세 가지입니다.
- 소프트웨어: 값이 바뀐 뒤 10~20ms 동안 입력을 무시합니다. 마이크로컨트롤러에서 가장 쉽습니다.
- RC 필터 + 슈미트 트리거: 스위치 핀에 저항과 커패시터(예: 10kΩ, 100nF → 시정수 1ms)를 달고, 슈미트 트리거 입력(74HC14 등)으로 받으면 떨림이 걸러집니다(RC 시정수와 커패시터 충방전).
- SR 래치: 접점이 두 개인 스위치(SPDT)를 NAND 두 개로 만든 래치에 연결하면 첫 접촉만 반영됩니다.
DIP 스위치와 슬라이드 스위치
DIP 스위치는 작은 스위치 여러 개를 한 몸체에 모은 부품으로, 한 번 설정해 두는 값(주소, 모드)을 입력할 때 씁니다. 각 스위치의 한쪽을 풀업(또는 풀다운) 저항과 입력 핀에, 다른 쪽을 GND(또는 +V)에 연결하는 구성은 택트 스위치와 같습니다. 패턴도의 4채널 DIP 스위치는 클릭해서 ON/OFF를 바꿔 가며 시뮬레이션에서 입력 변화를 확인할 수 있습니다. 이를 활용한 예제는 DIP 스위치로 숫자를 고르는 7세그먼트 표시기에 있습니다.
정리
디지털 입력은 풀업이나 풀다운으로 항상 확실한 레벨을 줘야 하고, 값은 보통 10kΩ입니다. 택트 스위치는 대각선 핀을 쓰는 것이 안전하며, 버튼에서 오는 떨림은 소프트웨어나 RC 필터로 처리합니다. 이어서 74LS·74HC 로직 게이트 기초에서 쓰지 않는 입력을 처리하는 방법을 보세요.