极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 25012|回复: 6

[求助]Arduino做简易信号发生器

[复制链接]
发表于 2015-11-19 16:22:28 | 显示全部楼层 |阅读模式
潜水学习好久,冒个泡。。。
最近在做信号分析,懒得跑实验室,就像用Arduino做一个简单的信号发生器,能生成一个正弦波就好。。。

  1. double a = 5;
  2. double w = 1;

  3. void setup() {
  4.   // put your setup code here, to run once:
  5.   Serial.begin(9600);
  6.   
  7.   pinMode(7,OUTPUT);
  8. }

  9. void loop() {
  10.   // put your main code here, to run repeatedly:
  11.   double sumTime = 2*PI;
  12.   double t = 500.0;
  13.   double i = 0.0;

  14.   while (i < sumTime)
  15.   {
  16.     double v = (a/5)*255*(sin(w*i));
  17.     analogWrite(7,v);
  18.     Serial.println(v);

  19.     i = i + sumTime/t;
  20.   }
  21. }
复制代码


还特地升级了IDE,试试串口绘图功能,咦 还不错。。。


那程序乱写的,下面来测测频率和振幅吧,上示波器。。。



哈哈哈哈,完全不懂是什么情况?
是因为PWM输出的实际是脉冲方波么?问题增大采样的时间以后,它还是方波啊!求大神指点!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-11-19 17:49:41 | 显示全部楼层
PWM 是用佔空比的輸出吧.  
回复 支持 反对

使用道具 举报

发表于 2015-11-19 18:00:56 | 显示全部楼层
tlc5615  da转换一下
回复 支持 反对

使用道具 举报

发表于 2015-11-20 07:56:42 | 显示全部楼层
示波器显示这样的结果当然没错,之前用Arduino的PWM口做DAC转换,我的做法是在PWM口接两级RC滤波电路再在其后接LM358跟随电路输出信号可以点亮功率较大的LED灯。当然可以用protues做仿真,效果还是不错的。(我就补贴图了)
回复 支持 反对

使用道具 举报

发表于 2015-11-20 08:17:16 | 显示全部楼层
好的信号发生器要几万人民币,是有他的原因的怎能轻易取代。
回复 支持 反对

使用道具 举报

发表于 2015-11-20 13:47:18 | 显示全部楼层
楼主的示波器是1054吗?
回复 支持 反对

使用道具 举报

发表于 2015-11-21 16:07:27 | 显示全部楼层
法1:用DA转换器或者带DA转换器的MCU
法2:PWM输出电路外加RC电路
法3:搭个模拟电路
法4:用电脑声卡拿个JACK头再下个信号发生软件
法5:买个信号发生器去。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-17 05:02 , Processed in 0.039213 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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