弘毅 发表于 2012-4-13 21:20:30

使用Arduino实现MCP4725 DAC功能

本帖最后由 弘毅 于 2012-12-17 20:35 编辑

原文地址:http://brainwagon.org/2011/02/24/arduino-mcp4725-breakout-board/

实验所使用的是sparkfun的MCP4725模块,使用I2C进行通信,下面是模块图片。



下面是试验中使用的代码。#include <Wire.h>

void
setup()
{
Wire.begin() ;
}

#define MCP4725_DEVICE 96

int sintab = {
2147, 2347, 2545, 2737, 2922, 3100, 3267, 3422, 3564, 3692, 3803,
3898, 3975, 4033, 4072, 4092, 4092, 4072, 4033, 3975, 3898, 3803,
3692, 3564, 3422, 3267, 3100, 2922, 2737, 2545, 2347, 2147, 1947,
1747, 1549, 1357, 1172, 994, 827, 672, 530, 402, 291, 196, 119, 61,
22, 2, 2, 22, 61, 119, 196, 291, 402, 530, 672, 827, 994, 1172,
1357, 1549, 1747, 1947}
;

int sp = 0 ;

void
loop()
{
Wire.beginTransmission(MCP4725_DEVICE);
Wire.send(64);                     // cmd to update the DAC
Wire.send(sintab >> 4);      // the 8 most significant bits...
Wire.send((sintab & 15) << 4); // the 4 least significant bits...
Wire.endTransmission();
sp = (sp + 1) & 63 ;
}上视频~~~

http://player.youku.com/player.php/sid/XMzgwNjQ5MzAw/v.swf

zcbzjx 发表于 2012-4-13 21:49:54

谢谢,大大

Randy 发表于 2012-4-14 09:09:34

我现在看到的很多器件都是I2C接口的,用起来非常爽!

河山 发表于 2012-4-14 09:44:38

学习学习一下啦!

MicroCao 发表于 2012-5-6 17:02:57

arduino自带10bitDAC了,这个12bit的好像没太大价值,要有14bit的就好了

弘毅 发表于 2012-5-6 23:13:20

MicroCao 发表于 2012-5-6 17:02 static/image/common/back.gif
arduino自带10bitDAC了,这个12bit的好像没太大价值,要有14bit的就好了

arduino自带的是ADC,这是个DAC,{:soso_e113:} 价值还是很大滴。。

MicroCao 发表于 2012-5-11 22:39:18

弘毅 发表于 2012-5-6 23:13 static/image/common/back.gif
arduino自带的是ADC,这是个DAC, 价值还是很大滴。。

明白了,谢谢提醒。查了下似乎不太容易买得到,不知有何好的渠道。

弘毅 发表于 2012-5-11 23:04:29

MicroCao 发表于 2012-5-11 22:39 static/image/common/back.gif
明白了,谢谢提醒。查了下似乎不太容易买得到,不知有何好的渠道。

如果淘宝不好找。。。这些不好找的IC一般在RS和digikey应该可以找得到

Ansifa 发表于 2012-12-17 00:47:50

本帖最后由 Ansifa 于 2012-12-17 00:49 编辑

{:soso_e151:} 我之前也写了个TLC5165 10bit DAC的代码。。。。优信也有卖
http://item.taobao.com/item.htm?spm=a1z10.3.0.86.ahWNws&id=12881925146&

Ansifa 发表于 2012-12-17 00:50:26

发现挖坟了。。。

葱头同学 发表于 2013-8-27 21:43:44

本帖最后由 葱头同学 于 2013-8-27 21:46 编辑

能否解释一下 这几句呢 64 是对应二进制的01000000吗?

数组里面的每个数也是对应二进制的吗?Wire.send(64);                     // cmd to update the DAC
Wire.send(sintab >> 4);      // the 8 most significant bits...
Wire.send((sintab & 15) << 4); // the 4 least significant bits...

sp = (sp + 1) & 63 ;

mpsk 发表于 2013-8-27 22:52:32

学习了,感谢楼主!!

fryefryefrye 发表于 2014-11-21 13:30:04

Ansifa 发表于 2012-12-17 00:47 static/image/common/back.gif
我之前也写了个TLC5165 10bit DAC的代码。。。。优信也有卖
http://item.taobao.com/item.h ...

你好,您能给个使用TLC 5165 的例子吗?

GDHack 发表于 2016-5-4 00:30:55

挖坟 + 马克
页: [1]
查看完整版本: 使用Arduino实现MCP4725 DAC功能