首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

基于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液晶显示出来。


  • #include "led.h"
  • #include "delay.h"
  • #include "key.h"
  • #include "sys.h"
  • #include "lcd.h"
  • #include "usart.h"
  • //#include "adc.h"
  • #include "ads115.h"
  • int main(void)
  • {
  •         float t1;
  •     u16 t,result;
  •         delay_init();                     //延时函数初始化
  •         NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  •         uart_init(9600);                 //串口初始化为9600
  •         LED_Init();                             //LED端口初始化
  •         LCD_Init();
  •     ADS1115_Init();
  •         POINT_COLOR=RED;//设置字体为红色
  •         LCD_ShowString(50,60,200,16,16,"Voltage1:00.000V");
  •     LCD_ShowString(50,80,200,16,16,"Voltage2:00.000V");
  •     LCD_ShowString(50,100,200,16,16,"Voltage3:00.000V");
  •         LCD_ShowString(50,120,200,16,16,"Voltage4:00.000V");
  •         //显示提示信息
  •         POINT_COLOR=BLUE;//设置字体为蓝色
  •         while(1)
  •         {
  •                   //通道0
  •                   result=lvbo(0xe3,0xc2);
  •                   t1=4.096*2*result/65535;     //转换成电压
  •           LCD_ShowxNum(122,20,result,5,16,0x80);
  •                     t=t1;
  •                   LCD_ShowxNum(122,60,t,2,16,0x80);
  •           result=(t1-t)*1000;
  •                   LCD_ShowxNum(146,60,result,3,16,0x80);
  •           //delay_ms(5);
  •                   //通道1
  •                   result=lvbo(0xe3,0xd2);
  •                   t1=4.096*2*result/65535;     //转换成电压
  •           t=t1;
  •                   LCD_ShowxNum(122,80,t,2,16,0x80);
  •           result=(t1-t)*1000;
  •                   LCD_ShowxNum(146,80,result,3,16,0x80);
  •           //delay_ms(5);
  •                   //通道2
  •                   result=lvbo(0xe3,0xe2);
  •                   t1=4.096*2*result/65535;     //转换成电压
  •           t=t1;
  •                   LCD_ShowxNum(122,100,t,2,16,0x80);
  •           result=(t1-t)*1000;


返回列表