树莓派读取模拟信号
- 连接方式 | VDD | 5V | | —- | —- | | GND | GND | | SCL | SCL | | SDA | SDA | | ADDR | GND | | A0~A3 | 传感器模拟输入pin |
树莓派I2C接口配置
sudo raspi-config
InterFacing Options
>I2C
enable
- 检查I2C设备是否在线
sudo apt-get install i2c-tools
sudo i2cdetect -y 1
当ADDR引脚连接到GND时,地址为:0x48(0100, 1000B)
当ADDR引脚连接到VDD时,地址为:0x49(0100, 1001B)
当ADDR引脚连接到SDA时,地址为:0x4A(0100, 1010B)
当ADDR引脚连接到SCL时,地址为:0x4B(0100, 1011B)
Python adafruit-circuitpython-ads1x15模块使用
sudo pip install adafruit-circuitpython-ads1x15
import time
import board
import busio
import adafruit_ads1x15.ads1015 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
# Create the I2C bus
i2c = busio.I2C(board.SCL, board.SDA)
# Create the ADC object using the I2C bus
ads = ADS.ADS1015(i2c)
# Create single-ended input on channel 0 相当于读取ads1115 A0 的信息
chan = AnalogIn(ads, ADS.P0)
# Create differential input between channel 0 and 1
#chan = AnalogIn(ads, ADS.P0, ADS.P1)
print("{:>5}\t{:>5}".format('raw', 'v'))
while True:
print("{:>5}\t{:>5.3f}".format(chan.value, chan.voltage))
time.sleep(0.5)