嗨嗨海 发表于 2014-8-1 20:00:31

arduino外接dac8571问题求助

本帖最后由 嗨嗨海 于 2014-8-6 19:22 编辑

最近在研究DA转换申请了一个DAC8571,并且参照葱头同学的帖子:arduino i2c的wire库使用求教 将代码下载到arduino中,没有输出。有没有大神可以帮助一下,我已经被它弄崩溃了。我将Vsense和Vref都尝试接地、接VCC、悬空,Vsense也尝试接Vout,不管我给什么信号输出不是0就是5V。DAC8571地址:
代码如下:
#include <Wire.h>
#define DAC8571 (0x9C >> 1)
void setup()
{
Wire.begin();
}

void loop()
{

Wire.beginTransmission(DAC8571);
Wire.write(0x0F);
Wire.write(0xFF);
Wire.endTransmission();

}

嗨嗨海 发表于 2014-8-6 19:18:53

本帖最后由 嗨嗨海 于 2014-8-6 19:55 编辑

自己顶一下!原来是忘了写控制字……。连接方法A4——SDA,A5——SCL,Vref,VDD——Vcc,Vsense——Vout,A0——GND(如果接Vcc)。
正确的代码如下:
#include <Wire.h>
#define DAC8571 (0x98 >> 1)//DAC8571地址(A0接地)
int analogPin = 3; //观察Vout的输出
double x=0;
int val;
void setup()
{
Serial.begin(9600);
Wire.begin();

}

void loop()
{

Wire.beginTransmission(DAC8571);
   Serial.println(DAC8571);//开始传输
Wire.write(0x10);//写控制字0x10
Wire.write(0x99);//写电压值0-FFFF
Wire.write(0x99);
Wire.endTransmission();//结束传输
Serial.println( Wire.endTransmission());
val = analogRead(analogPin); //从输入引脚读取数值
x=(val+1)*5/1024.00;
Serial.println(val); //显示读取的数值
Serial.println(":");
Serial.println(x);

}
留给需要的人吧!

尕老汉 发表于 2014-8-28 11:04:35

十分感谢,我也弄了好几天了,谢谢
页: [1]
查看完整版本: arduino外接dac8571问题求助