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

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

3天内不再提示

如何使用Arduino开发板制作函数生成器(波形发生器)

454398 来源:一板网 作者:风筝 2020-10-22 13:38 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

对于喜欢偶尔鼓捣电子产品的工程师来说,他们都希望能有自己的实验室。万用表、钳形表、示波器、LCR表、函数发生器、双模电源和自动变压器都是实验室的基本配置。虽然所有这些都可以购买,但我们也可以轻松地自行制作,如函数发生器和双模电源。

在本篇文章中,我们将学习如何使用Arduino开发板快速轻松地制作自己的函数生成器。该函数发生器又称波形发生器,可产生频率范围为1Hz至2MHz的方波(5V / 0V),波形频率可通过旋钮控制,占空比固定为50%,但在本文中也很容易改变。除此之外,波形发生器还可以通过频率控制产生正弦波。请注意,此波形发生器不是工业级的,不能用于严格的测试。但除此之外,它将为所有业余爱好项目派上用场,您无需等待数周的运输。还有什么比使用我们自己制作的设备更有趣。

所需的材料

● Arduino Nano开发板

● 字符型图形点阵液晶1602

● 旋转编码器

电阻(5.6K,10K)

电容(0.1uF)

● 焊接套件

电路原理

该Arduino函数发生器的完整电路图如下所示。正如您所看到的,我们使用Arduino Nano开发板作为项目的主控,1602 LCD显示当前正在生成的频率值。我们还有一个旋转编码器,可以帮助我们设置频率。

整个设备由Arduino自身的USB端口供电。我之前使用过的连接由于某些原因并没有达到要求,我们将在本文后面讨论这些原因。因此,我不得不通过改变引脚顺序来接线。无论如何,你不会有任何问题,因为它全部整理好,只需仔细按照电路知道哪个引脚连接到什么。您还可以参考下表来验证您的连接。

Arduino引脚 连接到
D14 连接到LCD的RS
D15 连接到LCD的RN
D4 连接到LCD的D4
D3 连接到LCD的D5
D6 连接到LCD的D6
D7 连接到LCD的D7
D10 连接到旋转编码器的2脚
D11 连接到旋转编码器的3脚
D12 连接到旋转编码器的4脚
D9 输出方波
D2 连接到Arduino的D9
D5 输出SPWM然后转换为正弦

电路非常简单;我们在引脚D9上产生方波,可以这样使用,该方波的频率由旋转编码器控制。然后为了获得正弦波,我们在引脚D5上产生SPWM信号,其频率必须与PWM频率相关,因此我们将这个PWM信号提供给引脚D2作为中断,然后使用ISR来控制正弦波的频率。

您可以在面包板上构建电路,也可以制作一个PCB。但我决定将它焊接在Perf板上以快速完成工作并使其长期可靠使用。所有连接完成后,我的电路板看起来像这样。

如果您想了解更多关于如何使用Arduino生成PWM和正弦波的信息,请阅读以下段落,或者您可以直接向下滚动到编程Arduino部分。

产生变频方波

使用Arduino的人可能很熟悉Arduino只需使用模拟写入函数即可生成PWM信号。但是这个函数仅限于控制PWM信号的占空比而不是信号的频率。但是对于波形发生器,我们需要一个可以控制频率的PWM信号。这可以通过直接控制Arduino的定时器并根据它切换GPIO引脚来完成。但是有一些预先构建的库可以完全相同并且可以这样使用。我们使用的库是Arduino PWM频率库。我们将在代码部分讨论有关此库的更多信息。

这个库也有一些缺点,因为库改变了Arduino中默认的Timer 1和Timer 2设置。因此,您将无法在Arduino上再使用伺服库或任何其他与计时器相关的库。引脚9、10、11和13上的模拟写入函数也使用定时器1和定时器2,因此您将无法在这些引脚上产生SPWM。

这个库的优点是它不会干扰Arduino的定时器0,其比定时器1和定时器2更重要。因此你可以自由地使用延迟函数和millis()函数而没有任何问题。引脚5和6也由定时器0控制,因此我们在这些引脚上使用模拟写或伺服控制操作时不会遇到问题。最初花了一些时间才弄清楚这一点,这就是为什么接线搞砸了。

使用Arduino生成正弦波

我们知道微控制器是数字设备,它们不能仅仅通过编码产生正弦波。但是,在从微控制器获得正弦波的两种流行方法中,一种是使用DAC,另一种是通过创建SPWM。不幸的是,Arduino开发板(除了Due)没有内置DAC来产生正弦波,但你总是可以使用简单的R2R方法构建自己的DAC,然后用它来产生正常的正弦波。但是为了减少硬件工作,我决定使用后面的方法,创建SPWM信号然后将其转换为正弦波。

什么是SPWM信号?

术语SPWM代表正弦脉冲宽度调制。该信号与PWM非常相似,但对于SPWM信号,以这样的方式控制占空比,以获得与正弦波相似的平均电压。例如,在100%占空比时,平均输出电压为5V,在25%时我们将为1.25V,从而控制占空比,我们可以获得预定义的可变平均电压,这只是一个正弦波。这种技术通常用于逆变器

在上图中,蓝色信号是SPWM信号。请注意,波形的占空比在0%到100%之间变化,然后再回到0%。该曲线图绘制为-1.0至+ 1.0V,但在我们的情况下,由于我们使用的是Arduino,因此刻度将为0V至5V。我们将在下面的编程部分学习如何使用Arduino生成SPWM。

将SPWM转换为正弦波

将SPWM单个转换为正弦波需要H桥电路,该电路由最少4个电源开关组成。我们不会深入研究它,因为我们不在这里使用它。这些H桥电路通常用于逆变器。它利用两个SPWM信号,其中一个信号与另一个相移,并且两个信号都被施加到H桥中的电源开关,以使对角线相对的开关同时打开和关闭。通过这种方式,我们可以获得看起来类似于正弦波的波形,但实际上不会更接近上图中显示的任何波形(绿波)。为了获得纯波形输出,我们必须使用像低通滤波器这样的滤波器,它包括一个电感和电容。

但是在电路中,我们不会使用正弦波来为任何东西供电。我只是想从生成的SPWM信号创建该波形,所以我选择了一个简单的RC-Filter。您也可以尝试使用LC滤波器以获得更好的结果,但为了简单起见,我选择了RC。我的电阻值为620欧姆,电容为10uF。上图显示了引脚5的SPWM信号(黄色)和通过RC滤波器后获得的正弦波(蓝色)。

添加Arduino PWM频率库

● Arduino PWM频率库

在撰写本文时,Arduino PWM频率库V_05是最新版本,它将以ZIP文件形式供下载。 解压ZIP文件,然后您将得到一个名为PWM的文件夹。 然后导航到Arduino IDE的Libraries文件夹,对于Windows用户,它将位于路径C:\Users\User\Documents\Arduino\libraries中。 将PWM文件夹粘贴到libraries文件夹中。 有时你可能已经有一个PWM文件夹,这时,请确保用这个新文件夹替换旧文件夹。
编辑:hfy

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

    关注

    26

    文章

    6439

    浏览量

    121244
  • 波形发生器
    +关注

    关注

    3

    文章

    327

    浏览量

    32829
  • 生成器
    +关注

    关注

    7

    文章

    322

    浏览量

    22828
  • Arduino
    +关注

    关注

    190

    文章

    6527

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索 SN54LS181、SN54S181、SN74LS181 和 SN74S181 算术逻辑单元/函数生成器

    探索 SN54LS181、SN54S181、SN74LS181 和 SN74S181 算术逻辑单元/函数生成器 在电子工程师的日常设计工作中,选择合适的芯片是实现高效、可靠电路的关键。今天,我们就来
    的头像 发表于 04-22 16:40 333次阅读

    AD9832:25 MHz直接数字合成器波形发生器的深度解析

    AD9832:25 MHz直接数字合成器波形发生器的深度解析 在电子设计领域,直接数字合成器(DDS)以其高精度、高灵活性的特点,成为了众多工程师在信号
    的头像 发表于 04-16 09:45 372次阅读

    AD9102:高性能数模转换波形发生器的深度解析

    ADI公司的AD9102 TxDAC®和波形发生器,了解其特性、工作原理、应用场景以及编程方法。 文件下载: AD9102.pdf 产品概述 AD9102是一款高性能的14位、180 MSPS数模转换,集成了片上4096 ×
    的头像 发表于 04-13 10:30 214次阅读

    探索Renesas 9FGV0431:低功耗PCIe时钟生成器的卓越之选

    探索Renesas 9FGV0431:低功耗PCIe时钟生成器的卓越之选 引言 在当今的电子设计领域,PCIe技术的广泛应用对时钟生成器提出了更高的要求。Renesas的9FGV0431作为一款专为
    的头像 发表于 03-15 17:25 1182次阅读

    函数信号发生器和任意波形信号发生器区别详解

    函数发生器提供了一个预置列表,里面列出了它可以生成波形或码型。 在函数发生器中,用户可以更改频
    的头像 发表于 02-09 16:24 436次阅读
    <b class='flag-5'>函数</b>信号<b class='flag-5'>发生器</b>和任意<b class='flag-5'>波形</b>信号<b class='flag-5'>发生器</b>区别详解

    智能化的函数任意波形信号发生器 信号发生器品牌 任意波形信号发生器

    信号发生器
    知道点啥
    发布于 :2026年01月30日 10:26:14

    Spectrum仪器超高速任意波形发生器新增DDS选项

    性能。该系列产品在AWG模式下可生成高达10 GS/s采样率、16位分辨率及3.9GH带宽的波形。在新开发的DDS模式下,63xx系列任意波形发生器
    的头像 发表于 11-05 14:48 777次阅读
    Spectrum仪器超高速任意<b class='flag-5'>波形</b><b class='flag-5'>发生器</b>新增DDS选项

    标杆之作:Agilent 33250A函数/任意波形发生器综览

    在测试测量领域,有些仪器因其全面均衡的性能、可靠耐用的品质而成为行业标杆,被无数工程师奉为“实验室功臣”。安捷伦(Agilent)的33250A函数/任意波形发生器,正是这样一款在长达十余年
    的头像 发表于 10-13 15:08 826次阅读
    标杆之作:Agilent 33250A<b class='flag-5'>函数</b>/任意<b class='flag-5'>波形</b><b class='flag-5'>发生器</b>综览

    信号发生器选型指南:函数、射频与任意波形的差异与适用场景

    的差异,为选型提供参考。   一、函数发生器:基础测试的“万能工具” 函数发生器生成标准波形
    的头像 发表于 09-23 18:01 1931次阅读
    信号<b class='flag-5'>发生器</b>选型指南:<b class='flag-5'>函数</b>、射频与任意<b class='flag-5'>波形</b>的差异与适用场景

    全新旗舰任意波形发生器生成10 GS/s采样率和2.5 GHz带宽的波形

    全新旗舰任意波形发生器生成10 GS/s采样率 和2.5 GHz带宽的波形 Specrum仪器推出PCIe旗舰系列 任意波形
    的头像 发表于 09-19 14:54 960次阅读
    全新旗舰任意<b class='flag-5'>波形</b><b class='flag-5'>发生器</b>可<b class='flag-5'>生成</b>10 GS/s采样率和2.5 GHz带宽的<b class='flag-5'>波形</b>

    安捷伦agilent 33250a 函数发生器任意波形发生器

    安捷伦agilent  33250a 函数发生器任意波形发生器产品简介: 在轻便而坚固的箱体中内装了标准波形,任意
    的头像 发表于 08-13 16:56 1002次阅读
    安捷伦agilent  33250a <b class='flag-5'>函数</b><b class='flag-5'>发生器</b>任意<b class='flag-5'>波形</b><b class='flag-5'>发生器</b>

    如何用Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino Nano/UNO R3开发板重新烧录引导程序bootlaoder

    本文介绍了如何用能够Arduino IDE下载的Arduino Nano/UNO R3开发板给另一个Arduino IDE不能下载的Arduino
    的头像 发表于 08-08 20:16 4016次阅读
    如何用<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>开发板</b>给另一个<b class='flag-5'>Arduino</b> IDE不能下载的<b class='flag-5'>Arduino</b> Nano/UNO R3<b class='flag-5'>开发板</b>重新烧录引导程序bootlaoder

    AFG31000函数发生器在4200A平台下的远程集成应用

    AFG31000任意函数发生器可通过USB远程控制,具备内置波形应用与实时监测功能,支持脉冲与任意波形生成,频率覆盖25MHz至250MHz
    的头像 发表于 06-09 13:59 1401次阅读
    AFG31000<b class='flag-5'>函数</b><b class='flag-5'>发生器</b>在4200A平台下的远程集成应用

    雷击浪涌发生器波形验证

    在做雷击浪涌抗扰度测试前,通常我们都要检验下雷击浪涌模拟的电压与电流波形,一般我们会对浪涌发生器主机和浪涌发生器耦合去耦网络分别进行校准。雷击浪涌
    的头像 发表于 06-06 09:30 1351次阅读
    雷击浪涌<b class='flag-5'>发生器</b>的<b class='flag-5'>波形</b>验证

    Spectrum仪器推出通过以太网控制生成宽带信号的任意波形发生器

    波形发生器(AWG),其输出速率高达10 GS/s,分辨率为16位。新产品采用以太网连接技术,可通过电脑、笔记本电脑以及企业网络直接控制。此次发布的新产品主要服务于自动化和远程测试领域,尤其适用于直流至2.5GHz宽带的信号生成
    的头像 发表于 05-14 14:29 830次阅读
    Spectrum仪器推出通过以太网控制<b class='flag-5'>生成</b>宽带信号的任意<b class='flag-5'>波形</b><b class='flag-5'>发生器</b>