|
@@ -449,12 +449,14 @@ class LED:
|
|
|
def __init__(self, gpioId=69):
|
|
|
self.gpioId=gpioId
|
|
|
SUNXI_GPIO.setcfg(self.gpioId, SUNXI_GPIO.OUT)
|
|
|
+ SUNXI_GPIO.setcfg(259, SUNXI_GPIO.OUT)
|
|
|
def out(self,value):
|
|
|
if value==0 or value==1:
|
|
|
self.value=1-value
|
|
|
else:
|
|
|
self.value=0
|
|
|
SUNXI_GPIO.output(self.gpioId,self.value)
|
|
|
+ SUNXI_GPIO.output(259,self.value)
|
|
|
|
|
|
##################################
|
|
|
# 6、QMI8658 #
|
|
@@ -1276,7 +1278,7 @@ class MCP23017(object):
|
|
|
self.byteWrite(self.gppub,self.GPPU_B_V)
|
|
|
self.byteWrite(self.gpioa,self.GPIO_A_V)
|
|
|
self.byteWrite(self.gpiob,self.GPIO_B_V)
|
|
|
- print("mcp23017 reset completed!")
|
|
|
+ # print("mcp23017 reset completed!")
|
|
|
|
|
|
def byteWrite(self, addr, val):
|
|
|
try:
|
|
@@ -1301,7 +1303,7 @@ class MCP23017(object):
|
|
|
#direction:[0:output],[1:input(default)]
|
|
|
if channel=="A":
|
|
|
self.DIR_A=self.bitWrite(self.DIR_A,pinId,direction)
|
|
|
- print("Dir_A="+str(self.DIR_A))
|
|
|
+ # print("Dir_A="+str(self.DIR_A))
|
|
|
self.byteWrite(self.iodira,self.DIR_A)
|
|
|
elif channel=="B":
|
|
|
self.DIR_B=self.bitWrite(self.DIR_B,pinId,direction)
|
|
@@ -1439,10 +1441,16 @@ class ADS1115(object):
|
|
|
|
|
|
def swap(self,val):
|
|
|
return (((val&0xff00)>>8)|((val&0x00ff)<<8)) #交换高8位与低8位
|
|
|
+ def numberMap(self,value, leftMin, leftMax, rightMin, rightMax):
|
|
|
+ leftSpan = leftMax - leftMin
|
|
|
+ rightSpan = rightMax - rightMin
|
|
|
+ valueScaled = float(value - leftMin) / float(leftSpan)
|
|
|
+ return rightMin + (valueScaled * rightSpan)
|
|
|
###
|
|
|
def readAdc(self,channel):
|
|
|
- if (channel>3) or (channel<0):
|
|
|
- return False
|
|
|
+ # print("111111111111111",(channel>3) or (channel<0))
|
|
|
+ # if (channel>3) or (channel<0):
|
|
|
+ # return False
|
|
|
self.config=(self.CONFIG_OS_START + # start conversion
|
|
|
#self.CONFIG_MUX_AIN0P_GNDN + # single ended conversion
|
|
|
((channel+4)<<12) + # select channel
|
|
@@ -1466,8 +1474,9 @@ class ADS1115(object):
|
|
|
# read result (note byte swap)
|
|
|
result=self.swap(self.bus.read_word_data(self.address,self.DEVICE_REG_CONVERSION))
|
|
|
# return 16 bit integer A2D result for the specified channel
|
|
|
- volt=round((result*6.144/32768),3)
|
|
|
- return [result,volt]
|
|
|
+ # volt=round((result*6.144/32768),3)
|
|
|
+ result = int(self.numberMap(result,0,32768,0,1023))
|
|
|
+ return result
|
|
|
|
|
|
class PCA9685(object):
|
|
|
bus=smbus2.SMBus(2)
|
|
@@ -1480,7 +1489,7 @@ class PCA9685(object):
|
|
|
self.reset()
|
|
|
#for i in range(0,16):
|
|
|
#self.duty(i,0)
|
|
|
- print("Pca9685 init")
|
|
|
+ # print("Pca9685 init")
|
|
|
|
|
|
def write(self, addr, val):
|
|
|
for i in range(0, 2):
|
|
@@ -1849,16 +1858,16 @@ class extGpio(MCP23017,ADS1115,extOutputPin):
|
|
|
#select X channel
|
|
|
if pinId==0: #p0
|
|
|
self.setGpioDir("B",2,1) #output
|
|
|
- self.setGpioLevel("B",2,0) #low
|
|
|
+ self.setGpioLevel("B",2,1) #low
|
|
|
elif pinId==1: #p1
|
|
|
self.setGpioDir("B",1,1)
|
|
|
- self.setGpioLevel("B",1,0)
|
|
|
+ self.setGpioLevel("B",1,1)
|
|
|
elif pinId==2: #p2
|
|
|
self.setGpioDir("B",6,1)
|
|
|
- self.setGpioLevel("B",6,0)
|
|
|
+ self.setGpioLevel("B",6,1)
|
|
|
elif pinId==3: #p3
|
|
|
self.setGpioDir("B",5,1)
|
|
|
- self.setGpioLevel("B",5,0)
|
|
|
+ self.setGpioLevel("B",5,1)
|
|
|
else:
|
|
|
pass
|
|
|
self.address=0x40 #再用PCA9685进行控制
|
|
@@ -1869,13 +1878,13 @@ class extGpio(MCP23017,ADS1115,extOutputPin):
|
|
|
self.address=0x20 #先用mcp23017进行通道选择
|
|
|
#select X channel
|
|
|
if pinId==4: #a0
|
|
|
- self.setGpioDir("A",4,1) #input
|
|
|
+ self.setGpioDir("A",4,0) #input
|
|
|
self.setGpioLevel("A",4,0) #low
|
|
|
elif pinId==5: #a1
|
|
|
- self.setGpioDir("A",3,1)
|
|
|
+ self.setGpioDir("A",3,0)
|
|
|
self.setGpioLevel("A",3,0)
|
|
|
elif pinId==6: #a2
|
|
|
- self.setGpioDir("A",2,1)
|
|
|
+ self.setGpioDir("A",2,0)
|
|
|
self.setGpioLevel("A",2,0)
|
|
|
elif pinId==7: #a3
|
|
|
self.setGpioDir("B",7,0)
|
|
@@ -1889,4 +1898,4 @@ class extGpio(MCP23017,ADS1115,extOutputPin):
|
|
|
extOutputPin.__del__(self)
|
|
|
self.address=0x20
|
|
|
MCP23017.__del__(self) #最先init的配置最后再del
|
|
|
- print("del finished!")
|
|
|
+ # print("del fini
|