完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
研究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[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()读取转换的值即可 |
|
相关推荐
|
|
|
|
|
|
|
|
发现论坛里人比较少啊
|
|
|
|
|
|
//////////////////»ñÈ¡ADS1115ͨµÀ0¡¢Í¨µÀ1¡¢Í¨µÀ2¡¢Í¨µÀ3µÄ½á¹û////////////////////
s16 Get_ADS1115_Reture(u8 channel) { switch(channel) { case 0: ads1115_config(TongDao0); //Delay_Ms(5); ADS1115_Reture=ads1115_getvalue(); Delay_Ms(5);//ÑÓʱһ¶¨Òª¼Ó break; case 1: ads1115_config(TongDao1); Delay_Ms(3); ADS1115_Reture=ads1115_getvalue(); Delay_Ms(3);//ÑÓʱһ¶¨Òª¼Ó break; case 2: ads1115_config(TongDao2); Delay_Ms(3); ADS1115_Reture=ads1115_getvalue(); Delay_Ms(3);//ÑÓʱһ¶¨Òª¼Ó break; case 3: ads1115_config(TongDao3); Delay_Ms(3); ADS1115_Reture=ads1115_getvalue(); Delay_Ms(3);//ÑÓʱһ¶¨Òª¼Ó break; default: break; } //ADS1115_Reture=0x8000; return ADS1115_Reture; } ads1115_config(TongDao3);配置参数后面要延时至少2ms。为什么,我想快一点,根本就控制不了 |
|
|
|
|
|
jlp11260 发表于 2015-1-20 21:39 是啊,1115非常难用,现在一直用单片机自带的ad,完全够用了。 |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
请问一个迭代法图形二值化的程序代码把宽改成240之后整个屏幕不显示是什么原因?
2644 浏览 0 评论
2630 浏览 1 评论
1868 浏览 1 评论
2026 浏览 2 评论
2585 浏览 2 评论
673浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 03:27 , Processed in 0.905503 second(s), Total 109, Slave 90 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号