User Tools

Site Tools


raspberrypi:encoder

Rotary encoder

Geras daiktas reguliuoti kanos aukštyn žemyn (garsumas)

naudoja pigpio biblioteka

kas gaunasi, žiureti paskutini stulpeli:

import time
import pigpio
 
pi = pigpio.pi() # Connect to local Pi
 
prev_gpio = -1
counter = 0
 
pi.set_mode(20, pigpio.INPUT)
pi.set_mode(16, pigpio.INPUT)
pi.set_mode(12, pigpio.INPUT)
 
def cbf(gpio, level, tick):
   global prev_gpio 
   global counter
   print(gpio, level, tick, prev_gpio, counter)
   prev_gpio2 = gpio
   #if prev_gpio == gpio: prev_gpio = 0
   if prev_gpio == 16 and gpio == 12: 
       counter -= 1
       prev_gpio2 = -1
   if prev_gpio == 12 and gpio == 16: 
       counter += 1
       prev_gpio2 = -1
   prev_gpio = prev_gpio2
 
pi.set_pull_up_down(20, pigpio.PUD_UP)
pi.set_pull_up_down(16, pigpio.PUD_DOWN)
pi.set_pull_up_down(12, pigpio.PUD_DOWN)
 
pi.callback(20, pigpio.RISING_EDGE, cbf)
pi.callback(16, pigpio.RISING_EDGE, cbf)
pi.callback(12, pigpio.RISING_EDGE, cbf)
 
while 1:
    time.sleep(1)
raspberrypi/encoder.txt · Last modified: by aistis