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)