• 注册 / 登录
  • 切换到窄版
  • 查看: 1847|回复: 0

    PWM与电机调速

    [复制链接]

    676

    主题

    690

    帖子

    6810

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    6810
    发表于 2023-4-23 09:53:09 | 显示全部楼层 |阅读模式

    路线栈欢迎您!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    1、PWM含义

    PWM(Pulse Width Modulation)即脉冲宽度调制。如下图所示,方波的周期T=20ms,方波的高电平持续时间为t。T不变的情况下,调整t时长,即为PWM,其中t/T的值称作占空比。

    1.png

    2、C51单片机实现PWM

    使用定时器产生1ms的定时,变量pwm每1ms增加1。当pwm小于duty时ENA输出高电平,ENA高电平持续时间为duty;当pwm大于duty时ENA输出低电平,ENA低电平持续时间为20-duty;当pwm大于20时,pwm归0。程序中的duty就是上图中的t,控制占空比;程序中的20就是上图中的T,控制方波周期。


    1. void main()                              
    2. {  
    3.   TMOD=0X01;   
    4.   TH0= 0XFC;    //1ms定时初值
    5.   TL0= 0X18;
    6.   TR0= 1;      
    7.   ET0= 1;      
    8.   EA=1;      
    9.   duty=5;
    10.   …
    11. }

    12. void timer0() interrupt 1
    13. {
    14.   TH0=0XFC;   
    15.   TL0=0X18;
    16.   pwm++;     
    17.   
    18.   if(pwm<=duty)  
    19.   {
    20.     ENA=1;
    21.   }
    22.   else
    23.   {
    24.     ENA=0;
    25.   }
    26.   if(pwm>=20)
    27.   {
    28.     pwm=0;
    29.   }
    30. }
    复制代码

    3、电机调速

    如果ENA=1时电机工作,ENA=0时电机不工作,电机工作的时间为duty,调整duty的值就可以调整一个周期内电机工作的时长。一个周期内,电机工作时间占比越高,电机的平均转速也就越快。

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|路丝栈 ( 粤ICP备2021053448号 )

    GMT+8, 2024-12-23 00:48 , Processed in 0.047168 second(s), 22 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表