数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 5079|回复: 21

[Arduino] pwm生成正弦波的最终版本

[复制链接]
发表于 2020-4-26 08:45:17 | 显示全部楼层 |阅读模式
最后终于把输出频率提高到2Khz,基本算是这个uno的极限了吧,对我来说

50hz,频率稳定在正负千分之一左右,波形也比较完美,但是还是有不足之处
不知是示波器问题还是波形本身




500hz,提高10倍




放大波形也还可以


1khz,波形也可以吧




2Khz,这时波形就相对差些,因为采样率低了,不低的话就很难上到2khz了


可以看到粗糙的痕迹了


看看在高低峰谷有锯齿


如果提高pwm的频率,波形稍有改善




基本原理:提高pwm的输出频率,原有的1k或者500左右的pwm是不够几百以上频率的输出用的
,要想比较完美,输出起码是输出的几十倍,虽然增加rc滤波也可以提高输出平滑度,但是输出幅度也会下降!
另外,这是采用中断方式的输出,看来中断方式定时再没有干扰的条件下还是比较精确的
:loveliness:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 4家元 +80 收起 理由
jf201006 + 20 謝謝分享
沙漠臭屁虫 + 20
ynqjzzh + 20 謝謝分享
aec + 20 謝謝分享

查看全部打赏

发表于 2020-4-29 12:43:42 | 显示全部楼层
搞信号发生器果断FPGA+DAC啊 几十MHz都小意思
回复 支持 反对

使用道具 举报

发表于 2020-4-28 22:26:47 | 显示全部楼层
建议LZ上KEIL MDK的船。做任意波形发生器,STM32F4的速度加DMA的协助,如虎添翼啊。两个通道的12位高速DAC,可以满足楼主的欲望。

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 20:07:52 | 显示全部楼层
la45088d1 发表于 2020-4-28 19:48
换个IDE吧,Keil欢迎您。

哈哈,真的没那个勇气了,由简到难难啊:loveliness:,用惯简单的了:loveliness:
回复 支持 反对

使用道具 举报

发表于 2020-4-28 19:48:41 | 显示全部楼层
人艰不拆了 发表于 2020-4-28 11:45
其实最完美的可能还是stm单片机,可以它移植到arduino上也是废了,任督二脉全被封住了 ...

换个IDE吧,Keil欢迎您。
:titter:
回复 支持 反对

使用道具 举报

发表于 2020-4-28 12:08:18 | 显示全部楼层
人艰不拆了 发表于 2020-4-28 11:38
但是据说8266的定时器和pwm共用一个硬件,用了硬件定时器就不能用pwm了,不知你说否了解,8266也不能说一 ...

这个没了解,不过我现在都是8266和32了,我就是业余玩

打赏

参与人数 1家元 +10 收起 理由
人艰不拆了 + 10

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 11:45:57 | 显示全部楼层
zxy882266 发表于 2020-4-28 11:35
玩PWM没速度正弦波精度上不来,UNO和8266比没速度没内存,只有管脚多一点,但可以通过IIC接口解决所有问题 ...

其实最完美的可能还是stm单片机,可以它移植到arduino上也是废了,任督二脉全被封住了:titter:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 11:38:53 | 显示全部楼层
zxy882266 发表于 2020-4-28 11:35
玩PWM没速度正弦波精度上不来,UNO和8266比没速度没内存,只有管脚多一点,但可以通过IIC接口解决所有问题 ...

但是据说8266的定时器和pwm共用一个硬件,用了硬件定时器就不能用pwm了,不知你说否了解,8266也不能说一点问题没有,速度和内存的确是uno之类的硬伤
回复 支持 反对

使用道具 举报

发表于 2020-4-28 11:35:01 | 显示全部楼层
玩PWM没速度正弦波精度上不来,UNO和8266比没速度没内存,只有管脚多一点,但可以通过IIC接口解决所有问题,ARDUINO针对8266已经很多资料了,MicroPython现在资料少些,但很快就会完美的,玩这个的很多
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 11:28:19 | 显示全部楼层
zxy882266 发表于 2020-4-28 11:20
不要这样说,8266区别大的不是一丁点,这个PWM可以到40K,刚看到别人的文章,没速度CPU不行,你换8266试 ...

没速度CPU不行?指的什么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-28 11:27:41 | 显示全部楼层
zxy882266 发表于 2020-4-28 11:20
不要这样说,8266区别大的不是一丁点,这个PWM可以到40K,刚看到别人的文章,没速度CPU不行,你换8266试 ...

但是8266的开发深度好像不如uno,很多功能有,但是用不了,指的是再这个arduino环境下
回复 支持 反对

使用道具 举报

发表于 2020-4-28 11:20:33 | 显示全部楼层
人艰不拆了 发表于 2020-4-26 09:24
我都当单片机用,没什么区别

不要这样说,8266区别大的不是一丁点,这个PWM可以到40K,刚看到别人的文章,没速度CPU不行,你换8266试试,我现在都不买UNO 了  以后全上8266和EPS32

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-4-28 11:18:24 | 显示全部楼层
la45088d1 发表于 2020-4-26 22:51
最近我也在研究正弦波,不同的是我研究如何用一个正弦波调制另一个正弦波,得到不同的音色。
之前我的音调 ...

看来是玩音乐的
回复 支持 反对

使用道具 举报

发表于 2020-4-27 16:24:47 | 显示全部楼层
STM32用DAC输出正旋数据表工作在DMA模式,可以达到非常好的效果。uno 的速度太慢了。

打赏

参与人数 1家元 +5 收起 理由
人艰不拆了 + 5

查看全部打赏

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-26 23:55:23 | 显示全部楼层
la45088d1 发表于 2020-4-26 22:51
最近我也在研究正弦波,不同的是我研究如何用一个正弦波调制另一个正弦波,得到不同的音色。
之前我的音调 ...

太复杂,看不懂:loveliness:
回复 支持 反对

使用道具 举报

发表于 2020-4-26 22:51:51 | 显示全部楼层
最近我也在研究正弦波,不同的是我研究如何用一个正弦波调制另一个正弦波,得到不同的音色。
之前我的音调合成器是线性加法合成器,累加不同的谐波得到不同的音色,缺点是谐波单一,无论是个数还是数学关系:最高12次且都是整数倍。如果在加法合成器之前对加法合成器的输入信号(该信号作为载波信号)进行FM调制,且调制信号频率与载波信号在相同数量级附近时,就可以产生更加复杂的谐波关系并且信号的总边带宽度可以由调制系数控制,完美解决上述问题:
这是我实验生成的两段音频,一个是开启了频率抖晃模式(FM调制),结果抖出了不少谐波成分,另一个没有开启,只是固定地累加预设谐波,结果频谱图比较干净。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x

打赏

参与人数 1家元 +10 收起 理由
人艰不拆了 + 10

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-4-26 12:27:47 | 显示全部楼层
研究一下SPWM就知道了。

打赏

参与人数 1家元 +10 收起 理由
人艰不拆了 + 10 哈哈,看你就13分,多给点

查看全部打赏

回复 支持 反对

使用道具 举报

发表于 2020-4-26 10:37:19 | 显示全部楼层

是啊,昨晚熬夜写了个帖子:lol:
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-26 10:34:10 | 显示全部楼层
411183343 发表于 2020-4-26 10:27
已经上限了,看不懂系列支持下

哈哈,好久没见了:loveliness:
回复 支持 反对

使用道具 举报

发表于 2020-4-26 10:27:37 | 显示全部楼层
已经上限了,看不懂系列支持下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 微信登录

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-9-25 08:12 , Processed in 0.218400 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

快速回复 返回顶部 返回列表