pwm的频率:
是指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期);
也就是说一秒钟PWM有多少个周期
单位: Hz
pwm的周期:
T=1/f
周期=1/频率
50Hz = 20ms 一个周期
如果频率为50Hz ,也就是说一个周期是20ms 那么一秒钟就有 50次PWM周期
占空比:
是一个脉冲周期内,高电平的时间与整个周期时间的比例
单位: % (0%-100%)
表示方式:20%
PWM呼吸灯
#include "reg52.h"
#include "main.h"
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint ms)
{
uint i,j;
for(i=ms;i>0;i--)
{
for(j=100;j>0;j--);
}
}
void pwm(uchar k)
{
uchar n;
for(n=0;n<10;n++)
{
LED1=0xff;
LED2=0xff;
delay(k);
LED1=0x00;
LED2=0x00;
delay(10-k);
}
}
void main()
{
uchar t;
while(1)
{
for(t=1;t<10;t++)
{
pwm(t);
}
for(t=9;t>0;t--)
{
pwm(t);
}
}
}
PWM对舵机的控制
舵机的控制就是通过一个固定的频率,给其不同的占空比的,来控制舵机不同的转角
舵机的频率一般为频率为50HZ,也就是一个20ms左右的时基脉冲,而脉冲的高电平部分一般为0.5ms-2.5ms范围。来控制舵机不同的转角
500-2500us的PWM高电平部分对应控制180度舵机的0-180度
以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;