个人怎么建立网站吗,redis 密码 wordpress,怎样做平台销售,兰蔻搜索引擎营销案例每日一言 生活不会辜负每一个用力奔跑的人#xff0c;你只管努力#xff0c;时间自有答案。 案例#xff1a;PWM调速小车
回忆一下有更加了解#xff1a;
PWM#xff08;脉冲宽度调制#xff09;是一个通用的控制概念#xff0c;其核心是通过调节脉冲信号的占空比来实… 每日一言 生活不会辜负每一个用力奔跑的人你只管努力时间自有答案。 案例PWM调速小车
回忆一下有更加了解
PWM脉冲宽度调制是一个通用的控制概念其核心是通过调节脉冲信号的占空比来实现对目标对象的控制。由于这一特性PWM 技术被广泛应用于电子、电机控制、通信、电源管理等多个领域的各类模块和系统中。以下是具体说明
是的PWM 调速的核心就是通过计算平均电压来控制负载如电机、LED 等的能量输入。 小车 PWM 调速的核心原理并非利用惯性而是通过脉冲宽度调制技术来控制电机的平均电压从而调节转速。不过在实际应用中电机的机械惯性会影响调速的动态响应效果。以下是具体分析
一、PWM 调速的基本原理
1. PWM脉冲宽度调制的工作机制
方波信号通过微控制器如 Arduino、STM32输出高频方波信号通常频率为 10-20kHz信号的周期固定但高电平持续时间脉冲宽度可调。占空比高电平时间占整个周期的比例例如占空比 50% 表示方波一半时间为高电平一半为低电平。平均电压控制电机两端的平均电压与占空比成正比。例如占空比 100% 时电机接全电压全速占空比 50% 时平均电压为电源电压的一半转速相应降低。
2. 电机的响应特性
直流电机在 PWM 信号作用下电机通过电感的续流效应非惯性维持连续转动。当方波为高电平时电机通电加速低电平时由于电感存在电流不会立即中断而是通过续流二极管维持回路电机依靠电磁惯性而非机械惯性继续转动。转速与占空比的关系在理想情况下忽略摩擦、负载等电机转速与 PWM 占空比近似线性相关。
二、惯性在调速中的作用
虽然 PWM 调速的核心是电气控制但机械惯性会影响调速的动态过程
1. 加速 / 减速时的惯性延迟
当增大占空比提高目标转速时电机需要克服负载的机械惯性如小车质量、车轮摩擦才能达到新转速因此转速不会瞬间跳变而是有一个上升过程。反之减小占空比时电机也不会立即停转而是因机械惯性逐渐减速。
2. 惯性对控制精度的影响
在需要快速启停或精确调速的场景中如机器人避障机械惯性可能导致调速滞后需通过 PID 控制算法补偿而非依赖惯性本身。
三、常见误区惯性与续流的区别
续流效应电磁惯性由电机电感和续流二极管引起确保 PWM 低电平时电流连续属于电路特性与机械惯性无关。机械惯性指电机转子和小车运动部件的惯性质量影响转速变化的快慢是物理特性。
四、总结
核心原理PWM 调速通过调节占空比改变电机平均电压实现转速控制本质是电气控制而非利用惯性。惯性的角色机械惯性会影响调速的动态响应速度但属于被动的物理特性不是调速的原理依据。应用建议若需提高调速精度可结合 PID 算法补偿惯性延迟或选择低惯性电机如空心杯电机以提升响应速度。 我的话来总结一下哈PWM就是计算平均电压平均电压大就快小就慢这个电压大小与每个周期内的高电平占空比有关也就是高电平的时间占比越大那么电压就越大反则越慢 OK我们来写代码
我将会将每一段代码的下方进行代码块解释 main.c文件里面是要将我们的定时器初始化函数调用 还有一点这个extern我之前讲过这个关键字就是需要用到本工程其他.c文件的数据的时候因为我们也不可能去自己定义一个本身就是错误的思想因为县长村长和村长张三是不一样的而且变量也不允许重复定义语法层面也会报错正确用法是当main.c文件需要使用time0.c文件的speed数据那么我们使用这个关键字就可以直接使用time0.c的speed数据了
好的while里面就是把speed分别切换成18和40当18的时候就是占空比为45%那么就是平均电压也只有2.7v了我是4节电池共6v所以小车就慢了嘛如果看实际的现象也很明显一个轮子转得快一个转得慢 这个是延时函数 我们PWM肯定是要配置定时器的这个是毋庸置疑的因为PWM就是需要我们配置高低电平的各自占用时长那么我们要定一个好计算的基础单位比如这边我们使用0.5ms作为基础单位因为我们知道我们使用的是50hz的频率所以周期是20ms 20ms怎么算的(1/500.02s -20ms ) 20ms正好是40个0.5ms这样有利于我计算高电平的占空比。 当然了也可以自己配置其他的定时和频率像我们这个L9110s这个电机是可以适配50hz的但是也有其他的频率比如1khz 等等 这边就是我们的定时器中断上一段代码是配置定时器这个是中断函数也是配置PWM波形的主要核心区我们控制0.5ms的数量来模拟高电平的占空比这边我们定义一个count是为了累加0.5ms 的数量speed就是高电平的数量了count会去检测是否高电平的数量是否到达speed的值如果到了那么就将剩下的时间全部转换成低电平这样我们仅需要在main.c文件里面将speed赋值我们想要的占空比越高也就是speed越高但是小于40越高电压就越大那么就小车的速度越快。反之越慢。 dalay.h头文件声明函数 motor.h声明函数 time0.h声明函数