输入/输出引脚

引脚是主板与外部设备进行通信的方式。共有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 Type Function
0 Touch Pad 0
1 Touch Pad 1
2 Touch Pad 2
3 Analog Column 1
4 Analog Column 2
5 Digital Button A
6 Digital Row 2
7 Digital Row 1
8 Digital  
9 Digital Row 3
10 Analog Column 3
11 Digital Button B
12 Digital  
13 Digital SPI MOSI
14 Digital SPI MISO
15 Digital SPI SCK
16 Digital  
     
19 Digital I2C SCL
20 Digital 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设置为低。

class microbit.MicroBitAnalogDigitalPin
read_analog()

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

write_analog(value)

在引脚上输出一个PWM信号,其占空比与所提供的 value 成比例。 value 可以是一个整数,也可以是一个 介于0(0%占空比)和1023(100%占空比)之间的浮点数。

set_analog_period(period)

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

set_analog_period_microseconds(period)

将输出的PWM信号的周期设置为 period 微秒。最小有效值是256μs。

class microbit.MicroBitTouchPin
is_touched()

如果引脚被一根手指触碰返回 True ,否则返回 False

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

当引脚切换为输入模式时,引脚的拉模式会自动配置。当调用 read_analog / read_digital / is_touched 时为输入模式。拉模式分别是 NO_PULL , PULL_DOWN, PULL_UP。只有在 read_digital 模式下你才能调用 set_pull 从默认值改变拉模式。

注解

另请注意,micro:bit仅在引脚0,1和2上安装了外部弱电(10M)上拉,以便触摸感应起作用。请看这里的边缘连接器数据表: http://tech.microbit.org/hardware/edgeconnector_ds/