长生栈 长生栈
首页
  • 编程语言

    • C语言
    • C++
    • Java
    • Python
  • 数据结构和算法

    • 全排列算法实现
    • 动态规划算法
  • CMake
  • gitlab 安装和配置
  • docker快速搭建wordpress
  • electron+react开发和部署
  • Electron-创建你的应用程序
  • ImgUI编译环境
  • 搭建图集网站
  • 使用PlantUml画时序图
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Living Team

编程技术分享
首页
  • 编程语言

    • C语言
    • C++
    • Java
    • Python
  • 数据结构和算法

    • 全排列算法实现
    • 动态规划算法
  • CMake
  • gitlab 安装和配置
  • docker快速搭建wordpress
  • electron+react开发和部署
  • Electron-创建你的应用程序
  • ImgUI编译环境
  • 搭建图集网站
  • 使用PlantUml画时序图
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 计算机视觉

  • ESP32开发

    • ESP32-开发环境配置
    • ESP32-点亮LED灯
    • ESP32-点亮OLED屏幕
    • ESP32-实时操作系统freertos
    • ESP32-PWM驱动SG90舵机
      • 连线
      • 代码
    • ESP32-网络摄像头方案
  • Linux系统移植

  • 快速开始

  • 编程小知识

  • 技术
  • ESP32开发
DC Wang
2025-06-14
目录

ESP32-PWM驱动SG90舵机

# ESP32S3N16R8使用PWM驱动SG90舵机

本文以ESP32-S3N16R8为例,介绍如何使用PWM驱动SG90舵机。本示例运行在FreeRTOS下。

# 连线

SG90舵机线:信号线(黄色)、正极(红色)、负极(棕色)

image-20250611224055264

# 代码

#include <Arduino.h>

const int servoPin = 9;
const int servoFreq = 50;
const int servoChannel = 1;
const int servoResolution = 11; // 11位分辨率(2048级)

void setAngle(int angle) {
  angle = constrain(angle, 0, 180);
  // 计算占空比:0.5ms=102.4,2.5ms=512(11位分辨率)[1](@ref)
  int duty = (angle / 180.0) * (512 - 102.4) + 102.4; 
  ledcWrite(servoChannel, duty);
}

void TaskServo(void *pvParam) {
  while (1) {
    setAngle(45);
    vTaskDelay(1000 / portTICK_PERIOD_MS);
    setAngle(0);
    vTaskDelay(1000 / portTICK_PERIOD_MS);
  }
}

void setup() {
  ledcSetup(servoChannel, servoFreq, servoResolution);
  ledcAttachPin(servoPin, servoChannel);
  xTaskCreate(TaskServo, "Servo", 2048, NULL, 2, NULL);
}

void loop() {
  vTaskDelete(NULL);  // Arduino 主循环需挂起
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
编辑 (opens new window)
#ESP32
ESP32-实时操作系统freertos
ESP32-网络摄像头方案

← ESP32-实时操作系统freertos ESP32-网络摄像头方案→

最近更新
01
ESP32-网络摄像头方案
06-14
02
ESP32-实时操作系统freertos
06-14
03
ESP32-点亮OLED屏幕
06-14
更多文章>
Theme by Vdoing | Copyright © 2019-2025 DC Wang All right reserved | 辽公网安备 21021102001125号 | 吉ICP备20001966号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式