from machine import Pin
import utime
# Số xung encoder cho mỗi vòng quay (điều chỉnh theo encoder thực tế)
bit_encoder = 17  
xung = 0
xungcu = 0
# Khai báo 2 chân encoder A và B
pinA = Pin(25, Pin.IN)
pinB = Pin(26, Pin.IN)
# Hàm ngắt cho chân A
def ngat(pin):
    global xung
    if pinB.value() == 1:
        xung += 1
    else:
        xung -= 1
# Gắn ngắt cạnh lên cho chân A
pinA.irq(trigger=Pin.IRQ_RISING, handler=ngat)
# Vòng lặp chính
while True:
    # Tính vận tốc (số vòng/s) mỗi 100ms
    v = (xung - xungcu) / bit_encoder / 0.1  # vòng/s
    xungcu = xung
    print("Số xung:", xung)
    print("Vận tốc:", round(v, 2), "vòng/s")
    utime.sleep(0.1)