PCF8591.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import smbus
  2. import time
  3. # 初始化smbus 1表示scl.1 0表示scl.0
  4. BUS = smbus.SMBus(1)
  5. # 寄存器地址
  6. ADDR = 0x48
  7. # 电位器地址
  8. Pmeter1 = 0x42
  9. Pmeter2 = 0x43
  10. # 方向值
  11. LEFTORRIGHT = 0
  12. UPORDOWN = 0
  13. # 中位归零
  14. MESOL = 0
  15. MESOR = 0
  16. # 最终方向值
  17. POSTION = '中位'
  18. # 左+右
  19. def TLEFTRIGHT():
  20. global LEFTORRIGHT,MESOL,UPORDOWN
  21. BUS.write_byte(ADDR,Pmeter1)
  22. value = BUS.read_byte(ADDR)
  23. # nowData = int(MESOL - value)
  24. LEFTORRIGHT = value
  25. # if nowData > 10:
  26. # a+=1
  27. # print('左',UPORDOWN)
  28. # elif nowData < -10:
  29. # a-=1
  30. # print('右',UPORDOWN)
  31. # else:
  32. # a =0
  33. # print('中',UPORDOWN)
  34. # if value > MESOL:
  35. # LEFTORRIGHT += 1
  36. # if LEFTORRIGHT > 100:
  37. # LEFTORRIGHT = 100
  38. # elif value < MESOL:
  39. # LEFTORRIGHT -= 1
  40. # if LEFTORRIGHT < -100:
  41. # LEFTORRIGHT = -100
  42. # else:
  43. # LEFTORRIGHT = 0
  44. # MESOL = value
  45. # 上+下
  46. def TUPDOWN():
  47. global UPORDOWN,MESOR
  48. BUS.write_byte(ADDR,Pmeter2)
  49. value = BUS.read_byte(ADDR)
  50. UPORDOWN = value
  51. # if value > MESOR:
  52. # UPORDOWN += 1
  53. # if UPORDOWN > 100:
  54. # UPORDOWN = 100
  55. # elif value < MESOR:
  56. # UPORDOWN -= 1
  57. # if UPORDOWN < -100:
  58. # UPORDOWN = -100
  59. # else:
  60. # UPORDOWN = 0
  61. # MESOR = value
  62. def Direction():
  63. global LEFTORRIGHT,UPORDOWN,POSTION
  64. if LEFTORRIGHT > 0 :
  65. POSTION = '右'
  66. elif LEFTORRIGHT < 0:
  67. POSTION = '左'
  68. else:
  69. POSTION = '中'
  70. def INIt():
  71. # 初始化中位值
  72. global MESOL,MESOR
  73. BUS.write_byte(ADDR,Pmeter1)
  74. MESOL = BUS.read_byte(ADDR)
  75. BUS.write_byte(ADDR,Pmeter2)
  76. MESOR = BUS.read_byte(ADDR)
  77. if __name__ == "__main__":
  78. # 初始化
  79. # INIt()
  80. # time.sleep(3)
  81. print('开始查询数据')
  82. # loop
  83. while True:
  84. TLEFTRIGHT()
  85. TUPDOWN()
  86. print(LEFTORRIGHT,UPORDOWN)
  87. time.sleep(0.01)
  88. pass