Mircopython: 在BPIbit上控制IO口


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 号标签的引脚上,就可以能看到板子的图像变了,如果你松开了,它又会再次变化

  • 程序解释起来如下

    1. 反复运行 pin1.is_touched() 来判断这个引脚是否有被触摸到(原理是 ADC 采样)
    2. 运行后返回了 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)
  • 运行效果如下图:
  • 程序解释一下

    1. 使用 pin2 引脚进行输出 1 , 这会让 LED 存在变成高电平,简单认为上就是这个引脚有电压了,效果相当于直接接了电源正极。(原理上应该理解为两个引脚之间形成电势差)
    2. 首先先将其点亮,即为 pin2.write_digital(1),之后使用 sleep(200) 让板子休息 200 毫秒,。
    3. 然后就将其熄灭,也就是 pin2.write_digital(0),之后再休息 1000 毫秒,也就是 1 秒。
    4. 将上述过程重新来一遍。

你可能感兴趣的:(Mircopython: 在BPIbit上控制IO口)