这些额外的接口用于将组件集合组合在一起以便于使用,并作为示例。它们是由 GPIO Zero 提供的各种输入设备和输出设备组成的复合设备。有关单独使用组件的更多信息,请参阅这些页面。
所有 GPIO 引脚编号默认使用 Broadcom (BCM) 编号。更多信息,请参阅 引脚编号 部分。
常规类
以下类用于与它们命名的设备一起使用。本节中的所有类都是具体类(非抽象类)。
LEDBoard
class gpiozero.LEDBoard(*pins, pwm=False, active_high=True, initial_value=False, _order=None, pin_factory=None, **named_pins)
扩展 LEDCollection,表示通用 LED 板或 LED 集合。
以下示例使用 LEDBoard 控制三个 LED:
from gpiozero import LEDBoard
leds = LEDBoard(2, 3, 4)
leds.on()
leds.blink()
| 参数 |
- *pins (
int 或 str 或 LEDCollection)- 指定板上 LED 连接的 GPIO 引脚。有关有效的引脚编号,请参阅引脚编号。您可以指定任意数量的引脚。您也可以指定 LEDBoard 实例来创建 LED 树。
- pwm (
bool)- 如果为 True,则为每个引脚构造 PWMLED 实例。如果为 False(默认值),则构造常规 LED 实例。
- active_high (
bool)- 如果为 True(默认值),on 方法将所有关联的引脚设置为 HIGH。如果为 False,on 方法将所有引脚设置为 LOW(off 方法始终执行相反操作)。
- initial_value (
bool 或 None)- 如果为 False(默认值),所有 LED 最初将关闭。如果为 None,每个设备将保持其当前状态。如果为 True,设备将初始打开。
- _order - 内部参数,用于指定设备顺序。
- pin_factory (
Factory 或 None)- 请参阅 API - Pins 获取更多信息(这是一项高级功能,大多数用户可以忽略)。
- **named_pins - 您可 以使用命名参数指定 LED。例如
LEDBoard(red=2, green=3, blue=4) 允许您通过 leds.red.on() 访问 LED。
|
on(*args)
打开所有或指定索引的 LED。
off(*args)
关闭所有或指定索引的 LED。
toggle(*args)
切换所有或指定索引的 LED 状态。
blink(on_time=1, off_time=1, fade_in_time=0, fade_out_time=0, n=None, background=True)
使所有 LED 重复开启和关闭。
| 参数 |
- on_time (
float)- 开启的秒数。默认为 1。
- off_time (
float)- 关闭的秒数。默认为 1。
- fade_in_time (
float)- 淡入的秒数。默认为 0。如果构造时 pwm 为 False,则必须为 0(否则将引发 ValueError)。
- fade_out_time (
float)- 淡出的秒数。默认为 0。如果构造时 pwm 为 False,则必须为 0(否则将引发 ValueError)。
- n (
int 或 None)- 闪烁的次数;None(默认值)表示永久闪烁。
- background (
bool)- 如果为 True(默认值),启动后台线程继续闪烁并立即返回。如果为 False,仅在闪烁完成后返回(警告:n 的默认值将导致此方法永不返回)。
|
pulse(fade_in_time=1, fade_out_time=1, n=None, background=True)
使所有 LED 呼吸闪烁(平滑淡入和淡出)。
| 参数 |
- fade_in_time (
float)- 淡入的秒数。默认为 1。
- fade_out_time (
float)- 淡出的秒数。默认为 1。
- n (
int 或 None)- 呼吸闪烁的次数;None(默认值)表示永久呼吸闪烁。
- background (
bool)- 如果为 True(默认值),启动后台线程继续呼吸闪烁并立即返回。如果为 False,仅在完成后返回(警告:n 的默认值将导致此方法永不返回)。
|
此方法要求构造时 pwm 为 True,否则将引发 ValueError。
LEDBarGraph
class gpiozero.LEDBarGraph(*pins, pwm=False, active_high=True, initial_value=0.0, pin_factory=None)
扩展 LEDCollection,控制一排 LED 表示柱状图。正值(0 到 1)从第一个到最后一个点亮 LED,负值(-1 到 0)从最后一个到第一个点亮 LED。
from gpiozero import LEDBarGraph
graph = LEDBarGraph(2, 3, 4, 5, 6, pwm=True)
graph.value = 0.5
| 参数 |
- *pins (
int 或 str)- 指定柱状图 LED 连接的 GPIO 引脚。有关有效的引脚编号,请参阅引脚编号。
- pwm (
bool)- 如果为 True,则为每个引脚构造 PWMLED 实例以实现平滑 过渡。如果为 False(默认值),则构造常规 LED 实例。
- active_high (
bool)- 如果为 True(默认值),on 方法将所有关联的引脚设置为 HIGH。如果为 False,on 方法将所有引脚设置为 LOW。
- initial_value (
float)- 柱状图的初始值。默认为 0.0(所有 LED 熄灭)。
- pin_factory (
Factory 或 None)- 请参阅 API - Pins 获取更多信息。
|
property value
LED 柱状图的值(-1 到 1)。0 表示所有 LED 熄灭,1 表示所有 LED 点亮,0 到 1 之间按比例从头到尾点亮,-1 到 0 之间按比例从尾到头点亮。
property source
用于更新 value 的值源。
property values
返回单独 LED 值的迭代器。
property lit_count
实际点亮的 LED 数量(可以是负数)。
LEDCharDisplay
class gpiozero.LEDCharDisplay(*pins, dp=None, pwm=False, active_high=True, initial_value=' ', pin_factory=None)
扩展 LEDCollection,显示单个字符的七段或十四段显示器。
property value
要显示的字符。
property font
用于字符显示的字体。
LEDMultiCharDisplay
class gpiozero.LEDMultiCharDisplay(char, *pins, pwm=False, active_high=True, initial_value=None, pin_factory=None)
扩展 CompositeOutputDevice,用于多字符多路复用 LED 字符显示器。
该类使用一个 LEDCharDisplay 实例(用于控制一个字符的 LED)和一组引脚(代表每个字符的公共阴极或阳极)构造而成。
from gpiozero import LEDCharDisplay, LEDMultiCharDisplay
c = LEDCharDisplay(4, 5, 6, 7, 8, 9, 10)
d = LEDMultiCharDisplay(c, 19, 20, 21, 22)
d.value = 'LEDS'
| 参数 |
- char (
LEDCharDisplay)- 能够控制显示器中一个字符 LED 的 LEDCharDisplay 实例。
- *pins (
int 或 str)- 代表每个字符的公共阴极(或阳极)的引脚。
- pwm (
bool)- 如果为 True,则为每个引脚构造 PWMLED 实例。如果为 False(默认值),则构造常规 LED 实例。
- active_high (
bool)- 如果为 True(默认值),则适用于控制晶体管的引脚。
- initial_value (
str 或 None)- 显示器的初始值。默认为指定字符显示器值的元组,乘以提供的引脚数。
- pin_factory (
Factory 或 None)- 请参阅 API - Pins 获取更多信息。
|
property value
要显示的字符序列。可以是字符串或字符元组(用于处理小数点)。
property plex_delay
多路复用延迟时间(秒),默认为 0.005 秒。
LEDCharFont
class gpiozero.LEDCharFont(font)
包含值到 LED 状态元组的映射。
此类实际上充当 LEDCharDisplay 的"字体",GPIO Zero 默认提供两种字体(用于 7 段和 14 段显示器)。您可以从 dict 构造自己的字体实例,该字典将值(通常是单字符字符串)映射到 LED 状态元组:
from gpiozero import LEDCharDisplay, LEDCharFont
my_font = LEDCharFont({
' ': (0, 0, 0, 0, 0, 0, 0),
'D': (1, 1, 1, 1, 1, 1, 0),
'A': (1, 1, 1, 0, 1, 1, 1),
'd': (0, 1, 1, 1, 1, 0, 1),
'a': (1, 1, 1, 1, 1, 0, 1),
})
display = LEDCharDisplay(26, 13, 12, 22, 17, 19, 6, dp=5, font=my_font)
display.value = 'D'