1. USB 드라이버 설치 (CH341)
보드는 CH341 USB-Serial 칩을 사용합니다. 아래 링크에서 드라이버를 다운로드하여 설치하세요.
드라이버 URL
https://www.wch-ic.com/downloads/CH341SER_ZIP.html
Nanjing Qinheng Microelectronics Co., Ltd.
www.wch-ic.com

![]() |
![]() |
| 압축파일 --> 압축 풀기 | 파일속 SETUP.EXE 파일 실행. |
![]() |
![]() |
| INSTALL 클릭하여 설치 | 완료 확인하기. |
2. Arduino IDE에 ESP32 보드 추가
환경설정 → 추가 보드 관리자 URL에 아래 주소를 입력하고, 보드 관리자에서 esp32 by Espressif (버전 3.x 이상) 을 설치합니다.
보드 URL
아레 주소를 복사하여 사용하기.
-->
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

환경설정에서 보드추가하기.
![]() |
![]() |
| 파일 - 환경설정 이동 | 아래 url 입력하기. |
보드 매니저에서 esp32 설치하기
![]() |
![]() |
3. 보드 선택 & 업로드 설정
도구 → 보드에서 ESP32 Dev Module을 선택하고, 포트를 보드가 연결된 COM 포트로 설정합니다. Upload Speed는 921600이 권장됩니다.



4. 인코더 모터 라이브러리 설치 (선택)
인코더 모터를 사용한다면 Emakefun 라이브러리를 설치합니다.
라이브러리 URL
https://emakefun-arduino-library.github.io/em_esp32_encoder_motor/html/en/index.html
- 위 사이트 열기
Emakefun ESP32 Encoder Motor Library 문서 - GitHub 다운로드 페이지로 이동 후 ZIP 다운로드
![]() |
![]() |
3. Arduino IDE에서:
Sketch → Include Library → Add .ZIP Library...

4. 다운로드한 ZIP 선택하면 설치됩니다.
5. 프로그램 실습.

DC 모터 기초 제어
SS6625E 드라이버는 각 모터 채널에 대해 2개의 PWM 핀으로 방향과 속도를 동시에 제어합니다.
두 핀 모두 analogWrite()(0~255) 또는 LEDC PWM을 사용합니다.
예제 1 · 단일 DC 모터 앞뒤 회전
// ==========================================
// 핀 번호 설정 (M2, M3 모터)
// ==========================================
const int M2_IN1 = 17; // M2 모터 제어 핀 1
const int M2_IN2 = 12; // M2 모터 제어 핀 2
const int M3_IN1 = 15; // M3 모터 제어 핀 1
const int M3_IN2 = 14; // M3 모터 제어 핀 2
// ==========================================
// 속도 설정 (0: 정지 ~ 255: 최고 속도)
// ==========================================
int motorSpeed = 200; // 원하는 속도로 이 숫자를 변경해 보세요 (예: 100, 200, 255)
void setup() {
// 모터 제어 핀을 모두 출력(OUTPUT) 모드로 설정합니다.
pinMode(M2_IN1, OUTPUT);
pinMode(M2_IN2, OUTPUT);
pinMode(M3_IN1, OUTPUT);
pinMode(M3_IN2, OUTPUT);
}
void loop() {
// 1. 앞으로 1초(1000ms) 이동
moveForward();
delay(1000);
// 2. 잠시 정지
stopMotors();
delay(500); // 0.5초 대기
// 3. 뒤로 1초(1000ms) 이동
moveBackward();
delay(1000);
// 4. 잠시 정지
stopMotors();
delay(500); // 0.5초 대기
}
// ==========================================
// 모터 제어 함수 모음
// ==========================================
void moveForward() {
analogWrite(M2_IN1, motorSpeed);
analogWrite(M2_IN2, 0); // digitalWrite 대신 analogWrite(..., 0) 사용
analogWrite(M3_IN1, motorSpeed);
analogWrite(M3_IN2, 0);
}
// 후진 함수
void moveBackward() {
analogWrite(M2_IN1, 0); // digitalWrite 대신 analogWrite(..., 0) 사용
analogWrite(M2_IN2, motorSpeed);
analogWrite(M3_IN1, 0);
analogWrite(M3_IN2, motorSpeed);
}
// 정지 함수
void stopMotors() {
// 정지할 때도 모두 0을 줍니다.
analogWrite(M2_IN1, 0);
analogWrite(M2_IN2, 0);
analogWrite(M3_IN1, 0);
analogWrite(M3_IN2, 0);
}

- Arduino IDE 상단 메뉴
Tools → Manage Libraries... - 검색창에 : ESP32servo 검색하기.
ESP32Servo
ESP32Servo by Kevin Harrington ... 설치
설치 후 다시 컴파일하면 됩니다.
※ 추가로 : ESP32 보드 패키지도 이미 설치돼 있어야 함
- 보드는 : Tools → Board → ESP32 Arduino → ESP32 Dev Module
같은 걸로 선택해야 합니다.
설치 끝났는데도 계속 에러 나면 Arduino IDE를 한 번 재시작하세요.
<<서보모터 제어 샘플코드>>
#include <ESP32Servo.h>
Servo servo0, servo1, servo2, servo3;
void setup() {
Serial.begin(115200);
// 서보 핀 할당 (25, 26, 32, 33)
servo0.attach(25);
servo1.attach(26);
servo2.attach(32);
servo3.attach(33);
// 초기 위치: 90도 (중립)
servo0.write(90);
servo1.write(90);
servo2.write(90);
servo3.write(90);
delay(1000);
}
void loop() {
// 0° → 180° 스윕
for (int angle = 0; angle <= 180; angle += 2) {
servo0.write(angle);
servo1.write(180 - angle); // 반대 방향
delay(15);
}
// 180° → 0° 스윕
for (int angle = 180; angle >= 0; angle -= 2) {
servo0.write(angle);
servo1.write(180 - angle);
delay(15);
}
}
'아두이노 프로젝트' 카테고리의 다른 글
| ESP32 자율주행 차 제작 활동 (0) | 2026.05.21 |
|---|---|
| Maker - esp32 - pro 보드 설명 (0) | 2026.05.17 |
| 자율주행자동차 (0) | 2026.04.14 |
| FTC 로봇 구조 이해 (1) | 2026.03.17 |
| I Built an AI Desk Buddy with ESP32 (Xiaozhi + Custom Face UI) (0) | 2026.03.12 |









