안녕하세요 디바이스마트입니다
이번 시간엔 조이스틱 모듈에 대해 알아보도록 하겠습니다 !
"
조이스틱 모듈이란?
"
'스틱' 이라 불리는 긴 막대형의 레버를 통해
어떠한 장치를 제어하는 부품입니다
레버를 통해 상하좌우로 밀거나 당겨서 조작하는 방식으로
항공기의 보조 날개와 승강타 조종을 위해 만들어졌지만,
게임 상 캐릭터의 움직임을 컨트롤 하는 부품으로 많이 알려져 있습니다
그럼 지금 부터 조이스틱 모듈에 기본적인
동작 방법에 대해 실습 해 보도록 하겠습니다 !
WK PS2 조이스틱 모듈
[WK-ADB-K07-22]
▼스펙▼
정격전압 : 5V, 3.3V
인터페이스 : Arduino 5P Interface (5핀) SVG
크기 : 37 * 31 * 32mm
무게 : 4g
- 조이스틱 모듈 핀 특성 -
조이스틱은 상하좌우로 작동하며, 움직임이 있을 때마다
X, Y 핀을 통해 얼마만큼 움직임이 감지 되었는지 알려줍니다.
1. 회로도 & 배선도
2. 코드 예제
// 조이스틱 모듈 예제(https://www.devicemart.co.k)
// 방향키 예제
// 방향키 예제
#define JOIX_PIN A0
#define JOIY_PIN A1
#define JOIK_PIN A2
#define LED_PIN 3 //핀 번호 지정
int JOIX;
int JOIY;
int JOIK; // 센서 값 변수 설정
void setup() {
Serial.begin(9600); //시리얼 통신 시작
pinMode(LED_PIN, OUTPUT);
}
void loop() {
JOIX = analogRead(JOIX_PIN); // x 값
JOIY = analogRead(JOIY_PIN); // y 값
JOIK = analogRead(JOIK_PIN); // k 값
if(JOIX >= 813 && JOIX <= 817 && JOIY > 756 && JOIY < 760){
Serial.print("정지 ");
}
if(JOIK == 0){
Serial.print("LED ON ");
digitalWrite(LED_PIN, HIGH);
}
if(JOIK == 1023){
digitalWrite(LED_PIN, LOW);
}
if(800 <= JOIX && 900 >= JOIX && JOIY >= 1020 ){
Serial.print(" ↑ ");
}
if(JOIX >= 1000 && 730 <= JOIY && JOIY <= 780 ){
Serial.print(" ← ");
}
if(JOIX <= 100 && 730 <= JOIY && JOIY <= 780 ){
Serial.print(" → ");
}
if(800 <= JOIX && JOIX<= 850 && JOIY <= 100 ){
Serial.print(" ↓ ");
}
if(300 >= JOIX && JOIY >= 1000){
Serial.print(" ↗ ");
}
if(1000 <= JOIX && JOIY <= 300 ){
Serial.print(" ↙ ");
}
if(1000 <= JOIX && JOIY >= 1000 ){
Serial.print(" ↖ ");
}
if(300 >= JOIX && JOIY <= 300 ){
Serial.print(" ↘ ");
}
else{
}
Serial.print("X = ");
Serial.print(JOIX);
Serial.print(" ");
Serial.print("Y = ");
Serial.print(JOIY);
Serial.print(" ");
Serial.print("K = ");
Serial.println(JOIK);
delay(1000);
}
▲
위 예제는 조이스틱 모듈을 통해 방향키 조작을 시리얼
모니터로 나타내는 예제 입니다
지금까지 조이스틱 모듈에 대해 실습 해 보았습니다
위 예제를 참고해서 여러가지 방식으로
작동해보시길 바랍니다
그럼 저는 다음 센서/모듈 포스팅으로 돌아오겠습니다 !!
0 댓글