ESP32 가변 저항으로 제어하는 서보 모터
이 튜토리얼은 ESP32를 서보 모터와 포텐셔미터와 함께 사용하는 방법을 지시합니다. 자세히 말하자면, 서보 모터의 각도는 포텐셔미터에서 읽은 값과 비례합니다.
준비물
| 1 | × | 38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow | 쿠팡 | 아마존 | |
| 1 | × | (또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide | 쿠팡 | 아마존 | |
| 1 | × | (또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide | 아마존 | |
| 1 | × | (또는) ESP32 Uno-form board | 아마존 | |
| 1 | × | (또는) ESP32 S3 Uno-form board | 아마존 | |
| 1 | × | USB 케이블 타입-A to 타입-C (USB-A PC용) | 쿠팡 | 아마존 | |
| 1 | × | USB 케이블 타입-C to 타입-C (USB-C PC용) | 아마존 | |
| 1 | × | 서보 모터 | 쿠팡 | 아마존 | |
| 1 | × | 포텐셔미터 | 쿠팡 | 아마존 | |
| 1 | × | 노브가 있는 포텐셔미터 모듈 | 쿠팡 | 아마존 | |
| 1 | × | 브레드보드 | 쿠팡 | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (옵션) DC 커넥터 전원 연결 잭 플러그 소켓 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Breakout Expansion Board for ESP32 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
서보 모터와 포텐쇼미터에 대하여
우리는 서보 모터와 포텐시오미터에 대한 구체적인 튜토리얼을 가지고 있습니다. 각 튜토리얼에는 하드웨어 핀아웃, 작동 원리, ESP32에 대한 배선 연결, ESP32 코드 등에 대한 자세한 정보와 단계별 지침이 포함되어 있습니다. 다음 링크에서 더 자세히 알아보세요:
- ESP32 - 서보 모터 튜토리얼
- ESP32 - 가변 저항기 튜토리얼
선연결

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32 전원 공급 방법.
ESP32 코드
/*
* 이 ESP32 코드는 newbiely.kr 에서 개발되었습니다
* 이 ESP32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다.
* 상세한 지침 및 연결도에 대해서는 다음을 방문하세요:
* https://newbiely.kr/tutorials/esp32/esp32-servo-motor-controlled-by-potentiometer
*/
#include <ESP32Servo.h>
#define PIN_POTENTIOMETER 36 // ESP32 핀 GPIO36(ADC0)가 포텐시오미터에 연결됨
#define PIN_SERVO 26 // ESP32 핀 GPIO26가 서보 모터에 연결됨
Servo myServo; // 서보를 제어하기 위한 서보 객체 생성
void setup() {
// 9600 비트 당 초 속도로 직렬 통신을 초기화한다:
Serial.begin(9600);
myServo.attach(PIN_SERVO); // ESP32 핀을 서보 객체에 연결
}
void loop() {
// 포텐시오미터의 값을 읽는다 (값은 0에서 4095 사이)
int analogValue = analogRead(PIN_POTENTIOMETER);
// 서보 사용을 위해 값을 스케일링한다 (값은 0에서 180 사이)
int angle = map(analogValue, 0, 4095, 0, 180);
// 스케일링된 값에 따라 서보 위치를 설정
myServo.write(angle);
// 값 출력
Serial.print("Analog value: ");
Serial.print(analogValue);
Serial.print(" => Angle: ");
Serial.println(angle);
delay(100);
}
사용 방법
- 만약 이게 처음으로 ESP32를 사용한다면, ESP32 - 소프트웨어 설치을 확인하세요.
- 위 이미지와 같이 배선하세요.
- 마이크로 USB 케이블을 이용해서 ESP32 보드를 PC에 연결하세요.
- PC에서 Arduino IDE를 엽니다.
- 올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택하세요.
- Arduino IDE의 왼쪽 바에 있는 Libraries 아이콘을 클릭하세요.
- 검색 박스에 ESP32Servo를 입력한 후, Kevin Harrington,John K. Bennett.
- ESP32용 서보 모터 라이브러리를 설치하려면 Install 버튼을 클릭하세요.

- 위의 코드를 복사해서 아두이노 IDE에 붙여넣으세요.
- 아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 ESP32 보드에 컴파일하고 업로드하세요.

Arduino IDE에서 시리얼 모니터 열기

- 전위차계를 조절하십시오.
- 서보 모터의 회전을 확인하십시오.
- 시리얼 모니터에서 결과를 확인하십시오. 아래와 같습니다:
8
Serial.println("Hello World!");
Message (Enter to send message to 'ESP32 Dev Module' on 'COM15')
New Line
9600 baud
Analog value: 0 => Angle: 0
Analog value: 85 => Angle: 14
Analog value: 201 => Angle: 35
Analog value: 286 => Angle: 50
Analog value: 370 => Angle: 65
Analog value: 444 => Angle: 78
Analog value: 521 => Angle: 91
Analog value: 608 => Angle: 106
Analog value: 690 => Angle: 121
Analog value: 793 => Angle: 139
Analog value: 907 => Angle: 159
Analog value: 4095 => Angle: 180
Analog value: 4095 => Angle: 180
라인별 코드 설명
위의 ESP32 코드에는 줄별 설명이 포함되어 있습니다. 코드의 주석을 읽어보세요!
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.