Arduino平台软硬件原理及使用——PWM脉宽调制信号的原理及使用
文章目录:
一、先看百度百科给出的定义及原理
二、一图看懂PWM脉宽调制原理
三、Arduino中PWM脉宽调制信号的使用
一、先看百度百科给出的定义及原理
脉冲宽度调制是一种模拟控制方式,根据相应载荷的变化来调制晶体管基极或MOS管栅极的偏置,来实现晶体管或MOS管导通时间的改变,从而实现开关稳压电源输出的改变。这种方式能使电源的输出电压在工作条件变化时保持恒定,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。广泛应用在从测量、通信到功率控制与变换的许多领域中。
脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但宽度不一致的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率。
二、一图看懂PWM脉宽调制原理
对于上述文字读起来的确专业但更晦涩难懂,因此我们通过下文来了解其基本原理;
上图为给端口分别输出高电平及低电平时的波形,其分别恒定在高低两个电平不会发生变化,且输出电压也分别恒定在5V与0V,但如果想输出中间数值的电压,则需要进行PWM脉宽调制。
如上图所示,每两条蓝色虚线之间为一个周期,通过调节一个周期内高低电平的占比从而可以得到不同的输出电压,此时高电平所占一个周期的比例,称之为“占空比”。
比如占空比为75%时,则可以输出3.75V的电压——即5V * 75%;
比如占空比为20%时,则输出1V的电压——即5V * 20%。
三、Arduino中PWM脉宽调制信号的使用
观察arduino板中数字信号区域(DIGITAL),其中3、5、6、9、10、11号端口后都带有“~”符号,也就表示这几个端口都可以输出PWM信号,使用方法也很简单:
通过LED发光二极管的亮度控制来演示PWM信号的使用:
void setup()
{
pinMode(3,OUTPUT);
pinMode(4,OUTPUT); //设置3、4号端口为输出
digitalWrite(4, LOW); //设置4号端口为低电平
}
void loop()
{
analogWrite(3, 0); //亮度最暗
delay(1000); //延时1000毫秒
analogWrite(3, 100); //逐渐变亮
delay(1000); //延时1000毫秒
analogWrite(3, 200); //逐渐变亮
delay(1000); //延时1000毫秒
analogWrite(3, 255); //亮度最亮
}
观察上述程序,其可实现LED发光二极管不同亮度的变化,并注意PWM信号范围为0~255,即0为最低电平,255为最高电平,其中间的数值则按照比例进行转换成相应的电平。
除了可以使用PWM脉宽调制信号来控制LED发光二极管的亮度外,也可用于控制风扇的转速等。
关于PWM脉宽调制信号的具体实例可参考文章——Arduino项目式编程教学第二章——呼吸灯
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!