树莓派读取模拟信号

  • 连接方式 | VDD | 5V | | —- | —- | | GND | GND | | SCL | SCL | | SDA | SDA | | ADDR | GND | | A0~A3 | 传感器模拟输入pin |

树莓派I2C接口配置

  • sudo raspi-config
    1. InterFacing Options > I2C
    2. enable
  • 检查I2C设备是否在线
    1. sudo apt-get install i2c-tools
    2. sudo i2cdetect -y 1
    image.png

    当ADDR引脚连接到GND时,地址为:0x48(0100, 1000B)
    当ADDR引脚连接到VDD时,地址为:0x49(0100, 1001B)
    当ADDR引脚连接到SDA时,地址为:0x4A(0100, 1010B)
    当ADDR引脚连接到SCL时,地址为:0x4B(0100, 1011B)

Python adafruit-circuitpython-ads1x15模块使用

  1. sudo pip install adafruit-circuitpython-ads1x15
  1. import time
  2. import board
  3. import busio
  4. import adafruit_ads1x15.ads1015 as ADS
  5. from adafruit_ads1x15.analog_in import AnalogIn
  6. # Create the I2C bus
  7. i2c = busio.I2C(board.SCL, board.SDA)
  8. # Create the ADC object using the I2C bus
  9. ads = ADS.ADS1015(i2c)
  10. # Create single-ended input on channel 0 相当于读取ads1115 A0 的信息
  11. chan = AnalogIn(ads, ADS.P0)
  12. # Create differential input between channel 0 and 1
  13. #chan = AnalogIn(ads, ADS.P0, ADS.P1)
  14. print("{:>5}\t{:>5}".format('raw', 'v'))
  15. while True:
  16. print("{:>5}\t{:>5.3f}".format(chan.value, chan.voltage))
  17. time.sleep(0.5)