esp32 arduinoIDE PWM控制电机

#include <Arduino.h>
int t = 2000;
int channel_PWM = 3; //使用3号通道 定时器1 总共16个通道
// 舵机频率,那么周期也就是1/50,也就是20ms ,PWM⼀共有16个通道,0-7位⾼速通道由80Mhz时钟驱动,后⾯8个为低速通道由1Mhz
int freq_PWM = 50; //50HZ pwm波
// PWM分辨率,取值为 0-20 之间 ,这⾥填写为10,那么后⾯的ledcWrite 这个⾥⾯填写的pwm值就在 0 - 2的10次⽅ 之间 也就是 0-1024,如果是要求不⾼的东西你可以直接拿1000去算了
int res_PWM = 10; //分辨率 0-1024 共1025
const int PWM_PIN = 15; //使用4号引脚
void setup() {
ledcSetup(channel_PWM,freq_PWM,res_PWM); //设置通道
ledcAttachPin(PWM_PIN,channel_PWM); //将引脚绑定到通道上
}
//正传t秒 停止t秒 反转t秒 停止t秒 循环…
void loop() {
ledcWrite(channel_PWM,25.6); //20ms⾼电平为1ms左右 ,也就是1/201024 = 52,此时360度舵机正传5秒
delay(t);
// ledcWrite(channel_PWM, 77); //20ms⾼电平为1.5ms左右 ,也就是1.5/20
1024 = 77,此时360度舵机⼏乎停转
// delay(t);
ledcWrite(channel_PWM, 128); //20ms⾼电平为2ms左右 ,也就是2/201024 = 102,此时360度舵机反转
delay(t);
// ledcWrite(channel_PWM, 77); //20ms⾼电平为1.5ms左右 ,也就是1.5/20
1024 = 77,此时360度舵机⼏乎停转
// delay(t);
//ledcDetachPin(PWM_Pin); //这个是解除IO⼝的pwm输出功能模式
}

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

acanab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值