树莓派的 40 Pin GPIO 引脚功能如下图。任何 GPIO 引脚都可以在软件中指定为输入或输出,可适用广泛的用途。

注意:GPIO 引脚的编号不按数字顺序排列,板上存在 GPIO 引脚 0 和 1(物理引脚 27 和 28),但进行了保留,用于高级用途(见下文)。

电压

两个5V引脚、两个3.3V引脚,以及一些不可配置的接地引脚(0V)。意味着输出设置为3.3V,输入为3.3V容差

输出

GPIO作为输出,可以设为高(3.3V) 或者低(0V).

输入

GPIO作为输入,可以读取为高(3.3V) 或者低(0V)。使用上拉或下拉电阻器可以更轻松地实现。GPIO2 和 GPIO3 固定上拉电阻,其他引脚可以在软件中配置。

其他

除了简单的输入和输出设备,GPIO引脚还可以用于各种替代功能,有些可用于所有引脚,有些可用于特定引脚。

可以在终端窗口,运行 查看参考信息。 Pi OS 默认已经安装好了 GPIO 库。

有关 GPIO 引脚高级功能的更多详细信息,可参考这里。

权限

为了能使用 GPIO 端口,你需要将用户加到 gpio 组。 pi 用户默认是在 gpio 组中,其他用户需要自己加入。

sudo usermod -a -G gpio 

GPIO in

GPIO Zero 可以很方便使用 控制 GPIO。

LED

使用 控制 led,示例:

from gpiozero import LED
from time import sleep
led = LED(17)
while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)

使用 file 运行示例,Led 将反复闪烁和熄灭。

LED 函数包括:on()、off()、() 和 blink()。

按键

使用 GPIO2 读取按键状态,示例:

from gpiozero import Button
from time import sleep
button = Button(2)
while True:
    if button.is_pressed:
        print("Pressed")
    else:
        print("Released")
    sleep(1)

按钮功能包括

属性:、

回调函数:()、()、()

方法:()、()

按键 + LED

按键和 LED 组合使用:

from gpiozero import LED, Button
led = LED(17)
button = Button(2)
while True:
    if button.is_pressed:
        led.on()
    else:
        led.off()

或者:

from gpiozero import LED, Button
led = LED(17)
button = Button(2)
while True:
    button.wait_for_press()
    led.on()
    button.wait_for_release()
    led.off()

或者:

from gpiozero import LED, Button
led = LED(17)
button = Button(2)
button.when_pressed = led.on
button.when_released = led.off

更多关于 GPIO Zero 库,可参考这里。