1

我使用 ads1115 从模拟传感器获取值到树莓派 3,但我很难弄清楚如何从 python 中获取它们。

我使用 SMBus 库来获取 i2c 值,但我找不到如何实际获取模拟 0AIN0通道值。我发现 ads1115 的 i2c 地址是,0x48但我找不到 AIN0 通道的地址,因此我没有命令的第二个参数,smbus.read_byte_data(0x48, ???)我尝试了一些地址,例如0x000x01但它总是给我相同的值即使传感器值应该改变。这是我的代码:

from smbus import SMBus
import RPi.GPIO as GPIO
import time

def main():
    i2cbus = SMBus(1)
    i2caddress = 0x48
    value = i2cbus.read_byte_data(0x48, """dont't know""")

if __name__ == "__main__":
    main()
4

1 回答 1

1

要从 ADS1115 ADC IC 读取数字数据,您必须将模拟信号连接到ADS1115 的A[0]~A[3]引脚。ADS1115 ADC 模块将引脚A[0]~上的模拟信号转换A[3]为数字形式后,应通过I2C 接口读取数值。查看参考部分以查看 ADS1115 模块的案例研究。

0x00以下命令调用从从地址为 的 I2C 设备的寄存器地址开始读取 2 个字节的数据0x48

# read_i2c_block_data(i2c_address, register, length, force=None)
# i2c_address -> ADS1115  I2C slave address
# register    -> ADS1115 conversion register address
# length      -> desired block length
value = i2cbus.read_i2c_block_data(0x48, 0x00, 2)
参考
于 2022-01-10T22:02:30.577 回答