接线图:
代码:
from periphery import SPI
import time
spi = SPI("/dev/spidev0.0",1,7629)
def ad_w_reg(reg,d):
r = spi.transfer([reg*2+1,d,0])
if r[2] != d:
raise Exception("write error reg")
def ad_r_reg(reg):
r = spi.transfer([reg*2,0,0])
return r[2]
def ad_cmd(cmd):
r = spi.transfer([cmd,0,0,0])
return r[2:]
def voltage():
value = spi.transfer([0,0,0,0,0,0])
voltage_fake_dec_high = value[2]
voltage_fake_dec_low = value[3]
voltage_real_dec = voltage_fake_dec_high * 256 + voltage_fake_dec_low
voltage_real = ((voltage_real_dec-32768) * 4.096 *2.5 * 2) /65536
return voltage_real
#-----main------
ad_cmd(0x85)
ad_w_reg(3,3)
for i in range(1,0x0d):
if i == 4:
continue
print(hex(i),ad_r_reg(i))
ad_cmd(0xa0)
print("starting auto")
#print("cmd",hex(ad_r_reg(0x3f)))
while True:
for i in range(8):
#print(i,spi.transfer([0,0,0,0,0,0]))
print("chanel",i,"voltage=",voltage(),"V")
time.sleep(2)
spi.close()
备注:
效果图: