ESP32 MG996R

이 튜토리얼에서는 ESP32로 MG996R 고토크 서보 모터를 사용하는 방법을 배우려고 합니다.

준비물

1×ESP32 ESP-WROOM-32 개발 모듈 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×MG996R 서보 모터 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) Breakout Expansion Board for ESP32 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

서보 모터에 대하여

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

핀배열

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

  • VCC 핀: (보통 빨간색) VCC(4.8V – 7.2V)에 연결해야 합니다.
  • GND 핀: (보통 검정색 또는 갈색) GND(0V)에 연결해야 합니다.
  • 신호 핀: (보통 노란색 또는 주황색) ESP32 핀에서 PWM 제어 신호를 받습니다.
mg996r 서보 모터 사용법 핀아웃

선연결

MG996R은 고토크 서보 모터이므로 많은 전력을 소모합니다. 이 모터를 ESP32의 5v 핀을 통해 전력을 공급해서는 안 됩니다. 대신, MG996R 서보 모터를 위해 외부 전원 공급장치를 사용해야 합니다.

ESP32 mg996r 서보 모터 연결 배선도

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

ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.

ESP32 코드

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-mg996r */ #include <ESP32Servo.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를 기다립니다. } }

사용 방법

ESP32를 처음 사용하는 경우 ESP32 - 소프트웨어 설치을 참조하세요.

위 이미지와 같이 배선하세요.

ESP32 보드를 마이크로 USB 케이블을 사용하여 PC에 연결하세요.

PC에서 Arduino IDE를 엽니다.

올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.

Arduino IDE의 왼쪽 바에서 Libraries 아이콘을 클릭하세요.

검색 상자에 ESP32Servo를 입력한 후 Kevin Harrington,John K. Bennett.

ESP32용 서보 모터 라이브러리를 설치하려면 Install 버튼을 클릭하세요.

ESP32 서보 모터 라이브러리
  • ESP32를 USB 케이블을 통해 PC에 연결하세요.
  • Arduino IDE를 열고, 올바른 보드와 포트를 선택하세요.
  • 위의 코드를 복사하고 Arduino IDE로 엽니다.
  • Arduino IDE에서 Upload 버튼을 클릭하여 ESP32에 코드를 업로드하세요.
아두이노 ide - how to upload code

결과를 확인하세요: 서보 모터가 0부터 180도까지 천천히 회전한 다음 180도에서 다시 0도까지 천천히 회전합니다.

코드 설명

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

서보 모터의 속도 제어 방법

map() 함수와 millis() 함수를 사용하여 다른 코드를 차단하지 않고 서보 모터의 속도를 부드럽게 제어할 수 있습니다.

/* * 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32/esp32-mg996r */ #include <ESP32Servo.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 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.