0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在Arduino中简单实现PWM?

得捷电子DigiKey 来源:得捷电子DigiKey 作者:得捷电子DigiKey 2021-05-21 10:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

Q A &在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,不同的占空比输出的电压电平各不相同,具体如下所示:

pIYBAGCnHfqAN6DpAAAyvZjRLxs187.jpg

应用示例:调节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 pinas output

}

void loop (){

analogWrite(ledPin, 255); //set duty cycleto always on

}

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

原文标题:在Arduino中轻松实现PWM应用?跟我学,你也行!

文章出处:【微信公众号:得捷电子DigiKey】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    116

    文章

    5847

    浏览量

    223817
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195966

原文标题:在Arduino中轻松实现PWM应用?跟我学,你也行!

文章出处:【微信号:得捷电子DigiKey,微信公众号:得捷电子DigiKey】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LuatOSPWM实现LED亮度调节与呼吸灯的实战教程

    PWM在LED亮度调节和呼吸灯效果实现方面有着广泛应用。在LuatOS环境,如何高效运用PWM功能是开发者需要掌握的关键。本实战教程将通过具体案例,引导开发者快速上手,轻松
    的头像 发表于 11-11 19:05 7151次阅读
    LuatOS<b class='flag-5'>中</b><b class='flag-5'>PWM</b><b class='flag-5'>实现</b>LED亮度调节与呼吸灯的实战教程

    何在LTspice添加电压控制开关

    电压控制开关是 LTspice 的基本电路元件,能够以简洁的方式在电路实现开路或短路行为,并支持在仿真过程动态切换。完善原理图后,设计人员最终可能需要采用更精确的FET或开关模型,但在设计初期,较
    的头像 发表于 09-11 15:50 4534次阅读
    如<b class='flag-5'>何在</b>LTspice<b class='flag-5'>中</b>添加电压控制开关

    何在 NuMaker-IoT-M467 板上使用 Arduino IDE 控制 Wi-Fi 模块?

    在NuMaker开发板上,有一个ESP-12F Wi-Fi模块;但是,Arduino IDE 的 NuMaker UNO 包不提供该模块的相关控制。如果您希望在 Arduino IDE
    发表于 09-04 08:28

    何在 buildroot 的 rootfs 显示当前目录?

    何在 buildroot 的 rootfs 显示当前目录?
    发表于 09-03 07:02

    何在AMD Vitis Unified 2024.2连接到QEMU

    在本篇文章我们将学习如何在 AMD Vitis Unified 2024.2 连接到 QEMU。 这是本系列的第 2 篇博文。要了解如何设置和使用 QEMU + 协同仿真,请参阅开发者分享|在 AMD Versal 自适应 SoC 上使用
    的头像 发表于 08-06 17:24 1485次阅读
    如<b class='flag-5'>何在</b>AMD Vitis Unified 2024.2<b class='flag-5'>中</b>连接到QEMU

    何在树莓派上安装并运行 Arduino 集成开发环境!

    使用树莓派单板计算机,你可以运行各种应用程序,包括广受欢迎的Arduino集成开发环境(IDE)。这意味着你可以用它轻松地为通过USB连接到树莓派计算机的微控制器编程,以创建交互式电子项目。下面
    的头像 发表于 07-01 17:41 4041次阅读
    如<b class='flag-5'>何在</b>树莓派上安装并运行 <b class='flag-5'>Arduino</b> 集成开发环境!

    《ESP32S3 Arduino开发指南》第二章 Arduino基础知识

    的发展,在Arduino出现以前,虽然也有很多公司在推广一些简单易用的可编程控制器,但是由于开发平台种类繁多,而且使用这些控制器基本上都需要对电子技术、数字逻辑、寄存器等内容进行多方面的了解和学习,才能
    发表于 05-13 09:28

    何在 IMX93EVK 启用 PWM

    在 IMX93EVK 启用 PWM
    发表于 04-14 07:20

    何在S32K146实现以下功能?

    原来有一个项目芯片是MPC5606B(CodeWarrior编译器),现在换成S32K146(S32DS ARM),其中有段代码移植遇到了些问题,请问如何在S32K146实现以下功能,请帮忙
    发表于 04-04 08:00

    何在热敏打印机实现图片的灰阶打印效果吗?

    谁知道如何在热敏打印机实现图片的灰阶打印效果。 现在基本上文字打印,图片打印功能都已开发结束,图片打印现在用的是点阵打印的方法。想增加灰阶打印的效果。 有哪个大神做过相关方面开发,知道如何
    发表于 04-03 08:40

    何在Simulink启用ADC校准?

    何在 Simulink 启用 ADC 校准? V4.2.0 产品发布报告指出,它在块可用。但我在 ADC 配置块找不到任何选项。
    发表于 03-31 07:50

    在imx93,如何在flexio引脚模拟spi功能?

    何在 flexio 引脚模拟 spi 功能?我看到了实现 I2C 的文档,但没有看到 SPI 的文档。也搜索了内核。谁能提供任何文档或示例来开始仿真 SPI?
    发表于 03-21 06:59

    冗余电路的概念、作用及如何在设计实现

    以及如何在设计实现这一技术。 我们来了解一下什么是冗余电路。 简单来说,冗余电路就是在正常电路之外添加的额外电路或元件。这些额外的部分在正常情况下可能不会工作,但当主要电路出现问题时
    的头像 发表于 01-17 09:41 2088次阅读

    高压逆变器的载波基础PWM技术比较

    逆变器近似出所需的交流波形,从而实现有效且平稳的电力传输给负载。载波波形的形状在与参考信号进行比较时区分了不同的PWM技术。主要的三种载波基础PWM技术包括三角波
    的头像 发表于 01-15 11:01 1385次阅读
    高压逆变器<b class='flag-5'>中</b>的载波基础<b class='flag-5'>PWM</b>技术比较

    如何使用Arduino实现CAN总线通信呢

    的硬件模块实现CAN总线通信。 硬件需求 Arduino板 :任何支持Arduino IDE的板子都可以,例如Arduino Uno、Mega等。 CAN总线模块 :例如MCP2515
    的头像 发表于 12-23 09:06 2817次阅读