-
JoyStick과 아두이노의 기본적인 연결과 값 읽기Arduino/Joy Stick 2020. 11. 9. 17:48
아두이노와 조이스틱의 연결
연결에는 어려운 것이 없다.
조이스틱의 VRX핀은 아두이노의 A0핀에 연결
조이스틱의 VRY핀은 아두이노의 A1핀에 연결
조이스틱의 SW(버튼)핀은 아두이노의 D8번핀에 연결나머지는 VCC와 GND이다.
프로그래밍을 할 내용은 조이스틱의 x값(수평 값)의 변화가 일어나면 그 때의 정보를 출력해보자.
조이스틱의 x값과 y값은 0~1023의 값을 갖는다.
이 프로그래밍에서 생각해야할 것은 조이스틱은 민감하기 때문에
시리얼 모니터로 analogRead(A0)의 값을 확인하면 조이스틱을 움직이지도 않았는데 그 값이 매우 민감하게 변한다.
그렇기 때문에 값의 범위를 지정해서 특정한 값 범위를 중심으로 움직임을 판단하자.
그리고 현재의 조이스틱의 x값과 그 이전의 값을 저장하고 있어야 한다.
소스 코드
더보기int x,y; // 현재의 조이스틱의 x,y값 bool btn; // 조이스틱의 버튼으로 현재의 버튼 상태 int prev_x, prev_y; // 그 이전의 조이스틱의 x,y값 bool prev_btn; // 조이스틱의 버튼으로 이전의 버튼 상태 const int offSet = 100; // 조이스틱 x의 값의 범위 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(8,INPUT_PULLUP); // 버튼은 풀업 저항으로 설정 // x와 prev_x를 초기화 x = analogRead(A0); prev_x = x; } void loop() { // put your main code here, to run repeatedly: x = analogRead(A0); y = analogRead(A1); btn = digitalRead(8); // 조이스틱이 x범위로 움직였다면 if (x > (prev_x + offSet) || x < (prev_x - offSet)) { Serial.println( String("x = ") +x +" ," + String("y = ") +y + " ," + String("btn = ") + btn ); } prev_x = x; // 현재의 x값을 이전의 x값으로 저장 prev_y = y; // 현재의 y값을 이전의 y값으로 저장 delay(100); }
'Arduino > Joy Stick' 카테고리의 다른 글
JoyStick과 서보 모터를 연결해서 서보 모터 제어하기 (0) 2020.11.09