概述
模块集成了高品质的的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) 操作步骤
- 将稳压电源调节到最小,然后打开电压,将电压调整到(0-2.085V)
- 安装Arduino MCP3424库,参见安装Arduino库
- 打开Arduino IDE
- 将下面的代码上传到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) 硬件清单
- 树莓派 B+ 1
- 本模块 1个
- 杜邦线
c) 软件清单
d) 连线图:请参考前一示例,将转换通道与树莓派GPIO中的I2C和电源引脚相连接。
e) 操作步骤:请参考该驱动的说明。