可编程4通道18位ADC模块

概述

模块集成了高品质的的MCP3424实现模拟量到数字量(AD)转换,可以为树莓派提供获取模拟量的功能 ,也可以满足Ardruino等高精度AD转换的需求。

MCP3424是一款低噪音、高精度的18位A/D转换芯片,其特点是:

  • 在每个转换周期内,自动对失调和增益误差进行校正。
  • 其分辨率可以设置,以满足不同场景的要求。
  • 用户可在A/D转换之前可选择PGA增益对信号进行放大,方便对微弱电压检测。
  • 提供两种转换模式:单次转换模式和(b)连续转换模式。
    • (a)单次转换模式:器件在完成一次转换后自动进入低电流待机模式,直至接收到新的转换命令,这样可显著降低空闲周期内的电流消耗,建议使用该模式。
    • (b)在连续转换模: 器件以设定的转换速率进行连续转换,这样可以直接读取数据前不用再次启动转换。

适用范围

  • 温度、力度等传感器
  • 电池等计量
  • 工业自动化设备

技术规格

  • 工作电压:2.7 - 5.5V
  • 待机电流:300nA (5V)
  • 工作温度:-40°C ~ +125°C
  • 片内参考电压:2.048V ± 0.05%, 漂移15 PPM /°C
  • 片内可编程增益(PGA):x1,x2,x4,x8 (x1为缺省值)
  • 差分输入范围:-2.048V / PGA ~ 2.048V / PGA
  • 可设置分辨率:12位、14位、16位、18位 (12为缺省值)
  • 采样速率:240次/s, 60次/s ,15次/s,3.75次/s(与分辨率相对应)
  • 增益误差:0.05% (PGA = 1,18位)
  • 失调误差:15uV (PGA = 1,18位)
  • 输入接口:4路差分输入,2.54mm间距排针
  • 输出接口:I2C,2.54mm间距排针
  • 模块尺寸:27x16mm

注:差分输入范围和PGA相关,以PGA=4为例,则其输入范围为 -0.512(-2.048/4)V ~ 0.512(2.048/4)V

接口说明

引脚名称 引脚功能
GND 电源地
5V 5V电源输入
SCL I2C时钟线
SDA I2C数据线
C1+ 模拟量输入通道1正极
C1- 模拟量输入通道1负极
C2+ 模拟量输入通道2正极
C2- 模拟量输入通道2负极
C3+ 模拟量输入通道3正极
C3- 模拟量输入通道3负极
C4+ 模拟量输入通道4正极
C4- 模拟量输入通道4负极
  • 拨码说明:模块通过一组拨码开关设置I2C的通讯地址,拨码的设置参见模块上的地址表

注意事项

  • 该模块是差分输入,测量的是输入通道正(CH+)和负(CH-)之间的的电压差。如果进行单端测量,需将相应通道的负和被测系统接地。

使用教程

Arduino电压测量

a) 目标:Arduino电压测量 使用Arduino环境,测试稳压电源的电压值,然后通过串口调试助手显示出来。

b) 硬件清单

  • DF_UNO 1
  • 本模块 1个
  • 可调稳压电源 1个
  • 杜邦线

c) 软件清单

d) 连线图

e) 操作步骤

  1. 将稳压电源调节到最小,然后打开电压,将电压调整到(0-2.085V)
  2. 安装Arduino MCP3424库,参见安装Arduino库
  3. 打开Arduino IDE
  4. 将下面的代码上传到UNO
 /* MCP 3424 version 1.2 example sketch OneShotConversion
 Written by B@tto
 Contact : batto@hotmail.fr

 In this example, one conversion per second is performed on channel 1 and 16 bits resolution.
 A new conversion has to be initiated by the user
 */


 #include <Wire.h>
 #include <MCP3424.h>

 MCP3424 MCP(0x68);   // Declaration of MCP3424 with Address of I2C

 long Voltage;

 void setup(){

   Serial.begin(9600);
   MCP.Configuration(1,16,0,1); // Channel 1, 16 bits resolution, one-shot mode, amplifier gain = 1

 }

 void loop(){

   MCP.NewConversion();    // New conversion is initiated

   Voltage=MCP.Measure();  // Measure, note that the library waits for a complete conversion

   Serial.print("Voltage = ");
   Serial.print(Voltage);
   Serial.println("uV");  // unit: microVolt

   delay (1000);

 }

f) 实现效果

  • 打开Ardino串口,可以观察到电压值。

树莓派电压测量

a) 目标:树莓派读取电压

b) 硬件清单

c) 软件清单

d) 连线图:请参考前一示例,将转换通道与树莓派GPIO中的I2C和电源引脚相连接。

e) 操作步骤:请参考该驱动的说明。

产品购买链接

购买