아두이노 로터리 인코더 마스터하기: 종류, 원리, 선택법, 실전 예제
로터리 인코더란?
그림 1: 일반적인 로터리 인코더 모듈 (EC11 계열)
로터리 인코더(Rotary Encoder) 는 축(샤프트)의 회전 각도, 방향, 속도, 위치 를 디지털/아날로그 신호로 변환하는 전기기계식 위치 센서입니다. CNC, 로봇, 3D 프린터, 오디오 볼륨, 산업용 제어 패널 등 정밀 위치 피드백이 필요한 곳에 필수입니다.
핀아웃 (일반적인 5핀 모듈: EC11, KY-040 등)
그림 2: 로터리 인코더 핀아웃
핀 명칭 기능
VCC 전원 3.3V 또는 5V
GND 그라운드
SW 푸시 스위치 액티브 로우(누르면 LOW), 축 누름 입력
CLK (DT/Output A) 출력 A 펄스 출력, 회전 감지 기준
DT (CLK/Output B) 출력 B CLK 대비 90° 위상 차(쿼드러처), 방향 판별용
종류: 절대값 vs 증분형
그림 3: 13트랙 그레이 코드 앱솔루트 인코더 (출처: Wikimedia)
앱솔루트 인코더 (Absolute Encoder)
각 위치마다 고유 코드(그레이 코드 등) 출력 → 전원 차단 후 재투입 시 위치 정보 유지
조립 시 기계 원점과 인코더 값 관계 고정 → 별도 홈잉(Homing) 불필요
고해상도(비트 수) 구현 시 트랙/비트 수 증가로 비용↑
광학/자기/정전용량 방식 존재
인크리멘탈 인코더 (Incremental Encoder)
전원 투입 시 카운트 0부터 시작 → 절대 위치 모름, 상대적 변화만 감지
A/B 위상 차 펄스로 방향/속도/상대 위치 측정
시작 시 레퍼런스 포인트(홈 센서, Z-인덱스 펄스)로 원점 복귀 필요
구조 단순, 저가, 고해상도 구현 용이 → 호비/메이커/교육용 주력
작동 원리: 쿼드러처 인코딩 (Quadrature Encoding)
그림 4: A/B 위상 차 파형 (90° 위상 차)
내부 슬릿 디스크(광학) 또는 자석 패턴(자기)이 회전하며 고정 센서(A, B)를 통과합니다. 공통 접점(C)을 기준으로:
시계 방향(CW) 회전: A 펄스 선행 → B 펄스 후행 (A rising edge에서 B=Low)
반시계 방향(CCW) 회전: B 펄스 선행 → A 펄스 후행 (A rising edge에서 B=High)
마이크로컨트롤러에서 A/B 핀의 엣지 인터럽트 또는 폴링으로 위상 관계를 판별해 카운트 업/다운, 방향, 속도(RPM) 계산.
로터리 인코더 선택 가이드 (체크리스트)
1. 앱솔루트 vs 인크리멘탈?
전원 차단 후 위치 복구 필요 → 앱솔루트
비용/해상도/노이즈 내성/최고 속도 종합 고려 → 인크리멘탈 (대부분 호비용)
2. 필요 분해능 (Resolution, PPR - Pulse Per Revolution)
기계 요구 정밀도의 1/2 ~ 1/4 수준 권장 (예: 0.1° 정밀도 필요 → 3600 PPR 이상)
해상도↑ → 비용↑, 최대 응답 주파수↑ 필요
3. 기계적 치수 & 샤프트 형태
장착 공간, 샤프트 직경(6mm, 1/4인치 등), 중공(Hollow) vs 솔리드 샤프트
4. 허용 샤프트 하중 (축 방향/반경 방향)
장착 방식(커플링, 기어, 벨트)에 따른 하중 계산 → 기계적 수명 결정
5. 최대 기계적 회전 속도 (RPM)
실제 사용 최대 RPM < 정격 최대 RPM 여야 함
6. 최대 응답 주파수 (Maximum Response Frequency)
최대 응답 주파수 (Hz) = (RPM / 60) × 분해능 (PPR)
선정 모델의 정격 응답 주파수 > 계산값 × 안전율(1.5~2배) 확보 필수
7. 보호 등급 (IP 등급)
분진만: IP50
수분/유분: IP52, IP64 (플랜지 마운트 시)
유분 다량: 오일 프루프(Oil-proof) 모델 선택
8. 시동 토크 (Startup Torque)
가벼운 부하(노브 조작)면 낮아도 무방, 기어/벨트 직결이면 충분한 토크 마진 필요
9. 출력 회로 타입
오픈 컬렉터/드레인: 풀업 저항 필요, 장거리 전송 시 노이즈 취약
푸시-풀 (TTL/HTL): 드라이브 능력 강함, 장거리/노이즈 환경 유리
라인 드라이버 (RS-422/RS-488): 차동 신호, 최대 노이즈 내성, 장거리 필수
장단점 요약
그림 5: 3D 프린터/CNC용 스테퍼 모터 타이밍 풀리 (인코더 피드백 적용 예)
장점
고해상도 (수천~수십만 PPR 구현 가능)
저비용 피드백 (인크리멘탈 기준)
고정밀·고신뢰성
소형 경량
디지털+광학/자기 기술 융합
단점
자기식: 무선/자기장 노이즈 간섭
광학식: 직사광/먼지/유분 간섭
오염(먼지, 유분, 오일) 취약 → 밀폐형/보호 등급 확인 필수
아두이노 실전 예제
예제 1: 기본 카운터 + LCD 표시
부품: 아두이노, LCD(1602 I2C), 포텐셔미터(콘트라스트), 로터리 인코더, 브레드보드, 점퍼 와이어
배선: VCC→5V, GND→GND, CLK→D2, DT→D3, SW→D4 (풀업 활성화). D2/D3는 외부 인터럽트 핀 권장.
예제 2: 스테퍼 모터 위치 제어
부품: 아두이노, 스테퍼 모터(28BYJ-48 등) + 드라이버(ULN2003/A4988), 로터리 인코더, 브레드보드
배선: 인코더 GND→GND, VCC→5V, DT→A5, CLK→A4. 스테퍼 드라이버 IN1~IN4 → D8~D11 등.
로직: 인코더 카운트 변화량만큼 스테퍼 스텝 이동. 정밀 위치 제어 데모에 최적.
예제 3: 서보 모터 각도 제어 (로봇 팔 등)
부품: 서보 모터(SG90, MG996R 등), 로터리 인코더, 아두이노
배선: 서보 갈색/검정→GND, 빨강→5V, 주황/노랑→PWM 핀(D9). 인코더 동일.
로직: 인코더 회전량 → 서보 목표 각도 매핑 (0~180°). Servo.write()로 부드러운 추종 제어.
마무리
로터리 인코더는 '돌리는 만큼 정확히 아는' 디지털 입력 장치로, 아두이노 프로젝트의 조작 인터페이스와 모션 제어 피드백 양쪽에서 핵심 역할을 합니다. 인크리멘탈 타입으로 시작해 인터럽트 기반 디코딩을 익히고, 필요 시 앱솔루트/고해상도/산업용 모델로 확장하세요. 프로젝트 막히는 부분이 있으면 언제든 문의 주세요!