找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 16748|回复: 27
打印 上一主题 下一主题
收起左侧

基于stm32f10 ADS1115芯片模转换器 数据采集系统

  [复制链接]
跳转到指定楼层
楼主




ADS1115芯片介绍:

ADS1115 是具有 16 位分辨率的高精度模数转换器 (ADC),采用超小型的无引线 QFN-10 封装或 MSOP-10 封装。 ADS1115 在设计时考虑到了精度、功耗和实现的简易性。 ADS1115具有一个板上基准和振荡器。 数据通过一个 I2C 兼容型串行接口进行传输;可以选择 4 个 I2C 从地址。 ADS1115采用 2.0V 至 5.5V 的单工作电源。

ADS1115能够以高达每秒 860 个采样数据 (SPS) 的速率执行转换操作。ADS1115 具有一个板上可编程增益放大器 (PGA),该 PGA 可提供从电源电压到低至 ±256mV 的输入范围,因而使得能够以高分辨率来测量大信号和小信号。 另外,ADS1115 还具有一个输入多路复用器 (MUX),可提供 2 个差分输入或 4 个单端输入。

ADS1115可工作于连续转换模式或单触发模式,后者在一个转换完成之后将自动断电,从而极大地降低了空闲状态下的电流消耗。 ADS1115 具有-40℃ 至 +125℃ 的规定温度范围。

改源码设计是基于stm32f10芯片开发,将ADS1115采集到的数据正常的在tft液晶显示出来。


  1. #include "led.h"
  2. #include "delay.h"
  3. #include "key.h"
  4. #include "sys.h"
  5. #include "lcd.h"
  6. #include "usart.h"         
  7. //#include "adc.h"
  8. #include "ads115.h"
  9.    
  10. int main(void)
  11. {       
  12.         float t1;
  13.     u16 t,result;
  14.         delay_init();                     //延时函数初始化          
  15.         NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  16.         uart_init(9600);                 //串口初始化为9600
  17.         LED_Init();                             //LED端口初始化
  18.         LCD_Init();                                
  19.     ADS1115_Init();
  20.         POINT_COLOR=RED;//设置字体为红色
  21.         LCD_ShowString(50,60,200,16,16,"Voltage1:00.000V");
  22.     LCD_ShowString(50,80,200,16,16,"Voltage2:00.000V");
  23.     LCD_ShowString(50,100,200,16,16,"Voltage3:00.000V");
  24.         LCD_ShowString(50,120,200,16,16,"Voltage4:00.000V");
  25.         //显示提示信息
  26.         POINT_COLOR=BLUE;//设置字体为蓝色
  27.         while(1)
  28.         {   
  29.                   //通道0
  30.                   result=lvbo(0xe3,0xc2);   
  31.                   t1=4.096*2*result/65535;     //转换成电压
  32.           LCD_ShowxNum(122,20,result,5,16,0x80);
  33.                     t=t1;
  34.                   LCD_ShowxNum(122,60,t,2,16,0x80);
  35.           result=(t1-t)*1000;
  36.                   LCD_ShowxNum(146,60,result,3,16,0x80);
  37.           //delay_ms(5);
  38.                   //通道1
  39.                   result=lvbo(0xe3,0xd2);   
  40.                   t1=4.096*2*result/65535;     //转换成电压
  41.           t=t1;
  42.                   LCD_ShowxNum(122,80,t,2,16,0x80);
  43.           result=(t1-t)*1000;
  44.                   LCD_ShowxNum(146,80,result,3,16,0x80);
  45.           //delay_ms(5);
  46.                   //通道2
  47.                   result=lvbo(0xe3,0xe2);   
  48.                   t1=4.096*2*result/65535;     //转换成电压
  49.           t=t1;
  50.                   LCD_ShowxNum(122,100,t,2,16,0x80);
  51.           result=(t1-t)*1000;
  52.                   LCD_ShowxNum(146,100,result,3,16,0x80);
  53.                   //delay_ms(5);
  54.                   //通道3
  55.                   result=lvbo(0xe3,0xf2);   
  56.                   t1=4.096*2*result/65535;     //转换成电压
  57.           t=t1;
  58.                   LCD_ShowxNum(122,120,t,2,16,0x80);
  59.           result=(t1-t)*1000;
  60.                   LCD_ShowxNum(146,120,result,3,16,0x80);
  61.           //delay_ms(100);
  62.         }
  63. }
复制代码

全部资料(压缩包)下载:
ADS1115(stm32f10采集).zip (4.13 MB, 下载次数: 494) ADS1115数据手册.pdf (1.2 MB, 下载次数: 115)

AD应用原理图截图.png (6.1 KB, 下载次数: 209)

AD应用原理图截图.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:141073 发表于 2016-10-1 18:35 | 只看该作者
太6了!!!!!!!
回复

使用道具 举报

板凳
ID:160513 发表于 2017-4-22 11:15 | 只看该作者
下载来看看  
回复

使用道具 举报

地板
ID:197175 发表于 2017-7-28 17:17 | 只看该作者
为什么检测5V电压显示3.999V,检测3.3V显示3.2V检测地是7.999V
回复

使用道具 举报

5#
ID:140644 发表于 2017-9-4 07:24 | 只看该作者
不错,不错。
回复

使用道具 举报

6#
ID:230827 发表于 2017-9-4 11:18 | 只看该作者
谢谢分享
回复

使用道具 举报

7#
ID:108373 发表于 2018-1-29 23:01 | 只看该作者
优秀优秀!学习一下!
回复

使用道具 举报

8#
ID:113501 发表于 2018-3-15 16:29 | 只看该作者
谢谢分享, 参考参考
回复

使用道具 举报

9#
ID:258651 发表于 2018-3-24 10:42 | 只看该作者

谢谢分享!学习一下!
回复

使用道具 举报

10#
ID:297109 发表于 2018-3-26 13:19 来自手机 | 只看该作者
很不错,谢谢楼主
回复

使用道具 举报

11#
ID:302649 发表于 2018-4-6 10:25 | 只看该作者
老铁,你那个AD和stm32的链接引脚是怎么连得
回复

使用道具 举报

12#
ID:302649 发表于 2018-4-6 10:32 | 只看该作者
电子派 发表于 2018-3-26 13:19
很不错,谢谢楼主

大佬们,j3和j2对应stm32什么接口
回复

使用道具 举报

13#
ID:303073 发表于 2018-4-7 11:52 | 只看该作者
具体怎么用单片机操作呢?需要练哪几个接口哇
回复

使用道具 举报

14#
ID:302649 发表于 2018-4-8 13:05 | 只看该作者
拾光纪逸 发表于 2017-7-28 17:17
**** 作者被禁止或删除 内容自动屏蔽 ****

是啊,我下载代码  连接电路图然后也是这种结果
回复

使用道具 举报

15#
ID:294558 发表于 2018-5-2 22:46 | 只看该作者
谢谢!大佬大佬!!!
回复

使用道具 举报

16#
ID:198901 发表于 2018-5-16 20:45 | 只看该作者
拾光纪逸 发表于 2017-7-28 17:17
**** 作者被禁止或删除 内容自动屏蔽 ****

我也是这样的,你解决了吗,
回复

使用道具 举报

17#
ID:376294 发表于 2018-7-21 01:04 | 只看该作者
有波形没数值,下载来看看
回复

使用道具 举报

18#
ID:316593 发表于 2018-8-10 09:11 | 只看该作者
谢谢分享
回复

使用道具 举报

19#
ID:152274 发表于 2018-12-10 13:54 | 只看该作者
ADS1115的I2C高速模式怎么开启啊
回复

使用道具 举报

20#
ID:495231 发表于 2019-3-21 10:53 | 只看该作者
感谢分享!
回复

使用道具 举报

21#
ID:368583 发表于 2019-4-17 16:27 | 只看该作者
谢谢分享, 参考参考
回复

使用道具 举报

22#
ID:498170 发表于 2019-5-20 14:18 | 只看该作者
谢谢分享
回复

使用道具 举报

23#
ID:92858 发表于 2019-7-9 08:51 | 只看该作者
感谢楼主分享,下来试试
回复

使用道具 举报

24#
ID:250090 发表于 2019-10-13 12:32 | 只看该作者

谢谢!大佬大佬!!!
回复

使用道具 举报

25#
ID:294558 发表于 2020-5-6 23:39 | 只看该作者
感谢楼主分享,下来试试
回复

使用道具 举报

26#
ID:406632 发表于 2020-7-28 16:49 | 只看该作者
首先感谢大佬的分享
拿来代码调试之后发现是ADS1115的Config Register没有配置正确导致的读数不准确,下面是一些经验
1.大佬提供的手册不是1115的 所以在DR寄存器配置那里卡住了 ADS1115的最高速模式是860sps 寄存器的值应该是111 这里需要注意
我使用的是A0通道 +-6.144V量程 连续转换模式 860sps 因此代码中的HCMD1应该是0x40
然后我没有使用比较校验 因此LCMD1值为0xE3
这两个值改过来应该就可以了 主要就是这个寄存器的配置卡住我了
再次感谢大佬的分享
回复

使用道具 举报

27#
ID:406632 发表于 2020-7-28 16:53 | 只看该作者
然后接线的话电源 地线 SDA 和SCL就不说了
如果I2C总线上只有一个外设的话ADDR就接地
我没有使用阈值判定 因此ALRT就悬空了 接地也可
A0就接要读的信号就行了 但是要注意输入范围()
回复

使用道具 举报

28#
ID:58583 发表于 2023-5-26 14:26 | 只看该作者
谢谢 luozhufenxian
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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