i2c读adc转换程序
更多
以下是一个基于 Arduino 平台的 I2C 读取 ADC 转换的通用示例(以常见芯片 ADS1115 为例):
#include <Wire.h>
#define ADS1115_ADDR 0x48 // I2C地址 (ADDR引脚接地)
void setup() {
Wire.begin();
Serial.begin(9600);
}
void loop() {
// 配置ADC参数 (通道0, ±4.096V范围, 单次转换模式)
uint8_t config[] = {
0x01, // 指向配置寄存器
0xC2, 0x03 // 具体配置: A0通道, 4.096V, 128SPS
};
// 发送配置
Wire.beginTransmission(ADS1115_ADDR);
Wire.write(config, 3);
Wire.endTransmission();
delay(10); // 等待转换完成(根据采样率调整)
// 读取转换结果
Wire.beginTransmission(ADS1115_ADDR);
Wire.write(0x00); // 指向转换寄存器
Wire.endTransmission();
Wire.requestFrom(ADS1115_ADDR, 2);
if(Wire.available() == 2) {
int16_t raw = Wire.read() << 8 | Wire.read();
float voltage = (raw * 4.096) / 32768.0; // 计算实际电压
Serial.print("电压值: ");
Serial.print(voltage, 4);
Serial.println(" V");
}
delay(1000);
}
关键点说明:
-
I2C地址设置:
- ADDR引脚的不同接法会改变地址 (0x48-0x4B)
- 常见默认地址为 0x48 (ADDR接地)
-
配置寄存器详解:
[1] OS: 1 (启动单次转换) [1] MUX: 100 (选择A0通道) [0] PGA: 010 (±4.096V量程) [0] MODE: 1 (单次转换模式) [1] DR: 100 (128 SPS) [0] COMP_*: 默认比较器设置 -
结果计算:
- 16位有符号数转换 (范围 -32768~32767)
- 实际电压 = (原始值 × 量程) / 32768
常见问题处理:
-
设备无响应:
- 检查I2C地址是否正确 (用扫描工具确认)
- 确认接线是否正确 (SDA/A4, SCL/A5)
- 确保上拉电阻已连接 (通常4.7kΩ)
-
数据异常:
- 检查量程是否匹配输入电压
- 增加转换等待时间 (根据采样率调整delay)
- 验证字节顺序 (高位在前或小端模式)
-
多通道切换: 修改MUX配置位:
- A0: 100
- A1: 101
- A2: 110
- A3: 111
其他ADC芯片(如PCF8591)需根据其数据手册调整寄存器配置。建议始终参考具体芯片的技术文档进行参数配置。
嵌入式内核及驱动开发-09IIC子系统框架使用(I2C协议和时序,I2C驱动框架,I2C从设备驱动开发,MPU6050硬件连接
文章目录I2c协议和时序I2c介绍I2c硬件连接I2c总线的信号
资料下载
tr12345
2021-12-06 14:06:07
I2C debug出现问题怎么解决
错误; I2C slave 设备不处于正常工作状态,比如未给电,错误的上电时序等; 时序不符合 I2C slave 设备所要求也会产生 Nack 信号。 3、当外设对于
2023-07-22 15:00:27
如何提高I2C调试效率?
一般情况下,我们想要调试这类 I2C 器件,都需要先找一块主控 MCU 板卡,用杜邦线将 I2C 器件连接到板卡上,然后编写 MCU 代码,需包含 I2C
2023-06-08 13:00:08
I2C双向电平转换电路
本文分享下I2C双向电平转换电路的设计原理,以及需要注意的事项。 在I2C主从设备对接时,需要考虑主从设备的电平情况,常规的主要有3种:5V,3
2020-03-30 11:10:29
7天热门专题
换一换
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 如何进行编码器的正确接线?接线方法介绍
- 什么是场效应管?它的作用是什么?
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- amoled屏幕和oled区别
- 苹果nfc功能怎么复制门禁卡
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 苹果笔记本macbookpro18款与19款区别
- 通讯隔离作用
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机