ESP32入门教程(三)基于ESP-32 WROOM开发版的SG90舵机控制

源代码GIT链接:https://gitee.com/dhxiaotu/esp32-sg90.git

DIY模块地址  https://shop64022682.taobao.com/

1.打开VsCode,点击左边栏PlatformIO图标->点击”Create New Project”按钮->点击“+ New Project”按钮,新建工程。

2.在弹出的工程向导对话框中,填选相应信息。Name:工程名,Board:开发板类型,Framework:框架,Location:工程文件在PC的存放路径,可以选默认路径或者自己设置。

3.工程创建成功后,会自动生成默认源代码。在src目录下的main.cpp文件即为主程序文件。

setup()函数程序一启动便首先运行,且只运行一次,可以将系统的初始化代码放在这里面。

loop()函数是主函数,在setup()之后循环执行。

myFunction()函数是用户自定义程序,用户可以随意添加代码。

鼠标右击main.cpp->在弹出菜单中选择”Reveal in File Export”,即可打开文件所在的文件夹。

4.SG90舵机原理

SG90舵机是通过PWM信号控制旋转角度的一种伺服电机。其中,PWM(Pulse-width modulation)是脉冲宽度调制的缩写,其原理是通过调节高电平在整个脉冲周期中所占的比例来控制电机角度。具体到SG90舵机,它的PWM控制信号周期是20毫秒,高电平所占比例是0.5毫秒到2.5毫秒,高电平所占的时间长短与舵机的旋转角度成正比,高电平0.5毫秒对应舵机角度为0度,2.5毫秒对应角度180度。

电路接线如下图所示:

5.去除无关代码,编写ESP32驱动SG90的代码。

首先,设置PWM信号的输出引脚为GPIO15,设置中断定时器的超时时间设为10微秒。

2.5毫秒-0.5毫秒=2毫秒=2000微秒=200个10微秒

180度÷200=0.9度

即定时器超时时间设为10微秒时,电机的最小旋转角度为0.9度。

在定时器中断响应函数中,检测计数器是否小于高电平中断数cntHigh,

小于cntHigh则说明在高电平区间内;

大于cntHigh小于2000(20ms),则说明在低电平区间内;

大于2000,则说明新的脉冲周期开始了。

在loop()主循环中循环累加高电平时间,使高电平时间在0.5毫秒到2.5毫秒之间循环,对应的舵机角度在0度到180度之间循环。

5.点击PlatformIO:Upload按钮,编译代码,并把程序烧录到开发板上。

烧录成功后,舵机开始循环转动。

为了搭建 ESP32-WROOM-32开发环境,你需要进行以下步骤: 1. 下载并安装 Arduino IDE:在 Arduino 官方网站上下载适用于你的操作系统的 Arduino IDE,并按照说明进行安装。 2. 安装 ESP32 开发板支持:打开 Arduino IDE,点击菜单栏中的 "文件" -> "首选项"。在 "首选项" 窗口中找到 "附加开发板管理器网址" 一栏,并添加以下链接: `https://dl.espressif.com/dl/package_esp32_index.json` 然后点击 "确定" 关闭 "首选项" 窗口。 3. 安装 ESP32 开发板:点击菜单栏中的 "工具" -> "开发板" -> "开发板管理器"。在 "开发板管理器" 窗口中,搜索 "esp32" 并选择 "esp32 by Espressif Systems"。点击 "安装" 按钮,等待安装完成。 4. 配置开发板:选择 "工具" -> "开发板",确保选择了正确的 ESP32 开发板(例如 "ESP32 Dev Module")。然后选择正确的端口,该端口应该是你的 ESP32-WROOM-32 连接到计算机时所显示的端口。 5. 测试开发环境:现在你可以尝试上传一个简单的示例程序到 ESP32-WROOM-32 来测试你的开发环境是否正常工作。选择 "文件" -> "示例" -> "ESP32" -> "Blink"。这将打开一个简单的示例程序,该程序会使 ESP32-WROOM-32 上的内置 LED 闪烁。点击 "上传" 按钮,等待上传完成。 如果一切顺利,你将看到 Arduino IDE 输出上传过程的信息,并在上传完成后,ESP32-WROOM-32 上的 LED 开始闪烁。这表明你已经成功搭建了 ESP32-WROOM-32开发环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值