ESP32 Arduino 舵机控制

ESP32 Arduino 舵机控制

ESP32 Arduino 舵机控制

ESP32 Arduino 舵机控制

1. 前言

2. 安装程序库

3. 编写相关程序

3.1. 引入头文件

3.2. 定义控制引脚

3.3. 创建舵机对象

3.4. 舵机初始化

3.5. 完整程序

1. 前言

2. 安装程序库

打开库管理工具

工具 -> 管理库...

查找所需要的程序库

ESP32 的舵机控制库不止一个,而且即便是不引入库的情况下依旧可以能够实现舵机控制。在这里我们为了编写的程序更加简单,选择了ESP32Servo库。

直接搜索ESP32Servo,点击安装即可。

3. 编写相关程序

3.1. 引入头文件

刚才我们新安装的依赖库:

#include

3.2. 定义控制引脚

一般而言,舵机会接出三条线,分别是:VCC、GND 和信号线。VCC 和 GND 可以理解为供电电源的正负极,所以真正影响舵机控制的只有信号线,程序中所定义的引脚号也是与控制线所对应的。

#define PIN_SERVO 13

当然,引脚定义是必须的,但是使用宏定义并不是。直接定义全局变量或者在调用位置直接使用引脚号都是可以的。

3.3. 创建舵机对象

Servo 是依赖库ESP32Servo中定义的类,我们这一行代码实际上是在创建对应的实体。

Servo servo;

3.4. 舵机初始化

舵机初始化可以再分为三步:

设置 PWM 信号频率

舵机对象绑定到对应引脚,并设置脉冲宽度范围

设置舵机角度位置

程序上的实现如下:

// 设置 PWM 信号频率是 50 Hz

servo.setPeriodHertz(50);

// 舵机对象绑定到 PIN_SERVO(GPIO 13),

// 设置脉冲宽度范围是 500 - 2500 微秒

servo.attach(PIN_SERVO, 500, 2500);

// 设置舵机角度为 90 度

servo.write(90);

50 Hz 是大多数舵机的标准频率。

所谓的脉冲宽度其实是 "PWM 周期 * 占空比",即高电平在单个周期所占据的时间。500-2500 微秒也是一个常见的标准(对于 180 度舵机而言)。

单纯从舵机初始化这个方面来说,设置舵机角度位置其实是不必要的,这其实属于舵机控制部分,并不是没有这行代码我们就无法使用舵机对象。

但是从实际开发的角度来说,如果没有给定舵机初始角度,后续舵机的旋转位置其实是不可预知的。

3.5. 完整程序

#include

#define PIN_SERVO 13

Servo servo;

void setup() {

servo.setPeriodHertz(50);

servo.attach(PIN_SERVO, 500, 2500)

servo.write(90);

}

void loop() {

}

相关推荐

华光挂烫机价格报价|型号|评价|怎么样
365体育投注网站官网

华光挂烫机价格报价|型号|评价|怎么样

📅 08-31 👁️ 8475
十大好用的应用隐藏软件 应用隐藏app哪个好 免费的隐藏应用软件→榜中榜
何家英门生弟子——当代实力派青年工笔画画家展秀文
物流配货软件推荐:哪个平台更胜一筹?
365体育投注网站官网

物流配货软件推荐:哪个平台更胜一筹?

📅 09-27 👁️ 3554
植物大战僵尸,快速赚钱攻略与技巧全解析
beat365手机版中文

植物大战僵尸,快速赚钱攻略与技巧全解析

📅 12-30 👁️ 1294
张国荣逝世22周年,袁咏仪、古巨基发照片缅怀
365bet备用官网

张国荣逝世22周年,袁咏仪、古巨基发照片缅怀

📅 07-03 👁️ 3988