TechPartner

← Quay lại Blog
Khóa lập trình Arduino ESP32 cơ bản — IoT từ Blink đến SmartNode · Phần 3 / 8

Lập trình ESP32 (3/8): PWM — LED fade & điều khiển servo SG90

LEDC PWM trên ESP32, fade LED mượt, thư viện ESP32Servo — điều khiển góc servo 0–180°.

· 1 min read

Khóa lập trình Arduino ESP32 cơ bản — IoT từ Blink đến SmartNode · Phần 3/8
  1. 1Cài đặt & Blink
  2. 2GPIO digital
  3. 3PWM & servo
  4. 4ADC & cảm biến
  5. 5WiFi Station
  6. 6HTTP client
  7. 7Web server
  8. 8Capstone SmartNode
Mục lục
  1. LED fade với LEDC
  2. Servo SG90
  3. Bài tập

Phần 3/8 (~35 phút) · Phần 2 · Phần 4 — ADC

LED fade với LEDC

const int LED_PIN = 4;
const int PWM_CHANNEL = 0;
const int PWM_FREQ = 5000;
const int PWM_RES = 8; // 0-255

void setup() {
  ledcSetup(PWM_CHANNEL, PWM_FREQ, PWM_RES);
  ledcAttachPin(LED_PIN, PWM_CHANNEL);
}

void loop() {
  for (int d = 0; d <= 255; d++) {
    ledcWrite(PWM_CHANNEL, d);
    delay(5);
  }
  for (int d = 255; d >= 0; d--) {
    ledcWrite(PWM_CHANNEL, d);
    delay(5);
  }
}

Servo SG90

Cài thư viện ESP32Servo (Library Manager).

#include <ESP32Servo.h>
Servo myServo;
const int SERVO_PIN = 13;

void setup() {
  myServo.setPeriodHertz(50);
  myServo.attach(SERVO_PIN, 500, 2400);
}

void loop() {
  myServo.write(0);
  delay(1000);
  myServo.write(90);
  delay(1000);
  myServo.write(180);
  delay(1000);
}

SmartNode sau này dùng PWM cho dim đèn và servo cho van/mái che demo.

Bài tập

Map biến trở 10 kΩ (ADC preview) → góc servo (hoàn thiện ở phần 4).

Điều hướng seri: ← Phần 2 · Phần 4 →

Câu hỏi thường gặp

Servo ăn mấy volt?

SG90 thường 4.8–6 V. ESP32 3.3 V logic — nên cấp servo từ nguồn 5 V riêng, GND chung với ESP32; không lấy 5 V từ board lâu dài.

Startup của bạn cần tech partner?

Trao đổi miễn phí về MVP, timeline và mô hình chia lợi nhuận phù hợp.