| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import time
- import math
- # pip3 install Adafruit_ADS1x15
- import Adafruit_ADS1x15
- # 硬件地址 模块LADDR端接地
- ADDR = 0x48
- # 初始化ADS1115模块
- ADC = Adafruit_ADS1x15.ADS1115(address=ADDR)
- # 摇杆数据入口对应模块in0,in1
- P0 = 0
- P1 = 1
- # 最终方向
- content = 'Center'
- # 获取摇杆值
- def GetValue():
- while True:
- # 转换后的值
- value0 = ADC.read_adc(P0, gain=1,data_rate=128)
- value1 = ADC.read_adc(P1, gain=1,data_rate=128)
- # print('初始值',value0,value1)
- # 电压转换方向
- Orientation(value0,value1)
- time.sleep(0.05)
- # 区分方向
- def Orientation(value0,value1):
- global content
- # /1000得到电压值方便比较,实际电压值得/10000.
- v0 = int(value0 / 1000)
- v1 = int(value1 / 1000)
- if Residual(v0) > 20 and Residual(v1) == 20:
- content = 'Top'
- elif Residual(v0) < 20 and Residual(v1) == 20:
- content = 'Dwon'
- elif Residual(v0) == 20 and Residual(v1) > 20:
- content = 'Right'
- elif Residual(v0) == 20 and Residual(v1) < 20:
- content = 'Left'
- else:
- content = 'Center'
- print('实际电压值',v0,v1,content)
- # 电压值误差根据实际情况调整
- def Residual(v):
- # 中间值
- vs = 20
- # 误差值
- vd = 3
- if math.fabs(v - vs) > vd:
- return v
- elif math.fabs(v - vs) < vd:
- return vs
- else:
- return vs
- if __name__ == '__main__':
- GetValue()
|