?>

Hard Copy World

HCW

Input, display and etc

Home > Info >

Input, display and etc

기쁨의 막대기 JoyStick Module

페이지 정보

작성자 최고관리자 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일14-10-05 00:25 조회5,464회 댓글3건

본문

1. JoyStick 모듈

간단하지만 input device로 쓸모가 많은 조이스틱 모듈입니다. X, Y 축의 움직임을 2개의 Analog 신호로 만들어 주고 Z 축으로 누르면 버튼 처럼 동작해서 1개의 Digital 신호로 만들어줍니다.

464441753_660

 

2. 연결방법

Features:

  • Size (LxWxH): 38X28X32 (mm)

Pin Definition:

+ 5V
- GND
B button to receive a digital IO ports
X X-axis offset, the use of analog IO port read out
Y Y-axis offset, the use of analog IO port read out

보통 5개의 핀이 있습니다. +, - 핀을 아두이노의 5V, GND로 연결합니다. X, Y 축의 회전각을 보내주는 핀은 아두이노의 아날로그 핀으로(A0, A1 등...) 연결해줍니다. 버튼 핀은 디지털 핀 남는데 연결하시면 끝.

아두이노의 A4, A5 핀은 I2C 통신을 사용할 경우 예약된 핀이므로 미래를 위해 하껴두세요.

JoystickMouse_2_bb

 

3. 연결 확인, 소스 업로드

// 2개의 아날로그 핀과 (X, Y축 움직임), 1개의 디지털 핀 (Z축 버튼) 정의

const int VERT = 0; // analog
const int HORIZ = 1; // analog
const int SEL = 2; // digital

void setup()

{
pinMode(SEL,INPUT);    // 버튼 핀을 읽기 모드로
// turn on the pull-up resistor for the SEL line

// (see http://arduino.cc/en/Tutorial/DigitalPins)
digitalWrite(SEL,HIGH);

// set up serial port for output
Serial.begin(9600);
}

void loop()
{
int vertical, horizontal, select;

// read all values from the joystick

  vertical = analogRead(VERT); // will be 0-1023
horizontal = analogRead(HORIZ); // will be 0-1023
select = digitalRead(SEL); // will be HIGH (1) if not pressed, and LOW (0) if pressed

// print out the values

Serial.print("vertical: ");
Serial.print(vertical,DEC);
Serial.print(" horizontal: ");
Serial.print(horizontal,DEC);
Serial.print(" select: ");
if(select == HIGH)
Serial.println("not pressed");
else
Serial.println("PRESSED!");
}

 

 

 

추천 0
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글목록

강민석님의 댓글

강민석 이름으로 검색 작성일

조이스틱의 움직임을
기억했다가 재생하는 것도 가능한가요?

하드카피님의 댓글

하드카피 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글의 댓글 작성일

구현하기 나름인데... 조이스틱의 움직임을 배열에 저장해 두었다가 필요할 때 사용하실 수도 있겠습니다. 혹은 EEPROM에 기록해 두면 아두이노 전원이 꺼져도 재부팅 후에 다시 읽어서 사용할 수 있습니다.