| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import smbus
- import time
- # 初始化smbus 1表示scl.1 0表示scl.0
- BUS = smbus.SMBus(1)
- # 寄存器地址
- ADDR = 0x48
- # 电位器地址
- Pmeter1 = 0x42
- Pmeter2 = 0x43
- # 方向值
- LEFTORRIGHT = 0
- UPORDOWN = 0
- # 中位归零
- MESOL = 0
- MESOR = 0
- # 最终方向值
- POSTION = '中位'
- # 左+右
- def TLEFTRIGHT():
- global LEFTORRIGHT,MESOL,UPORDOWN
- BUS.write_byte(ADDR,Pmeter1)
- value = BUS.read_byte(ADDR)
- # nowData = int(MESOL - value)
- LEFTORRIGHT = value
- # if nowData > 10:
- # a+=1
- # print('左',UPORDOWN)
- # elif nowData < -10:
- # a-=1
- # print('右',UPORDOWN)
- # else:
- # a =0
- # print('中',UPORDOWN)
- # if value > MESOL:
- # LEFTORRIGHT += 1
- # if LEFTORRIGHT > 100:
- # LEFTORRIGHT = 100
- # elif value < MESOL:
- # LEFTORRIGHT -= 1
- # if LEFTORRIGHT < -100:
- # LEFTORRIGHT = -100
- # else:
- # LEFTORRIGHT = 0
- # MESOL = value
-
- # 上+下
- def TUPDOWN():
- global UPORDOWN,MESOR
- BUS.write_byte(ADDR,Pmeter2)
- value = BUS.read_byte(ADDR)
- UPORDOWN = value
- # if value > MESOR:
- # UPORDOWN += 1
- # if UPORDOWN > 100:
- # UPORDOWN = 100
- # elif value < MESOR:
- # UPORDOWN -= 1
- # if UPORDOWN < -100:
- # UPORDOWN = -100
- # else:
- # UPORDOWN = 0
- # MESOR = value
- def Direction():
- global LEFTORRIGHT,UPORDOWN,POSTION
- if LEFTORRIGHT > 0 :
- POSTION = '右'
- elif LEFTORRIGHT < 0:
- POSTION = '左'
- else:
- POSTION = '中'
-
- def INIt():
- # 初始化中位值
- global MESOL,MESOR
- BUS.write_byte(ADDR,Pmeter1)
- MESOL = BUS.read_byte(ADDR)
- BUS.write_byte(ADDR,Pmeter2)
- MESOR = BUS.read_byte(ADDR)
- if __name__ == "__main__":
- # 初始化
- # INIt()
- # time.sleep(3)
- print('开始查询数据')
- # loop
- while True:
- TLEFTRIGHT()
- TUPDOWN()
- print(LEFTORRIGHT,UPORDOWN)
- time.sleep(0.01)
- pass
|