极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15639|回复: 2

arduino外接dac8571问题求助

[复制链接]
发表于 2014-8-1 20:00:31 | 显示全部楼层 |阅读模式
本帖最后由 嗨嗨海 于 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();

}

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2014-8-6 19:18:53 | 显示全部楼层
本帖最后由 嗨嗨海 于 2014-8-6 19:55 编辑

自己顶一下!原来是忘了写控制字……。连接方法A4——SDA,A5——SCL,Vref,VDD——Vcc,Vsense——Vout,A0——GND(如果接Vcc)。
正确的代码如下:
[pre lang="arduino" line="1" file="DAC8571_arduino"]#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);

}[/code]
留给需要的人吧!
回复 支持 反对

使用道具 举报

发表于 2014-8-28 11:04:35 | 显示全部楼层
十分感谢,我也弄了好几天了,谢谢
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-18 01:25 , Processed in 0.041915 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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