输入/输出引脚

引脚是您的电路板与连接到它的外部设备进行通信的方式。有 19 个引脚供您处理,编号为 0-16 和 19-20。引脚 17 和 18 不可用。

例如,下面的脚本将根据引脚 0 上的数字读数更改 micro:bit 上的显示:

from microbit import *


while True:
    if pin0.read_digital():
        display.show(Image.HAPPY)
    else:
        display.show(Image.SAD)

引脚功能

_images/pinout.png

这些引脚可用作microbit模块上的属性:microbit.pin0 - microbit.pin20

Pin 类型 功能
0 触碰 Pad 0
1 触碰 Pad 1
2 触碰 Pad 2
3 模拟 Column 1
4 模拟 Column 2
5 数字的 Button A
6 数字的 Column 9
7 数字的 Column 8
8 数字的  
9 数字的 Column 7
10 模拟
11 数字的 Button B
12 数字的  
13 数字的 SPI SCK
14 数字的 SPI MISO
15 数字的 SPI MOSI
16 数字的  
     
19 数字的 I2C SCL
20 数字的 I2C SDA

上表总结了可用的引脚、它们的类型(见下文)以及它们的内部连接。

脉冲宽度调制

电路板的引脚无法像音频放大器那样输出模拟信号——通过调制引脚上的电压。这些引脚只能启用完整的 3.3V 输出,或将其拉低至 0V。但是,仍然可以通过非常快速地打开和关闭该电压,并控制其开启和关闭的时间来控制 LED 的亮度或电动机的速度。这种技术称为脉宽调制 (PWM),write_analog下面的方法就是这样做的。

_images/pwm.png

上面您可以看到三种不同 PWM 信号的图表。它们都具有相同的周期(因此频率),但它们具有不同的占空比。

第一个将由 产生write_analog(511),因为它正好有 50% 的占空比 - 一半时间通电,一半时间断电。这样做的结果是该信号的总能量相同,好像是 1.65V 而不是 3.3V。

第二个信号具有 25% 的占空比,可以用 生成 write_analog(255)。它的效果类似于在该引脚上输出 0.825V。

第三个信号具有 75% 的占空比,可以用 生成 write_analog(767)。它的能量是第二个信号的三倍,相当于在第一个引脚上输出 2.475V。

请注意,这适用于自身具有巨大惯性的电机或 LED 等设备,它们的闪烁速度太快以至于人眼无法看到差异,但在产生声波时效果不佳。这块板子本身只能产生方波声音,听起来很像非常古老的电脑游戏——主要是因为那些游戏也只能这样做。

班级

共有三种引脚,可用的引脚不同。它们由下面列出的类表示。请注意,它们形成了一个层次结构,因此每个类都具有前一个类的所有功能,并在其中添加了自己的功能。

笔记

这些类实际上对用户不可用,您无法创建它们的新实例。您只能使用已经提供的实例,代表您板上的物理引脚。

class microbit.MicroBitDigitalPin
read_digital()

如果引脚为高,则返回 1,如果引脚为低,则返回 0。

write_digital(value)

如果value为 1,则将引脚设置为高电平,如果为 0,则将其设置为低电平。.

set_pull(value)

将拉动状态设置为三个可能值之一:pin.PULL_UP, pin.PULL_DOWNpin.NO_PULL(其中pin 是引脚的实例)。有关默认拉取状态的讨论,请参见下文。

get_pull()

返回一个销,它可以是三个可能值之一上拉配置:NO_PULL, PULL_DOWN, 或 PULL_UP。这些是使用set_pull()方法设置的,或者在引脚模式需要时自动配置。

get_mode()

返回引脚模式。当引脚用于特定功能时,例如写入数字值或读取模拟值,引脚模式会发生变化。引脚可以具有以下模式之一:MODE_UNUSED, MODE_WRITE_ANALOG, MODE_READ_DIGITAL, MODE_WRITE_DIGITAL, MODE_DISPLAY, MODE_BUTTON, MODE_MUSIC, MODE_AUDIO_PLAY, MODE_TOUCH, MODE_I2C, MODE_SPI

write_analog(value)

在引脚上输出 PWM 信号,占空比与提供的value. 该value可以是整数或0(0%占空比)之间的浮点数和1023(100%占空比)。

set_analog_period(period)

period毫秒为单位设置输出 PWM 信号的周期。最小有效值为 1ms。

set_analog_period_microseconds(period)

period微秒为单位设置输出 PWM 信号的周期。最小有效值为 256µs。

get_analog_period_microseconds()

以微秒为单位返回 PWM 信号的配置周期。

class microbit.MicroBitAnalogDigitalPin
read_analog()

读取施加到引脚的电压,并将其作为 0(表示 0V)和 1023(表示 3.3V)之间的整数返回。

class microbit.MicroBitTouchPin
is_touched()

返回 True如果引脚被用手指触摸,否则返回False

这个测试是通过测量引脚和地之间有多少电阻来完成的。低电阻给出读数True。要使用手指获得可靠读数,您可能需要用身体的另一部分(例如另一只手)接触接地引脚。

当引脚更改为输入模式时,会自动配置引脚的拉模式。输入模式是,当你调用read_analog / read_digital / is_touched。这些的默认拉模式分别为NO_PULL, PULL_DOWN, PULL_UP。调用set_pull会将引脚配置为read_digital 具有给定拉模式的模式。

笔记

micro:bit 的外部弱 (10M) 上拉仅安装在引脚 0、1 和 2 上,以便触摸感应工作。

引脚 5 和 11 上还装有外部 (10k) 上拉,以便按钮 A 和 B 工作。

有关详细信息,请参阅边缘连接器数据表

笔记

GPIO 引脚也用于显示。其中 6 个连接到 3、4、6、7、9 和 10 处的边缘连接器。如果您想将这些引脚用于其他目的,您可能需要 关闭显示器

有关详细信息,请参阅 边缘连接器数据表