본문으로 바로가기



안녕하세요. 애드라이프 입니다.

이번 포스팅으로는 조이스틱 모듈을 준비했습니다.

HW-504라는 품번을 가진 모듈입니다.

실물은 아래와 같습니다.



8방향 모듈입니다.

중앙을 X=512,Y=512를 기준으로 

아래 사진과 같은 값을 갖습니다.


데이터 시트 (회로도 핀맵은 하단이 정확합니다.)▼

joystick_module.pdf


핀맵에 대한 설명입니다.

사진에서 설명이 않되어 있는 SW핀

방향말고 스위치를 누를 수있는 기능이있습니다.

스위치를 눌렀을때 출력이 나오는 핀입니다.


회로도가 매우 간단하기 때문에 바로 살펴보도록 하겠습니다.

X와 Y는 각각 A0와 A1

아날라그 핀에 연결하고

SW핀은 D2핀에 연결합니다.


바로 프로그램을 확인하겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
int Xin= A0;                                         // X A0 아날로그 핀에 연결합니다.
int Yin = A1;                                         // Y A1 아날로그 핀에 연결합니다.
int KEYin = 2;                                         // SW D2 디지털 핀에 연결합니다.
 
void setup ()
{
  pinMode (KEYin, INPUT_PULLUP);                    //회로에 PULLUP을 구성해도 되지만 프로그램으로 구현해도 됩니다.
  Serial.begin (9600);                                 //시리얼 9600
}
void loop ()
{
  int Xvalue, Yvalue, ButtonVal;
  
  Xvalue= analogRead (Xin);                            //A0에 연결된 값을 읽어옵니다.
  Yvalue= analogRead (Yin);                            //A1에 연결된 값을 읽어옵니다.
  ButtonVal= digitalRead (KEYin);                    //D2에 연결된 값을 읽어옵니다.
  
  Serial.print("X = ");
  Serial.println (Xvalue, DEC);                        //모듈의 x값을 표시
  
  Serial.print ("Y = ");
  Serial.println (Yvalue, DEC);                        //모듈의 y값을 표시
  if (ButtonVal== HIGH){                            //버튼의 눌림상태
    Serial.println ("버튼 안눌림");
  }
  else{
    Serial.println ("버튼 눌림");
  }
    
  delay (500);
}
cs

프로그램의 전체적인 흐름은 주석을 참고해주세요.(옆으로 넘기면서 보실 수 있습니다.)



위 프로그램을 업로드 하고난 결과를 살펴보면서 이번 포스팅을 끝내겠습니다.

<상측 방향>


< 하측 방향 >


<우측 방향>


<좌측 방향>


<우상 방향>


<우하 방향>


<좌상 방향>


<좌하 방향>


<중립 방향>


<스위치 누름>


지금까지 아두이노(Arduino) 기초 조이스틱 모듈 HM-504 사용하기에 대한 포스팅이였습니다.

계속해서 도움되는 포스팅으로 찾아 뵙겠습니다.

 by 애드라이프