输入/输出引脚¶
引脚是您的电路板与连接到它的外部设备进行通信的方式。有 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)
引脚功能 ¶
这些引脚可用作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
下面的方法就是这样做的。
上面您可以看到三种不同 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_DOWN
或pin.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 工作。
有关详细信息,请参阅边缘连接器数据表。