我正在尝试用 ADS1263 替换 ADS1115,我唯一需要让它工作的就是为 ADS1263 重写这个函数。
我从 ADS1115 开始:
import adafruit_ads1x15.ads1115 as ADS
from adafruit_ads1x15.analog_in import AnalogIn
import time
def adcMonitor(conn):
i2c = busio.I2C(board.SCL, board.SDA)
ads = ADS.ADS1115(i2c)
ads.gain = 2
ads.mode = ADS.Mode.CONTINUOUS
ads.data_rate = 860
chan = AnalogIn(ads, ADS.P0, ADS.P1)
while True:
if (conn.recv() == "start"):
running = True
buffer = []
lastValue = 0
while (running == True):
# Should we stop?
if (conn.poll()):
if (conn.recv() == "stop"):
running = False
# Get value and make sure it's unique
nextValue = chan.value
if (nextValue != lastValue):
buffer.append(chan.value)
# Send back the ADC readings
conn.send(buffer)
parent_conn, child_conn = Pipe()
p = Process(target=adcMonitor, args=(child_conn,))
p.start()
现在我试着为 ADS1263 写这样的东西,但我不知道它到底应该是什么样子:
import ADS1263
import RPi.GPIO as GPIO
def adcMonitor(conn):
ADC = ADS1263.ADS1263()
ADC.ADS1263_SetMode(1)
ADC.ADS1263_DRATE('ADS1263_ADC1_14400SPS')
def ADS1263_SetDiffChannal(self, Channal):
if Channal == 0:
INPMUX = (0<<4) | 1
这里是 ADS1263 文档的链接:https://github.com/waveshare/High-Pricision_AD_HAT/blob/master/python/ADS1263.py