## 脚本编码 GPIO Zero库使用Broadcom(BCM)引脚编码,而不是物理编码(BOARD)。与```RPi.GPIO```库不同的是,GPIO Zero不允许配置引脚编码方式。 但是如果你想用其他编码方式,可以通过给引脚序号提供不同的前缀实现(下面会提到)。 >译注:不允许配置是为了降低复杂度,对于新手来说直接用就好了,除非是已经有一定的树莓派经验,直接用默认的BCM编码就好了。 下图中任意前面有GPIO的引脚都可以用做引脚的编号。比如,如果一个LED等连接到了```GPIO17```,那么这个LED的引脚编号就应该是**17**而不是11。 ![](https://img.kancloud.cn/80/89/80894eab4635a599e221b25bb12af673_208x733.png) 如果你倾向于使用物理编号(BOARD),你可以把引脚编号设定为```BOARD11```。如果对wiringPi的引脚编码(另外一种物理编码布局),你可以在编号前面使用“WPIO”前缀。你可以用"header:编号"的方式设定引脚,比如"J8:11""表示headerJ8(现代pi上的GPIOheader)上的11号物理引脚。所以,下面这些控制连接到11号引脚上的方式都是等效的: ~~~ >>> led = LED(17) >>> led = LED("GPIO17") >>> led = LED("BCM17") >>> led = LED("BOARD11") >>> led = LED("WPI0") >>> led = LED("J8:11") ~~~ >译注:header:number, J8:11的方式我也不懂,待研究。最简单的方法就是用GPIO编号```led = LED(17) ```,其他的比较复杂。 需要注意的是,上述引脚编码方式仅仅是一种翻译,最后都会转换为BCM编码,不过是为了熟悉其他引脚编码模式的人用起来更方便。所以,如果你通过命令行来获取设备的状态,返回相关元器件的引脚一定是BCM模式的编码。 ~~~ >>> led = LED("BOARD11") >>> led <gpiozero.LED object on pin GPIO17, active_high=True, is_active=False> ~~~ 在这个手册里使用上面介绍的BCM模式引脚编码,默认引脚编号都是整数。