본문 바로가기
만들기/아두이노

MG995 360도 서보모터 예제

by 훨훨날아 2022. 7. 8.

sg90 서보모터를 사용하다가 더 힘이 쎈 서보모터를 찾아봐야지하고 검색하면 MG995와MG996R이 나온다. MG995의 경우에는 360도 회전이 가능하고 MG996R의 경우에는 180도 회전이 가능하다. 그래서 MG995 360를 구매했는데 MG995 360의 경우에는 특정각도에서 멈추는 것이 아니라 특정 방향으로 계속 돌아가는 서보모터이다.

서보 입력값이 90일때 정지해 있고 180으로 갈 수록 시계방향으로 빨라지고 0으로 갈수로 반시계방향으로 빨라진다.

 

다음은 시리얼 모니터에 값을 입력하면 값이 각도값으로 전환되어 모터의 속도를 조절하는 예제

#include <Servo.h> // 아두이노 서보모터라이브러리 사용
int a = 0;
int servoPin = 9; //서보모터 데이터케이블(주황)을 아두이노 9번 핀에 연결

Servo servo; // 서보모터를 servo 이름으로 정의

int angle = 90; // 서보모터의 초기값 설정 90 = 정지

void setup() // 초기값 세팅
{ 
    servo.attach(servoPin);  // 서보모터를 아두이노와 연결
    Serial.begin(9600);     // Serial 통신을 설정합니다.
    while(!Serial);                                           
    Serial.println("Servo Connected"); // 시리얼통신이 정상적으로 연결되면 시리얼모니터에 Servo Connected 출력
} 


void loop() 
{ 
  if(Serial.available()){    //Serial 모니터창에 서보모터 값을 입력하면 (0 ~ 180 사이)
    a = Serial.parseInt();   //Serial 모니터창에서 받은 값을 a라는 변수로 넘겨줍니다.

    Serial.print("angle : "); 
    Serial.println(a); // a에 입력된 값을 시리얼 모니터에 출력

    servo.write(a); // a에 입력된 값을 서보모터 움직임 각도로 동작
    delay(100); // 현재 입력된 서보모터 각도값을 반복(PWM신호)
  }
  
  
}

 

 

 

반응형