Advertisement
Guest User

Encoder

a guest
Nov 22nd, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.91 KB | None | 0 0
  1. import RPi.GPIO as GPIO
  2. import time
  3.  
  4. # Set up Raspberry board pin out as BOARD mode
  5. GPIO.setmode(GPIO.BOARD)
  6.  
  7. #Define input Pin
  8. input_A = 15
  9. input_B = 16
  10.  
  11. # Set up Rasperry pin Mode
  12. GPIO.setup(input_A, GPIO.IN, pull_up_down = GPIO.PUD.UP)
  13. GPIO.setup(input_B, GPIO.IN, pull_up_down = GPIO.PUD.UP)
  14.  
  15. # Declare variable
  16. prev_A = True
  17. prev_B = True
  18.  
  19. print(prev_A)
  20. prev_B
  21. #####################################
  22. def get_encoder_turn():
  23.     # return -1, 0 or +1
  24.     global prev_A, prev_B
  25.     new_A = GPIO.input(input_A)
  26.     new_B = GPIO.input(input_B)
  27.     if new_A != prev_A or new_B != prev_B:
  28.         if prev_A == 0 and new_A == 1:
  29.             result = (prev_B *2 - 1)
  30.         elif prev_B == 0 and new_B == 1:
  31.             result = -(prev_A *2 - 1)
  32.     prev_A, prev_B = new_A, new_B
  33.     time.sleep(0.001)
  34.     return result
  35.  
  36. counter = 0
  37.  
  38. while True:
  39.     change = get_encoder_turn()
  40.     if change != 0:
  41.         counter = counter + change
  42.         print(counter)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement