美文网首页
Mircopython: 在BPIbit上控制IO口

Mircopython: 在BPIbit上控制IO口

作者: Janzz | 来源:发表于2019-03-29 21:44 被阅读0次

    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口

          本文链接:https://www.haomeiwen.com/subject/axlxbqtx.html