컴퓨터
[아두이노 센서] KY-023 Dual-axis XY Joystick Module
조이팜
2026. 1. 18. 21:17
KY-023 조이스틱 모듈은 2개의 가변저항(X·Y축)과 1개의 스위치(Z축)를 이용해 2차원 방향 및 입력 신호를 출력하는 아날로그 입력 장치입니다.

1. [KY-023 모듈] 무엇을 하는 친구일까?

"상하좌우 움직임을 숫자로 바꿔주는 컨트롤러"
- 2축 아날로그 제어: 내부에 두 개의 가변저항이 들어 있어, 막대를 움직이면 X축과 Y축의 위치를 0~1023 사이의 숫자로 알려줍니다.
- 스위치 기능: 막대를 수직으로 꾹 누르면 딸깍 소리와 함께 눌리는 버튼(Z축) 기능이 내장되어 있습니다.
- 특징: 플레이스테이션이나 엑스박스 컨트롤러의 조이스틱과 같은 원리로 작동하며, 정밀한 방향 제어가 필요한 프로젝트에 필수적입니다.
2. [활용사례] 우리 주변의 어디에 있을까?
"정밀한 조종이 필요한 모든 곳의 지휘관"
- 게임 컨트롤러: 캐릭터를 이동시키거나 시점을 자유롭게 회전시킬 때
- 드론 및 RC카 조종기: 속도와 방향을 동시에 조절하는 무선 조종 장치
- CCTV 제어: 카메라의 각도를 상하좌우로 원격 조작할 때
- 로봇 팔: 로봇 손의 위치를 전후좌우로 세밀하게 이동시킬 때

3. [회로도] 어떻게 연결할까?
"아날로그 2개, 디지털 1개의 복합 연결"
KY-023은 핀이 5개이므로 연결할 때 주의가 필요합니다.

|
모듈 핀
|
아두이노 연결
|
설명
|
|
GND
|
GND
|
접지선
|
|
+5V
|
5V
|
전원 공급
|
|
VRx
|
Analog A0
|
좌우(X축) 움직임 값
|
|
VRy
|
Analog A1
|
상하(Y축) 움직임 값
|
|
SW
|
Digital 2번
|
누름 버튼(Z축) 신호
|
4. [코드설명] 아두이노에게 명령 내리기
"내 손가락의 위치를 시리얼 모니터로 확인하기
int xPin = A0;
int yPin = A1;
int swPin = 2;
void setup() {
Serial.begin(9600);
// 버튼은 내부 풀업 저항을 사용하는 것이 회로 구성에 편리합니다.
pinMode(swPin, INPUT_PULLUP);
}
void loop() {
int xVal = analogRead(xPin);
int yVal = analogRead(yPin);
int swVal = digitalRead(swPin); // 누르면 0(LOW), 떼면 1(HIGH)
Serial.print("X: "); Serial.print(xVal);
Serial.print(" | Y: "); Serial.print(yVal);
Serial.print(" | Button: "); Serial.println(swVal);
delay(100);
}

5. [미션] 도전! 직접 만들어보기
"조이스틱으로 조종하는 무드등"
- 중앙값 확인: 아무것도 건드리지 않았을 때 X, Y 값이 500 내외(약 512)로 나오는지 확인해 보세요. 이것이 조이스틱의 '원점'입니다.
- 색상 조절: 앞서 배운 KY-016 RGB LED를 연결해 보세요. X축을 움직이면 빨간색 밝기가, Y축을 움직이면 초록색 밝기가 변하게 만들 수 있을까요?
- 릴레이 결합: 조이스틱을 오른쪽 끝까지 밀면 KY-019 릴레이가 "철컥" 하고 켜지게 설정해 보세요. 나만의 전원 관리 컨트롤러가 완성됩니다!
#아두이노 #KY023 #조이스틱모듈 #가변저항 #아날로그입력 #게임컨트롤러DIY #ArduinoJoystick
반응형