注:本文翻译自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+()之前,董事会由一个较短的26针头组成。所有板(包括Raspberry Pi 400)上的GPIO头都有0.1英寸(2.54毫米)的针距。
任何GPIO引脚都可以(在软件中)指定为输入或输出引脚,并用于多种用途。
电压
板上有两个5V引脚和两个3.3V引脚,以及一些不可配置的接地引脚(0V)。其余引脚均为通用3.3V引脚,意味着输出设置为3.3V,输入为3.3V容差。
输入/出
输出:指定为输出引脚的GPIO引脚可以设置为高(3.3V)或低(0V)。
输入:指定为输入引脚的GPIO引脚可以读取为高(3.3V)或低(0V)。通过使用内部上拉或下拉电阻器,这变得更容易。引脚GPIO2和GPIO3具有固定的上拉电阻,但对于其他引脚,可以在软件中进行配置。
更多
除了简单的输入和输出设备外,GPIO引脚还可以与多种替代功能一起使用,其中一些可用于所有引脚,其他可用于特定引脚。
PWM(脉冲宽度调制)所有引脚上都有软件PWMGPIO12、GPIO13、GPIO18、GPIO19上提供硬件PWMSPI公司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)
GPIO引脚
通过打开终端窗口并运行命令,可以在Raspberry Pi上访问一个方便的参考pinput。此工具由GPIO零Python库,默认安装在Raspberry Pi OS中。
有关GPIO引脚高级功能的更多详细信息,请参阅gadgetoid交互式pinout图.
权限
为了使用GPIO端口,您的用户必须是gpio公司组。这个圆周率默认情况下,用户是成员,其他用户需要手动添加。
sudo usermod -a -G gpio <username>
Python中的GPIO
使用GPIO Zero该库使开始使用Python控制GPIO设备变得容易。该库在gpiozero.readthedocs.io.
LED
要控制连接到GPIO17的LED,可以使用以下代码:
from gpiozero import LEDfrom time import sleepled = LED(17)while True:led.on()sleep(1)led.off()sleep(1)
在类似Thonny的IDE中运行此操作,LED将反复闪烁。
LED方法包括打开(),关闭(),切换()、和闪烁().
按钮
要读取连接到GPIO2的按钮的状态,可以使用以下代码:
from gpiozero import Buttonfrom time import sleepbutton = Button(2)while True:if button.is_pressed:print("Pressed")else:print("Released")sleep(1)
按钮功能包括属性按下(_P)和保留(_H); 回调按下时,发布时、和何时暂停; 和方法等待压力()和等待释放.
按钮+LED
要将LED和按钮连接在一起,可以使用以下代码:
from gpiozero import LED, Buttonled = LED(17)button = Button(2)while True:if button.is_pressed:led.on()else:led.off()
或者
from gpiozero import LED, Buttonled = LED(17)button = Button(2)while True:button.wait_for_press()led.on()button.wait_for_release()led.off()
或
from gpiozero import LED, Buttonled = LED(17)button = Button(2)button.when_pressed = led.onbutton.when_released = led.off
更多实例
你可以在Raspberry Pi出版社的书中找到更多关于如何使用GPIO Zero Python库对连接到Raspbery Pi的电子设备进行编程的信息带有GPIO Zero的简单电子设备由Phil King编写,是Raspberry Pi Press出版的MagPi Essentials系列的一部分。这本书让您开始了解GPIOZero库,并通过构建一系列项目指导您如何使用它。
你可以免费下载这本书作为PDF文件,它是在知识共享下发布的归属-非商业性-相同共享3.0未出口(CC BY NC-SA)许可证。