在Arduino中轻松实现PWM应用?跟我学,你也行!

在Arduino中轻松实现PWM应用?跟我学,你也行!


关键词 : 开发工具, 方案

问:在Arduino中轻松实现脉宽调制(PWM)

脉宽调制( PWM  信号基本上是一个方波,可在导通(高)和关断(低)状态之间切换。PWM信号的占空比和频率用于确定PWM信号控制目标的动作。

PWM信号的 占空比 是指信号处于高电平(导通)状态的时间与完成一个周期所需的总时间之比,通常用百分比或比率来表示。


50%的占空比意味着,高电平状态占据一半的时间,低电平状态占据另一半时间。这与理想的方波相同。如果该比率大于50%,则逻辑高电平信号在周期中占用的时间比逻辑低电平多,反之亦然。因此,100%占空比表示信号始终处于导通状态(满量程),0%占空比表示信号始终处于关断状态(接地)。

可在Arduino上通过各种方式轻松实现PWM。下面这款Seeeduino板就是很好的学习和评估板。它基于ATmega328P单片机且与Arduino相兼容。

该板上包含6个引脚(即引脚3、5、6、9、10、11),可以输出带有 analogWrite() 函数的PWM波。调用 analogWrite() 函数,即可在PWM引脚上生成具有指定占空比的稳定方波。一般来说,这些引脚的频率在490Hz左右,而Seeeduino或类似板的引脚5和6的频率为980Hz。

Arduino引脚的输出电压为5V,不同的占空比输出的电压电平各不相同,具体如下所示:

占空比 输出电压电平
0% 0V
25% 1.25V
50% 2.5V
75% 3.75V
100% 5V


应用示例:调节LED的亮度

在下面这个应用示例中,我们将借助PWM技术,利用Arduino来控制LED的亮度。

  • 硬件连接


  • 软件

analogWrite()函数语法:

analogWrite ( pin , value ) ;

该值代表占空比,数值介于0(关断)和255(导通)之间。

int ledPin = 9; // LED connected to digital pin 9

void setup () {
pinMode(ledPin, OUTPUT); // sets the pin as output
}

void loop () {
analogWrite(ledPin, 255); //set duty cycle to always on
}

你可以针对不同的输出将“255”更改为0~255之间的任意数字,也可以修改代码以连续更改该值。


更多与Arduino开发技术相关的信息, 请查看



———————————————————–

如有任何问题,欢迎联系得捷电子Digi-Key客服团队。

中国(人民币)客服
- 400-920-1199
- service.sh@digikey.com
- QQ在线实时咨询 |QQ号:4009201199


中国(美金)/ 香港客服
- 400-882-4440
- 8523104-0500
- china.support@digikey.com

Digikey WeChat QR Code

到微信搜寻“digikey”或“得捷电子
关注我们官方微信
并登记成会员,
每周接收工程师秘技,
赚积分、换礼品、享福利

头像
得捷电子

评论已关闭。

Copyright©DigiKey Electronics