아두이노 - MG996R | Arduino - MG996R

이 튜토리얼에서는 아두이노와 함께 MG996R 고토크 서보 모터를 사용하는 방법을 배우게 됩니다.

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | Amazon
1×MG996R Servo Motor Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino Uno 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

서보 모터에 대해서

MG996R 서보 모터는 최대 15kg의 무게를 들어 올릴 수 있는 고토크 서보 모터입니다. 이 모터는 핸들을 0°부터 180°까지 회전할 수 있어 각도 위치의 정밀한 제어를 제공합니다. 서보 모터에 대한 기본 정보는 아두이노 - 서보 모터 튜토리얼을 참조하십시오.

핀배열

이 예제에서 사용된 MG996R 서보 모터에는 세 개의 핀이 포함됩니다:

  • VCC 핀: (보통 빨간색) VCC(4.8V - 7.2V)에 연결해야 합니다.
  • GND 핀: (보통 검은색 또는 갈색) GND(0V)에 연결해야 합니다.
  • 신호 핀: (보통 노란색 또는 오렌지색) 아두이노의 핀에서 PWM 제어 신호를 받습니다.
MG996R Servo Motor Pinout

선연결

MG996R은 고토크 서보 모터이기 때문에 많은 전력을 소모합니다. 이 모터를 아두이노의 5v 핀을 통해 전원을 공급해서는 안 됩니다. 대신 외부 전원 공급 장치를 사용하여 MG996R 서보 모터에 전원을 공급해야 합니다.

Arduino MG996R Servo Motor Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 코드

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-mg996r */ #include <Servo.h> Servo servo; // 서보 오브젝트를 생성하여 서보를 제어 void setup() { servo.attach(9); // 핀 9에 서보를 연결하여 서보 오브젝트에 부착 servo.write(0); // 서보를 즉시 0 도로 천천히 회전 } void loop() { for (int angle = 0; angle <= 180; angle += 1) { // 0 도부터 180 도까지 1도씩 천천히 회전 // 1 도 단위로 servo.write(angle); // 변수 'angle'의 위치로 서보를 제어 delay(10); // 서보가 위치에 도달하는 데 10ms를 기다림 } for (int angle = 180; angle >= 0; angle -= 1) { // 180 도에서 0 도까지 1도씩 회전 servo.write(angle); // 변수 'angle'의 위치로 서보를 제어 delay(10); // 서보가 위치에 도달하는 데 10ms를 기다림 } }

사용 방법

  • 아두이노를 PC에 USB 케이블로 연결하세요
  • 아두이노 IDE를 열고, 올바른 보드와 포트를 선택하세요
  • 위의 코드를 복사하고 아두이노 IDE로 엽니다
  • 아두이노 IDE에서 Upload 버튼을 클릭해서 아두이노에 코드를 업로드하세요
Arduino IDE - How to Upload Code

결과 보기: 서보 모터가 0에서 180°까지 천천히 회전하고 난 다음 180°에서 다시 0°로 천천히 회전합니다.

코드 설명

위의 아두이노 코드의 주석 라인에서 설명을 찾을 수 있습니다.

서보 모터의 속도 제어 방법

map()millis() 함수를 사용함으로써, 다른 코드의 실행을 방해하지 않으면서 서보 모터의 속도를 부드럽게 제어할 수 있습니다.

/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-mg996r */ #include <Servo.h> Servo myServo; unsigned long MOVING_TIME = 3000; // 이동 시간은 3초입니다 unsigned long moveStartTime; int startAngle = 30; // 30도 int stopAngle = 90; // 90도 void setup() { myServo.attach(9); moveStartTime = millis(); // 이동 시작 // TODO: 다른 코드 } void loop() { unsigned long progress = millis() - moveStartTime; if (progress <= MOVING_TIME) { long angle = map(progress, 0, MOVING_TIME, startAngle, stopAngle); myServo.write(angle); } // TODO: 다른 코드 }

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!