当前位置:   article > 正文

树莓派:GPIO/引脚/Pin 介绍_树莓派针脚解读

树莓派针脚解读

注:本文翻译自respberry官方介绍文档

GPIO和40针头

Raspberry Pi的一个强大功能是沿着板的顶部边缘有一排GPIO(通用输入/输出)引脚。所有当前的Raspberry Pi板上都有一个40针的GPIO头(Raspberry-Pi-Zero、Raspberri-Pi-Zero-W和Raspber里-Pi-Zere-2 W上未安装)。在Raspberry Pi 1 Model B+(2014年)之前,董事会由一个较短的26针头组成。所有板(包括Raspberry Pi 400)上的GPIO头都有0.1英寸(2.54毫米)的针距。

在这里插入图片描述任何GPIO引脚都可以(在软件中)指定为输入或输出引脚,并用于多种用途。GPIO引脚的编号不是按照数字顺序;GPIO引脚0和1位于板上(物理引脚27和28),但保留供高级使用

电压

板上有两个5V引脚和两个3.3V引脚,以及一些不可配置的接地引脚(0V)。其余引脚均为通用3.3V引脚,意味着输出设置为3.3V,输入为3.3V容差。

输入/出

输出:指定为输出引脚的GPIO引脚可以设置为高(3.3V)或低(0V)。
输入:指定为输入引脚的GPIO引脚可以读取为高(3.3V)或低(0V)。通过使用内部上拉或下拉电阻器,这变得更容易。引脚GPIO2和GPIO3具有固定的上拉电阻,但对于其他引脚,可以在软件中进行配置。

更多

除了简单的输入和输出设备外,GPIO引脚还可以与多种替代功能一起使用,其中一些可用于所有引脚,其他可用于特定引脚。

PWM(脉冲宽度调制)

    所有引脚上都有软件PWM

    GPIO12、GPIO13、GPIO18、GPIO19上提供硬件PWM

SPI公司

    SPI0:MOSI(GPIO10);MISO(GPIO9);SCLK(GPIO11);CE0(GPIO8)、CE1(GPIO7)

    SPI:MOSI(GPIO20);MISO(GPIO19);SCLK(GPIO21);CE0(GPIO18);CE1(GPIO17);CE2(GPIO16)

I2C型

    数据:(GPIO2);时钟(GPIO3)

    EEPROM数据:(GPIO0);EEPROM时钟(GPIO1)

序列号

    传输(GPIO14);接收(GPIO15)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

GPIO引脚

通过打开终端窗口并运行命令,可以在Raspberry Pi上访问一个方便的参考pinput。此工具由GPIO零Python库,默认安装在Raspberry Pi OS中。虽然将简单的组件连接到GPIO引脚是非常安全的,但重要的是要小心连接方式。LED应该有电阻器来限制通过它们的电流。不要对3.3V组件使用5V电压。不要将电机直接连接到GPIO引脚,而是使用H桥电路或电机控制器板.
有关GPIO引脚高级功能的更多详细信息,请参阅gadgetoid交互式pinout图.

权限

为了使用GPIO端口,您的用户必须是gpio公司组。这个圆周率默认情况下,用户是成员,其他用户需要手动添加。

sudo usermod -a -G gpio <username>
  • 1

Python中的GPIO

使用GPIO Zero该库使开始使用Python控制GPIO设备变得容易。该库在gpiozero.readthedocs.io.

LED

要控制连接到GPIO17的LED,可以使用以下代码:

from gpiozero import LED
from time import sleep

led = LED(17)

while True:
    led.on()
    sleep(1)
    led.off()
    sleep(1)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在类似Thonny的IDE中运行此操作,LED将反复闪烁。

LED方法包括打开(),关闭(),切换()、和闪烁().

按钮

要读取连接到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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

按钮功能包括属性按下(_P)和保留(_H); 回调按下时,发布时、和何时暂停; 和方法等待压力()和等待释放.

按钮+LED

要将LED和按钮连接在一起,可以使用以下代码:

from gpiozero import LED, Button

led = LED(17)
button = Button(2)

while True:
    if button.is_pressed:
        led.on()
    else:
        led.off()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

或者

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

from gpiozero import LED, Button

led = LED(17)
button = Button(2)

button.when_pressed = led.on
button.when_released = led.off
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

更多实例

你可以在Raspberry Pi出版社的书中找到更多关于如何使用GPIO Zero Python库对连接到Raspbery Pi的电子设备进行编程的信息带有GPIO Zero的简单电子设备由Phil King编写,是Raspberry Pi Press出版的MagPi Essentials系列的一部分。这本书让您开始了解GPIOZero库,并通过构建一系列项目指导您如何使用它。

你可以免费下载这本书作为PDF文件,它是在知识共享下发布的归属-非商业性-相同共享3.0未出口(CC BY NC-SA)许可证。
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/673981
推荐阅读
相关标签
  

闽ICP备14008679号