arduino-tinker 发表于 2015-11-19 16:22:28

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

潜水学习好久,冒个泡。。。
最近在做信号分析,懒得跑实验室,就像用Arduino做一个简单的信号发生器,能生成一个正弦波就好。。。

double a = 5;
double w = 1;

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

pinMode(7,OUTPUT);
}

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

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

    i = i + sumTime/t;
}
}

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


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



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

Super169 发表于 2015-11-19 17:49:41

PWM 是用佔空比的輸出吧.

275891381 发表于 2015-11-19 18:00:56

tlc5615da转换一下

PINKWALKMAN 发表于 2015-11-20 07:56:42

示波器显示这样的结果当然没错,之前用Arduino的PWM口做DAC转换,我的做法是在PWM口接两级RC滤波电路再在其后接LM358跟随电路输出信号可以点亮功率较大的LED灯。当然可以用protues做仿真,效果还是不错的。(我就补贴图了)

PINKWALKMAN 发表于 2015-11-20 08:17:16

好的信号发生器要几万人民币,是有他的原因的怎能轻易取代。

komoya 发表于 2015-11-20 13:47:18

楼主的示波器是1054吗?

sanyouhi 发表于 2015-11-21 16:07:27

法1:用DA转换器或者带DA转换器的MCU
法2:PWM输出电路外加RC电路
法3:搭个模拟电路
法4:用电脑声卡拿个JACK头再下个信号发生软件
法5:买个信号发生器去。。。。
页: [1]
查看完整版本: [求助]Arduino做简易信号发生器