MWX 发表于 2023-5-31 13:50:00

如何实现软启动?

本帖最后由 MWX 于 2023-6-1 18:27 编辑

u16 KHZ;ZKB;

void PWMA_config(void);


void main(void)
      
{
      KHZ = 500;          //频率
      ZKB = KHZ/(1+1);   //占空比
         
}
上是对称PWM,(占空比ZKB上电时,频率KHZ的值减10(KHZ-10),慢慢减到ZKB值。就是慢启动。
梁工:请给指导写一下。



WHX 发表于 2023-5-31 15:44:10

本帖最后由 wenhuixuan 于 2023-5-31 15:45 编辑

你这个所谓的慢启动,不就是电机的软启动吗?这个好办,你只要设置1个定时器(比如10ms),从最小值开始每计时1次就把占空比加(或减)1,一直加(或减)到需要的最终值即可实现软启动的效果了。

梁工 发表于 2023-5-31 16:53:54

wenhuixuan 发表于 2023-5-31 15:44
你这个所谓的慢启动,不就是电机的软启动吗?这个好办,你只要设置1个定时器(比如10ms),从最小值开始每 ...

没看懂你的慢启动是要怎么操作。

如果是用于功率控制,我们一般称之为“软启动”,即PWM从某个最小占空比开始,按一定的速度逐渐加大到设定值,这个过程,PWM周期通常是不变的。

MWX 发表于 2023-6-1 18:12:14

本帖最后由 MWX 于 2023-6-1 18:27 编辑

对,是软启动。
占空比最小到设定值。试了芯片的PWM特性,点空比=频率除2,
       PWMA_ARR    = KHZ;          //频率
      PWMA_DTR    = 10;                  // 死区
      PWMA_CCR1   = ZKB;                // 占空比=频率除2(50%对称)
       这三条任变频。省好多语句。

上面三条语句可修改频度范围也大,最稳定,网上的程序都麻烦。单要PWM输出几句就可以。不外调频率等功能简单多了。
要按键调频率,还要频率抖动,要有好多穿插。用中断可能就没有简单的路,STC也没有这方面例程。全国也没找出个正确的。


劳烦梁工,搞个例出来。

网上视频小儿科,不行的。

梁工 发表于 2023-6-2 12:07:12

MWX 发表于 2023-6-1 18:12
对,是软启动。
占空比最小到设定值。试了芯片的PWM特性,点空比=频率除2,
       PWMA_ARR    = KHZ;   ...

看不明白你的描述,搞不懂你的要求,无法写啊。

MWX 发表于 2023-6-2 15:04:09

本帖最后由 MWX 于 2023-6-2 15:06 编辑

早上还想单片机是一万条路,自己去创,不行开个窗能跑出去就行。
要啰嗦些话:如普通方波式就不用讨教了。芯片给了PWM功能,那就以PWM功能来设计,ARRHARRLCCRH CCRL 是高底位写法,啰嗦写出对称互补也可以。使用PWM就是需要个可控制的方波信号,对称互补是指定要求。占空比(脉宽控制功率),(频率可调,点空比可调)为何要搞出那么多乱事?ARR和CCR不用拆分就OK了,按键控制改变ARR和CRR就可实现应市场大部分使用要求。
软启动是硬件PWM芯片都有的功能,需要片机也要有这功能,现在只能用程序实现软启动。我的设想上电3秒时间控制CRR的值 递增或递减到指定值。(按键调功率的也需变化CCR)这需要使用中断吧?使用PWM中断还是普通中断,还是混合全用{:4_167:}?还是CCR必须拆分为H/L高低位?能否只变化CCR值,不扯其它?

PWMx_CCR1 =PWMx_ARR除2, PWMx_ARR的值就是周期频率的值,也不用算!输入值测出后加减就可以,PWMx_ARR()除2=50%占空比,实用的设定方法,

发贴要验证码,还是孩子思维。

梁工 发表于 2023-6-2 23:28:11

本帖最后由 梁工 于 2023-6-2 23:29 编辑

MWX 发表于 2023-6-2 15:04
早上还想单片机是一万条路,自己去创,不行开个窗能跑出去就行。
要啰嗦些话:如普通方波式就不用讨教了。 ...
PWM是一个通用外设,需要复杂控制时,就要用到好多寄存器,你只是从你的简单应用出发提的要求,而厂家设计外设要考虑各种应用。
软启动,按一定时间间隔逐渐加大占空比至目标值即可。

Mentat. 发表于 2025-5-6 14:03:14

梁工 发表于 2023-5-31 16:53
没看懂你的慢启动是要怎么操作。

如果是用于功率控制,我们一般称之为“软启动”,即PWM从某个最小占空 ...

梁工您好 请问如果想从1000占空比开始软启动到2000 是开一个10ms中断 每执行一次pwm+1吗{:ciya:}

梁工 发表于 2025-5-6 15:55:59

Mentat. 发表于 2025-5-6 14:03
梁工您好 请问如果想从1000占空比开始软启动到2000 是开一个10ms中断 每执行一次pwm+1吗 ...

差不多是这个意思,间隔多久,看你要求的启动时间,占空比从d1到d2经过N次递增,递增间隔时间为t,则总软启时间为N*t。
比如电机启动,占空比从0~1000,1ms递增1,则软启时间为1S。

Mentat. 发表于 2025-5-9 15:11:58

梁工 发表于 2025-5-6 15:55
差不多是这个意思,间隔多久,看你要求的启动时间,占空比从d1到d2经过N次递增,递增间隔时间为t,则总软 ...

谢谢{:daku:}
页: [1]
查看完整版本: 如何实现软启动?