极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12121|回复: 3

Arduino的函数发生器

[复制链接]
发表于 2013-5-30 11:48:02 | 显示全部楼层 |阅读模式
   设置的问题,我们一直在寻找到目前为止,我们只能产生一个振幅的信号 - 相当于高逻辑电平。为了能够产生任何其他的波形,我们需要,可以生产出各种不同的输出电压。虽然我们最后一次看着PWM方法为我们提供了一种方法可以做到这一点,它是不适合生产可变波形 - 因为它是基于时间的。我们可以看到,如果我们试图使用PWM产生一个三角波形:用示波器查看输出。
无效设置() {      pinMode(11,输出);}无效循环(){     (INT I = 0; I <0;  - )      {          analogWrite(11,I),延迟(1);      }

  原理图 }
    该电路是一个8位的DAC,被称为一个R-2R 梯形电阻网络。我们的每八位有助于所得到的输出电压。 这个是一个简单的DA实现功能,具体大家可以去搜索下梯形电阻网络,了解下原理。
    由于最近在做一个装置,没有信号模块,所以想到用arduino做一个正玄波信号发生装置。转自http://www.auctoris.co.uk/2011/0 ... n-generator-part-2/ 还有其他信号发生的教程,请参考。
       正玄波:由于我只需要把正选信号用引脚接出,我就没有多电路了

int sine[255];


void setup()
{
     pinMode(0, OUTPUT);
     pinMode(1, OUTPUT);
     pinMode(2, OUTPUT);
     pinMode(3, OUTPUT);
     pinMode(4, OUTPUT);
     pinMode(5, OUTPUT);
     pinMode(6, OUTPUT);
     pinMode(7, OUTPUT);
   
     float x;
     float y;
     for(int i=0;i<255;i++)
     {
          x=(float)i;
          y=sin((x/255)*2*PI);
          sine=int(y*128)+128;
     }
}


void loop()
{
     for (int i=0;i<255;i++)
     {
          PORTD=sine;
          delayMicroseconds(10);
     }
}
回复

使用道具 举报

 楼主| 发表于 2013-5-30 11:48:32 | 显示全部楼层
[img][/img]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-30 11:51:56 | 显示全部楼层
实际测的波形图

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2013-6-2 16:14:18 | 显示全部楼层
表示只是很想用那台示波器而已
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-5-10 21:27 , Processed in 0.068687 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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