研究ADS1115一段时间了,终于搞定啦,其实操作还是蛮简单的,主要分为三部分的步骤,本次列子是模拟IIC操作的哦。。。。。
其实主要分为三部分,
第一部分:write config register
1 0x90 最后一位是R/W位,高为读,低为写
2 0x01 指向配置寄存器
3 开始设置配置寄存器的参数,根据自己的需要
第二部分:write to pointer register
1 0x90 同上
2 0x00 指向转换寄存器
第三部分:read conversion register
1 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);//将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);//将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()读取转换的值即可
|