树莓派pico入坑笔记,数字输入输出

circuitpy的board模块类似于micropy的machine模块,保存有引脚信息,shell查询支持引脚如下

import board
dir(board)
>>> %Run -c $EDITOR_CONTENT
['__class__', '__name__', 'A0', 'A1', 'A2', 'A3', 'GP0', 'GP1', 'GP10', 'GP11', 'GP12', 'GP13', 'GP14', 'GP15', 'GP16', 'GP17', 'GP18', 'GP19', 'GP2', 'GP20', 'GP21', 'GP22', 'GP23', 'GP24', 'GP25', 'GP26', 'GP26_A0', 'GP27', 'GP27_A1', 'GP28', 'GP28_A2', 'GP3', 'GP4', 'GP5', 'GP6', 'GP7', 'GP8', 'GP9', 'LED', 'SMPS_MODE', 'STEMMA_I2C', 'VBUS_SENSE', 'VOLTAGE_MONITOR', 'board_id']
>>> 

数字引脚的输入输出需要用到对应的digitalio模块,可以用来设置引脚输入/出状态,设置引脚初始状态,具体看下面例子

输出

import board
import time
from digitalio import DigitalInOut,Direction,Pull
# 自带led为25脚
pin =DigitalInOut(board.GP25)#设置引脚为数字引脚
pin.direction=Direction.OUTPUT#设置数字引脚模式为输出
while True :
    pin.value=True#设置数字引脚高低电平,true为高
    time.sleep(.5)#每0.5秒变化一次状态
    pin.value=False
    time.sleep(.5)

输入

import board
import time
from digitalio import DigitalInOut,Direction,Pull
# 板子自带按钮为24脚
pin =DigitalInOut(board.GP24)
# 设置为输入
pin.direction=Direction.INPUT
# 设置初始状态为高电平,按下后连通GND,使电平拉低,减小干扰
pin.pull=Pull.UP
# Pull.DOWN 设置初始为低电平
i=0
while True :
    if not pin.value:
#         保证按下一次不会多次触发
        while not  pin.value:
            pass
        print(i)
        i+=1
#     不支持自增自减
        i%=10
    time.sleep(.05)

注意,以上模块均为内置模块

 

posted @ 2024-03-25 21:11  CV小能手chh  阅读(5)  评论(0)    收藏  举报  来源