Input/Output(输入/输出)
microbit的底部边缘有金属条,这些是输入与输出引脚(也称为I/O引脚)。
一些引脚比其他的大,可以用鳄齿夹夹住,这些引脚的标记分别是:0,1,2,3V和GND。
如果将microbit与拓展板拼接上,可以通过导线连接其他设备。
microbit的每个引脚都有编号,也是一个对象和button相似,所以如果要调用N引脚,则可以用PinN表示。
总共有19个引脚,编号为0-16和19-20。引脚17和18不可用。

例如,下面的程序将根据引脚0上的数字输入信号改变microbit上的显示:
from microbit import *
while True:
  if pin0.read_digital():
    display.show(Image.HAPPY)
  else:
    display.show(Image.SAD)
这些引脚可以作为microbit模块的属性来使用:microbit.pin0- microbit.pin20
| Pin | Type | Function | 
|---|---|---|
| 0 | Touch | Pad0 | 
| 1 | Touch | Pad1 | 
| 2 | Touch | Pad2 | 
| 3 | Analog | Column1 | 
| 4 | Analog | Column2 | 
| 5 | Digital | ButtonA | 
| 6 | Digital | Row2 | 
| 7 | Digital | Row1 | 
| 8 | Digital | |
| 9 | Digital | Row3 | 
| 10 | Analog | Column3 | 
| 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()方法。

以上您可以看到三种不同PWM信号的图表。这些都具有相同的周期,但它们具有不同的占空比(高电平占整个周期的比例)。
第一个由write_analog(511)生成,因为它的占空比为50%,高低电平各占一半,其结果和1.65V差不多。
第二个由write_analog(255)生成,占空比为25%。它的效果如同引脚上输出0.825V。
第三个由write_analog(767)生成,信号占空比为75%。它的电压是第二个信号的三倍,相当于在引脚上输出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)
将value作为PWM值输出。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。
引脚的模式会自动配置,当你调用read_analog/ read_digital/ is_touched时,会变为input模式。
在read_digital模式时,你可以通过set_pull来改变默认的拉模式,拉模式:NO_PULL, PULL_DOWN, PULL_UP。
注意:
microbit仅在引脚0,1和2上安装了外部弱上拉(10M),以便触摸感应工作。可以参阅边缘连接器数据表:
https://tech.microbit.org/hardware/edgeconnector/
检测引脚是否被触摸:
from microbit import *
while True:
    if pin0.is_touched():
        display.show(Image.HAPPY)
    else:
        display.show(Image.SAD)
当Pin0引脚与GND连接时,会显示一张笑脸,否则显示一张哭脸。