Arduino

아두이노 조이스틱(JOYSTICK)으로 서보모터 제어하기

작성자 임베디드코리아 작성일25-05-16 00:31 조회274회 댓글0건

첨부파일

<* 조이스틱(JOYSTICK)으로 서보모터 제어 *>
■ A0, A1 핀은 x,y 방향 아날로그 신호를 받고 ,5번핀은 스위치 신호를 받도록 선 연결하고
■ 7번핀에 Servo Motor 출력핀으로 연결하고 12번핀은  LED를 연결한다.

------- < 조이스틱(JOYSTICK)으로 서보모터 제어 소스 코드 > ---------------------
#include <Servo.h>

Servo servo;

const int AXIS_X = A0;
const int AXIS_Y = A1;
const int SW_Pin = 3;
const int servo_Pin = 7;
const int Led_Pin = 12;

int motor_Angle = 0;

void setup() {
  servo.attach(servo_Pin);
  pinMode(Led_Pin, OUTPUT);
  pinMode(SW_Pin,INPUT_PULLUP);
}

void loop() {
  motor_Angle = map(analogRead(AXIS_X),0,1023,0,180);
  digitalWrite(Led_Pin,digitalRead(SW_Pin));
  servo.write(motor_Angle);
  delay(100); 
}

------- < 조이스틱(JOYSTICK)으로 서보모터 2개 제어 소스 코드 > ---------------------
#include <Servo.h>

Servo servo1;
Servo servo2;

int joyX = 0; //x축 A0
int joyY = 1; //Y축 A1

int servoVal;

void setup() {
  servo1.attach(11);
  servo2.attach(10);
}

void loop() {
  servoVal = map(analogRead(joyX), 0, 1023, 0, 180); //map 함수를 적용 0~1023의 조이스틱값을 0~180도로 바꾸어줍니다
  servo1.write(servoVal); //servo.write(회전각) : 회전각 만큼 서보모터를 회전 시킵니다

  servoVal = map(analogRead(joyY), 0, 1023, 0, 180);
  servo2.write(servoVal);
  delay(15); 
}