极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13327|回复: 2

用arduino due 做正弦波发生器

[复制链接]
发表于 2015-11-27 13:55:16 | 显示全部楼层 |阅读模式
arduino due 带有2个12位的DA转换器,利用数模转换可以随意做波形发生器。代码如下:
void setup() {
  // put your setup code here, to run once:
analogWriteResolution(12);
}

void loop() {
  for(int i=0;i<50;i++){
  analogWrite(DAC0,(sin(i*2*3.14/50)+1)*4096/2);
  }
}



analogWriteResolution(12)函数用来指定数模转换为12位,默认为8位;analogWrite()用来输出模拟值,analogWrite(DAC0,(sin(i*2*3.14/50)+1)*4096/2)是将正弦波的值转换为0到4094的整数值,然后在DAC0口输出改模拟值。

由于arduino的I/O端口读写的最大频率约为150KHZ,因此一个周期要是打50个点的话,那么该正弦波的频率约为300HZ。
回复

使用道具 举报

 楼主| 发表于 2015-11-27 13:58:50 | 显示全部楼层
正弦波形如下图:

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

发表于 2016-3-19 09:28:12 | 显示全部楼层
这个很清晰,不错。
请教一下,根据你的代码和计算,正弦波的频率约为300HZ。
但如果想做成可通过软件调整正弦波的频率,不知道可行否?
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-26 14:28 , Processed in 0.039907 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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