ADS1113.ADS1114 和ADS1115 是具有16 位分旁粹率的高精度模数转换器(ADC),采用超小型的无引线QFN-10 封装或MSOP-10 封装。ADS1113/4/5 在设计时考虑到了精度、功耗和实现的简易性。ADS1113 14 /5 具有- -个板上基准和振荡器。数据通过-一个12C 兼容型串行接[ ]进行传输; 可以选择4 个|2C 从地址。ADS1113 /4 15 采用2.0V 至5.5V 的单工作电源。以下将是ads1115的 *** 作指引:
ADS1115 的使用 *** 作是IIC,主要分为三部分:
第一部分: write config register1 0X90 最后一位是R/VW位,高为读,低为写
2 0X01 指向配置寄存器
3 开始设置配置寄存器的参数,根据自己的需要
第二部分: write to pointer register1 0X90 同上
2 OXOO 指向转换寄存器
第三部分: read conversion register1 0X91 同上
2 应答转换寄存器的MSB
3 应答转换寄存器的LSB
具体程序如下:
//配置ads1115
void Confige1115 ()
{
unsigned char i;
table[0] = 0x90; //CMD_Write;
table[1] = 0x01; //指向配置寄存器
table[2] = 0xc2; //设置配置寄存器的高八位1100 0101,即AINp=AIN0,AINn=GND;满量程FS=+-4.096;连续转换模式
table[3] = 0xe3; //设置配置寄存器的低八位1100 0101,即
start(); //发送起始信号
for(i=0;i《4;i++)
{
shout(table[i]); //将table里面的数写入ads1115
delay(15);
}
stop(); //发送停止信号
}
//指向ADS1115指针寄存器用于准备读取数据
void PointRegister (void)
{
unsigned char i;
table[0] = 0x90;//写指令
table[1] = 0x00;//指针指向转换寄存器
start();//发送起始信号
for(i=0;i《2;i++)
{
shout(table[i]);//将table里面的数写入ads1115
delay(15);
}
stop();//发送停止信号
}
//读转换寄存器里面的值
uint read()
{
uint result,resulth,resultl;
start();
delay(10);
shout(0x91); //读指令
resulth = shin(); //高八位赋给resulth
resultl = shin(); //底八位赋给resultl
stop();
result=(resulth)《《8|resultl;//高八位右移8与上底八位组成16位result
return result;
}
//获取最终模数转换之后的结果
uint getad()
{
uint value;
Confige1115();
delay(20);
PointRegister();
delay(20);
value=read();
return value;
}
最后通过getad()读取转换的值即可
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)