输入/输出引脚
引脚是 micro:bit 与外部设备通信的接口。共有 19 个可用引脚,编号 0–16 及 19–20;引脚 17 和 18 不可用。此外还有 pin_logo 与 pin_speaker 可供使用。
例如,以下脚本会根据引脚 0 的数字读数改变 micro:bit 显示:
from bibo import *
while True:
if pin0.read_digital():
display.show(Image.HAPPY)
else:
display.show(Image.SAD)
引脚功能

更多硬件说明见 无线电与引脚。
下表汇总可用引脚、类型及内部连接。引脚可通过 bibo 模块的属性访问:bibo.pin0 至 bibo.pin20。
| 引脚 | 类型 | 功能 |
|---|---|---|
| 0 | 触摸 | Pad 0 |
| 1 | 触摸 | Pad 1 |
| 2 | 触摸 | Pad 2 |
| 3 | 模拟 | Column 3 |
| 4 | 模拟 | Column 1 |
| 5 | 数字 | Button A |
| 6 | 数字 | Column 4 |
| 7 | 数字 | Column 2 |
| 8 | 数字 | — |
| 9 | 数字 | — |
| 10 | 模拟 | Column 5 |
| 11 | 数字 | Button B |
| 12 | 数字 | — |
| 13 | 数字 | SPI SCK |
| 14 | 数字 | SPI MISO |
| 15 | 数字 | SPI MOSI |
| 16 | 数字 | — |
| 19 | 数字 | I2C SCL |
| 20 | 数字 | I2C SDA |
micro:bit 还有两个无法通过边缘连接器访问、但可在 BiBoPython 中使用的引脚:
pin_logo— 主板正面的触摸感应 Logo 引脚,默认设为电容触摸模式。pin_speaker— 用于控制 micro:bit 扬声器的引脚。此 API 仅用于脉宽调制(PWM)操作,例如pin_speaker.write_analog(128)。
脉宽调制(PWM)
板载引脚无法像音频放大器那样通过调制电压输出模拟信号——引脚只能输出完整 3.3 V 或拉低至 0 V。但仍可通过快速开关并控制通断时间比例来调节 LED 亮度或电机转速,这种技术称为脉宽调制(PWM),即下文 write_analog 方法的作用。
三种不同 PWM 信号示意图如下。周期(因而频率)相同,但占空比不同。

第一个信号由 write_analog(511) 产生,占空比恰好 50%——通电与断电时间各半,总能量相当于 1.65 V 而非 3.3 V。
第二个信号占空比 25%,可由 write_analog(255) 产生,效果类似输出 0.825 V。
第三个信号占空比 75%,可由 write_analog(767) 产生,能量为第二个的三倍,相当于引脚输出 2.475 V。
注意:这对电机(惯性大)或 LED(闪烁过快人眼无法分辨)效果良好,但不适合生成声波。本板只能产生方波声音,听起来很像早期电脑游戏——因为那些游戏也只能做到如此。
类
引脚分为三类,功能逐级扩展。它们形成继承层次,每一类包含前一类全部功能并新增自身方法。
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()
返回引脚模式。引脚用于特定功能(如写数字值、读模拟值)时模式会改变。可能模式包括:"unused"、"analog"、"read_digital"、"write_digital"、"display"、"button"、"music"、"audio"、"touch"、"i2c"、"spi"。
write_analog(value)
在引脚上输出 PWM 信号,占空比与 value 成正比。value 可为 0(0% 占空比)到 1023(100% 占空比)的整数或浮点数。
set_analog_period(period)
将输出 PWM 信号的周期设为 period 毫秒。最小有效值为 1 ms。
set_analog_period_microseconds(period)
将输出 PWM 信号的周期设为 period 微秒。最小有效值为 256 µs。
get_analog_period_microseconds()
返回已配置的 PWM 信号周期(微秒)。
MicroBitAnalogDigitalPin
read_analog()
读取引脚电压,返回 0(0 V)到 1023(3.3 V)之间的整数。
MicroBitTouchPin
is_touched()
若引脚被手指触摸返回 True,否则返回 False。
电阻式触摸
通过测量引脚与地之间的电阻实现。低电阻读数为 True。用手指可靠检测时,可能需要用身体另一部分(例如另一只手)触摸 GND 引脚。
电容式触摸
通过手指作为导体与电容电场交互实现。电容式触摸不需要作为电路一部分接地。
set_touch_mode(value)
设置给定引脚的触摸模式。value 可为 CAPACITIVE 或 RESISTIVE。例如 pin0.set_touch_mode(pin0.CAPACITIVE)。
引脚切换为输入模式时会自动配置上拉模式。输入模式包括调用 read_analog / read_digital / is_touched。默认上拉分别为 NO_PULL、PULL_DOWN、PULL_UP。调用 set_pull 会将引脚配置为 read_digital 模式并应用给定上拉。