在这里想介绍一下ADS1115模块:为撒要加一个数模转换模块
使用Raspberry Pi读取输出模拟信号
由于Raspberry Pi zero 2B内部没有集成ADC,因此需要外接 ADC 来进行模数转换。外接 ADC 选用的是 ADS1115, I2C 的通讯方式实现起来相对容易些。
简单介绍一下ADS模拟-数字转换器
特点:
1)超小型QFN封装:2mm1.5mm0.4mm
2)宽电源电压范围:2.0V-5.5V
3)低消耗电流:连续模式:只有150u单次模式,自动关闭
4)可编成数据速率:8SPS到860SPS
5)内部底漂移电压基准
6)内部振荡器
7)内部PGA
8)I2C接口:引脚可选择的地址
9)四个单端或两个差分输入(ADS1115)
10)可编成比较器(ADS1114和ADS1115)
11)工作温度:-40摄氏度到+140摄氏度
应用
1)便携式仪表
2)消费品
3)电池监控
4)温度测量
5)工厂自动化和过程控制
引脚与地址访问
根据ADDR引脚连接不到不同的引脚上,其I2C的访问地址是不同的:
当ADDR引脚连接到GND时,地址为:0x48(0100, 1000B)
当ADDR引脚连接到VDD时,地址为:0x49(0100, 1001B)
当ADDR引脚连接到SDA时,地址为:0x4A(0100, 1010B)
当ADDR引脚连接到SCL时,地址为:0x4B(0100, 1011B)
根据以上可以得到,我们一个I2C接口单层级联,可以同时连接4个ADS1115,也就是单层一个I2C接口可以同时测量16路16位的模拟电压量。
对RaspberryPI zero 2W和ADS1115进行配置的关键部分代码如下:
import board
import busio
import time
i2c = busio.I2C(board.SCL, board.SDA)
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
ads = ADS.ADS1115(i2c)
chan = AnalogIn(ads, ADS.P2)
while True:
print(chan.value)
time.sleep(0.1)
这段代码使用了RaspberryPI zero 2W的I2C接口读取ADS1115模块的模拟输入信号。通过将信号输入到P2通道,使用AnalogIn库读取模拟输入电压的值。while True循环不断地读取并打印电压值,每0.1秒更新一次。