Document
如何控制板子IO口的输入输出
IO 在计算机中指Input/Output,也就是输入和输出,简称 IO 口
各种 IO 接口都不尽相同,有些特殊的接口是要更大一些,而且一般来说,它附近也会印有标签方便用户理解,如这块板子的底部是按照 0/1/2/3V/GND 的顺序分布在金手指上(计算机中大多都是是从 0 开始计算的)
在这个 microbit 的模块中,将板子的接口定义为 pinN 对象,其中 N 代表接口的数值,所以 0 号接口也就叫做 pin0 对象,当然也可以通过 import machine 的 Pin 重新定义自己喜欢的引脚名称
“害羞”的板子
今天要实现的功能为,触摸板子的引脚并让它做出对应的反应
准备的代码如下:
from microbit import *
while True:
if pin1.is_touched():
display.show(Image.HAPPY)
else:
display.show(Image.SAD)
这个时候你需要一只手触摸在 1 号标签的引脚上,就可以能看到板子的图像变了,如果你松开了,它又会再次变化
-
程序解释起来如下
- 反复运行
pin1.is_touched()
来判断这个引脚是否有被触摸到(原理是 ADC 采样) - 运行后返回了 True, 此时显示它为笑脸,否则一直显示苦脸,所以你不触摸 1 号标签的引脚,它会一直显示苦脸
- 反复运行
运行效果如下图:
- 需要注意的是,因为我们人体(手)有静电,可能会影响到ADC采样
灯的 ON 或 OFF
- 元件(LED)正极接电源正极(+),元件(LED)负极接电源负极(-)
- 长端为LED正极,短端为LED负极
- 先普通的把灯点亮,也就是直接将其(LED)接到电源上,把LED的两条引脚分别直接接到板子的 3V 和 GND 。3V 指电源正极(3V),GND 指电源负级,也称接地
这样就点亮了一盏灯(注意正负极),但这样点亮的灯是不可以控制的,它只会亮,不能灭
本想拿另外一盏灯接上去做对比的,但我发现一个问题,其他的灯都太短了,所以就交换了以下,用我们的大灯来控制了,可以看到此时接上去灯是不会亮的。
- 接下来使用代码来控制它的亮和灭,可以看图中我使用了 pin2 的引脚来控制。
from microbit import *
pin2.write_digital(1)
- 可以看到它亮了起来,那就说明我们可以控制了它的亮,这是不是就和最开始入门教程的一致了?
- 那么我们这次就补充一个 Blink(闪烁)的效果吧,使用如下代码。
from microbit import *
while True:
pin2.write_digital(1)
sleep(200)
pin2.write_digital(0)
sleep(1000)
- 运行效果如下图:
-
程序解释一下
- 使用 pin2 引脚进行输出 1 , 这会让 LED 存在变成高电平,简单认为上就是这个引脚有电压了,效果相当于直接接了电源正极。(原理上应该理解为两个引脚之间形成电势差)
- 首先先将其点亮,即为
pin2.write_digital(1)
,之后使用sleep(200)
让板子休息 200 毫秒,。 - 然后就将其熄灭,也就是
pin2.write_digital(0)
,之后再休息 1000 毫秒,也就是 1 秒。 - 将上述过程重新来一遍。