|
BPI-Pico-S3 与 Raspberry Pi Pico 板尺寸相同,搭载ESP32S3芯片,8M flash,4层PCB,电镀半孔工艺,陶瓷天线,支持 2.4 GHz Wi-Fi 和 Bluetooth® LE 双模无线通信,是一款专为物联网开发和Maker DIY设计的开发板。 出厂内置 tinyUF2 + CircuitPython,推荐使用Mu编辑器上手CircuitPython开发。 硬件接口示意图使用增量型旋转编码器接线参考 增量型旋转编码器 | BPI-PicoW-S3 | GND | GND | + | VBUS | SW | | DT | GP0 | CLK | GP1 |
import board
import digitalio
dt = digitalio.DigitalInOut(board.GP0)
clk = digitalio.DigitalInOut(board.GP1)
dt.switch_to_input()
clk.switch_to_input()
dt_last_value = 0
clk_last_value = 0
while True:
if dt.value != dt_last_value or clk.value != clk_last_value:
dt_last_value = int(dt.value)
clk_last_value = int(clk.value)
print((dt_last_value,clk_last_value))
转轴逆时针旋转时,REPL的输出。
(1, 1)
(1, 0)
(0, 0)
(0, 1)
(1, 1)
(1, 0)
(0, 0)
(0, 1)
(1, 1)转轴逆时针旋转时,逻辑分析仪所观察到的波形。
转轴顺时针旋转时,REPL的输出。
(1, 1)
(0, 1)
(0, 0)
(1, 0)
(1, 1)
(0, 1)
(0, 0)
(1, 0)
(1, 1)
转轴逆时针旋转时,逻辑分析仪所观察到的波形。
import board
import digitalio
dt = digitalio.DigitalInOut(board.GP0)
clk = digitalio.DigitalInOut(board.GP1)
dt.switch_to_input()
clk.switch_to_input()
dt_last_value = 0
clk_last_value = 0
count = 0
while True:
if dt.value != dt_last_value or clk.value != clk_last_value:
dt_last_value = int(dt.value)
clk_last_value = int(clk.value)
print((dt_last_value,clk_last_value))
if (dt_last_value,clk_last_value) == (1,1):
print('--',count_1,'--')
count += 1
逆时针旋转的规律为(1, 1)>(1, 0)>(0, 0)>(0, 1)>(1, 1)。
顺时针旋转的规律为(1, 1)>(0, 1)>(0, 0)>(1, 0)>(1, 1)。
import rotaryio
import board
encoder = rotaryio.IncrementalEncoder(board.GP0,board.GP1)
last_position = 0
while True:
position = encoder.position
if position != last_position:
print(position)
last_position = position购买BPI-PicoW-S3:
|
|