GPIO
树莓派的一个强大功能是在板的顶部边缘排有 GPIO (通用输入/输出)引脚。当前所有的树莓派板上都有一个 40 引脚的 GPIO 接头(在 Pi Zero和 Pi Zero W上不存在)。在 Pi 1 Model B +(2014)之前,主板包含较短的 26 针接头。
可以将任何 GPIO 引脚(在软件中)指定为输入或输出引脚,并可以用于多种用途。
注:GPIO引脚的编号不是数字顺序;板上有 GPIO 引脚 0 和 1 (物理引脚 27 和 28 ),但保留供高级使用(请参见下文)。
电压
板上有两个 5V 引脚和两个 3V3 引脚,以及多个不可配置的接地引脚(0V)。其余引脚均为通用 3V3 引脚,这意味着输出设置为 3V3 ,输入为 3V3 容限。
输出
可以将指定为输出引脚的 GPIO 引脚设置为高(3V3)或低(0V)。
输入
可以将指定为输入引脚的 GPIO 引脚读取为高电平(3V3)或低电平(0V)。通过使用内部上拉或下拉电阻,这变得更容易。 GPIO2和 GPIO3 引脚具有固定的上拉电阻,但是对于其他引脚,可以在软件中进行配置。
更多
除简单的输入和输出设备外,GPIO引脚还可以用于多种替代功能,其中一些功能在所有引脚上可用,其他功能在特定引脚上可用。
- PWM(脉宽调制)
- 所有引脚上均提供软件 PWM
- 硬件 PWM 可在 GPIO12 ,GPIO13,GPIO18,GPIO19上使用
- SPI
- SPI0:MOSI(GPIO10); MISO(GPIO9); SCLK(GPIO11); CE0(GPIO8),CE1(GPIO7)
- SPI1:MOSI(GPIO20); MISO(GPIO19); SCLK(GPIO21); CE0(GPIO18); CE1(GPIO17); CE2(GPIO16)
- I2C
- 数据:(GPIO2);时钟(GPIO3)
- EEPROM数据:(GPIO0); EEPROM时钟(GPIO1)
- 串行
- TX(GPIO14);接收(GPIO15)
GPIO引脚排列
重要的是要知道哪个引脚是哪个。有些人使用别针标签(例如RasPiO PortsplusPCB或可打印的Raspberry Leaf)。
通过打开终端窗口并运行命令" pinout",可以在树莓派上访问方便的参考。该工具由GPIO ZeroPython库提供,该库默认安装在树莓派 OS桌面映像上,而不安装在树莓派 OS Lite上。
有关 GPIO 引脚高级功能的更多详细信息,请参见 gadgetoid 的交互式引脚排列图。
使用 GPIO 编程
可以使用多种编程语言和工具来控制 GPIO 引脚。请参阅以下指南以开始使用:
- 具有 Scratch 1.4的 GPIO
- 具有 Scratch 2的 GPIO
- 带 Python 的 GPIO
- 通过 libgpiod 使用标准内核接口的具有 C /C ++的 GPIO
- 使用第 3 方库 Pigpio 的 C /C ++ GPIO
- 带有 Processing3 的 GPIO
警告:虽然将简单的组件连接到 GPIO 引脚是绝对安全的,但请务必注意如何进行连接。 LED应该具有电阻器以限制流过它们的电流。 3V3组件请勿使用 5V 。请勿将电机直接连接到 GPIO 引脚,而应使用H桥电路或电机控制器板。
权限
为了使用 GPIO 端口,您的用户必须是gpio
组的成员。 pi用户默认是成员,其他用户需要手动添加。
`` sudo usermod -a -G gpio <用户名> ```