分享

51单片机产生PWM控制小车速度的两种方法

 昵称29273511 2015-12-08

首先你的先知道什么是PWMPWM是一种脉宽调制技术。简单的说就是在一个周期内高电平所占用的时间,通过改变脉冲的周期可以调频,改变脉冲的宽度或占空比可以调节驱动上的电压
将产生的PWM信号接到L298N的ENA和ENB端调节不同的占空比从而调节速度


第一种方法用单片机的定时器模拟出PWM。假如你用定时器延时100ms,50ms之前某一个引脚为低电平,50ms之后该引脚为高电平,这样高电平占用的时间为1/2,此时该引脚就会产生50%的占空比信号。

程序如下:

#include<reg52.h>

unsigned chartimer1;

sbit PWM=P1^1;

void system_Ini()

{TMOD|= 0x11;

TH1 = 0xfe; //11.0592

TL1 = 0x33;

TR1 =1;

IE=0x8A;

}

main()

{ system_Ini() ;定时器初始化

while(1)

{ if(timer1>100) timer1=0;

if(timer1<=30) pwm=0;//产生30%的占空比

else PWM=1;

}

}

另一种方法就是利用简单的延时产生PWM方波信号

#include<reg52.h>

unsigned char count=0;

sbit PWM_1=PI^1;//利用P1^1产生PWM

void mian()

{while(1)

for(count=0;count<=100;count++) //让单片机记100个数

{

If(count<=50){ PWM_1=1;}//前一半时间为高电平

else

PWM_1=0//后一半时间为低电平这样就产生了50%的占空比

}


PWM不仅能够控制小车速度还可以控制小灯的亮灭程度,朋友们可以去试试。水平有限,如果觉得对您有用请您推荐您的朋友关注我们,还请大神们轻喷。






    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多