信号发生器的制作教程

电子说

1.3w人已加入

描述

步骤1:最简单的信号发生器

信号发生器

信号发生器

信号发生器

对于最简单的信号发生器,只需将AD9833模块焊接到Arduino Nano的背面。不需要PCB。

我选择的AD9833模块与此类似。我并不是说这是最好或最便宜的供应商,但您应该购买一张看上去像该照片(或照片令人赞叹)的照片。

模块之间的连接是:

接地在一起

D2 = FSync

D3 = Clk

D4 =数据

D6 = AD9833的Vcc

AD9833由Arduino的数据引脚D6供电-Arduino可以提供足够的电流。我添加了一个100n的去耦电容,因为我认为应该这样做,但看不到任何区别-AD9833模块板上已经有一个去耦电容。

如果您很喜欢,您可能会担心“模拟地面”与“数字地面”,但是如果您花哨的话,则要花费超过4英镑。

最简单的信号发生器是通过USB电缆控制和供电的一台电脑。 USB仿真运行在115200bps(8位,无奇偶校验)的串行端口。命令为:

‘0’。.‘9’:将数字移到“最小”频率阵列中

‘S’:设置AD9833频率并产生正弦波

‘T’:设置频率并产生三角波

‘Q’:设置频率并产生方波

‘R’:重置AD9833

‘M’:将“最小”频率阵列复制到“最大”阵列中

‘G’:在1秒钟内从“最小”扫描到“最大”

‘ H’:在5秒内从“最小”扫描到“最大”

‘I’:在20秒内从“ min”扫描到“最大”

Arduino程序包含两个6个字符的数组“ min”和“ max”。如果您传输一个数字,则将其移入“ min”数组。如果发送“ S”,则“ min”数组字符将转换为longint频率并发送到AD9833。因此,发送字符串

002500S

会将AD9833输出设置为2500Hz正弦波,您必须始终发送所有6位数字,最低频率为000001。并且最大频率为999999。

如果您发送“ M”,则“最小”数组为复制到“最大”数组中。如果发送“ H”,则AD9833会在5秒内重复输出逐渐增加的频率。它以“最小”频率开始,5秒钟后以“最大”频率开始。因此

020000M000100SH

从100Hz扫描到20kHz。频率变化是对数的,因此1秒钟后频率将为288Hz,2秒后为833Hz,然后为2402、6931和20000。频率每毫秒变化一次。

您可以下载Windows EXE程序,在该程序下发送所需的命令,或者您可以编写自己的命令。 Arduino INO文件也在此处。

步骤2:添加OLED

信号发生器

信号发生器

信号发生器

如果添加OLED和两个按钮,则信号发生器可以在没有PC的情况下单独工作。

读过Instructurable Oscillable示波器的您将认识到相似之处。可以将AD9833模块添加到我的示波器中,以产生“火柴盒中的示波器和信号发生器”。

显示器是运行在3.3V电压下的1.3英寸OLED,由SH1106芯片通过I2C控制

在eBay上搜索1.3英寸的OLED。我不想推荐特定的卖家,因为链接很快就会过时。选择一个看起来像这张照片,说“ I2C”或“ IIC”,并且有四个标记为VDD GND SCL SDA的引脚。 (某些显示器的插针顺序似乎不同。请检查它们。I2C时钟的正确名称是“ SCL”,但在eBay上,这些板可以像照片中的一样贴上“ SCK”的标签。)

在我的示波器中,可以在步骤8中对OLED库进行更全面的介绍。您应该下载并安装步骤8中的驱动程序库SimpleSH1106.zip。(我不想在此处上传另一个副本,并且需要维护两个副本。)

可以从下面下载INO文件。用于OLED的引脚号在第70行左右声明。如果您已在“火柴盒中构建了示波器和信号发生器”,并希望使用它测试此INO文件,则可以通过#define启用备用引脚号。

我已经显示了该电路的配电盘布局。有两个配电盘-一个用于Nano和AD9833,另一个用于显示器。他们应该形成一个三明治。这些板是从组件侧显示的。细软线将两块板连接在一起。将板与焊接的支架固定在一起。在我的图表中,铜板的铜线显示为青色。红线是电子白板上的电线链接或将木板连接在一起的柔性电线。我没有显示电源和“信号”引线。

AD9833模块焊接在配电盘的铜侧-与Nano相对的一侧。将引脚焊接到铜条上,然后将AD9833固定在其上并焊接。

显示屏显示单个频率或“最小”和“最大”频率。

有有两个按钮:“水平”按钮选择一个频率位数,一个“垂直”按钮更改该位数。

我从正在开发的电路中为信号发生器供电-我一直我的工作站上有5V电压。

第3步:未来发展

信号发生器

可以用电池供电吗?是的,只需添加连接到Nano的RAW引脚的9V PP3。它通常使用20mA电流。

是否可以由单个锂电池供电?我不明白为什么不这样。您应该将OLED Vdd及其上拉电阻连接到3.7V电池(我怀疑Arduino的3.3V输出是否可以正常工作)。

在测试频率时,扫描发生器更有用滤波器的响应(如果可以绘制幅度与频率的关系图)。测量信号的幅度非常棘手-对于低频,您必须权衡包络检波器的衰减与纹波之间的关系,而对于高频,则必须权衡响应时间。构建了振幅检测器之后,您可以将其输出馈送到“最简单信号发生器”的Arduino ADC中,然后将结果以及当前频率发送到PC。

此页面非常有用起点或在Google上搜索“信封检测器”或“峰值检测器”。在上面的建议电路中,您将设置信号频率,等待它稳定下来,将Arduino A0引脚设置为输出数字低电平,等待放电C,将A0设置为输入,等待,然后使用ADC测量。让我知道你的生活。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分