Mircopython: 在BPIbit上控制IO口


Document

如何控制板子IO口的輸入輸出

IO 在計算機中指Input/Output,也就是輸入和輸出,簡稱 IO 口

  • 各種 IO 接口都不盡相同,有些特殊的接口是要更大一些,而且一般來說,它附近也會印有標簽方便用戶理解,如這塊板子的底部是按照 0/1/2/3V/GND 的順序分布在金手指上(計算機中大多都是是從 0 開始計算的)

  • 在這個 microbit 的模塊中,將板子的接口定義為 pinN 對象,其中 N 代表接口的數(shù)值,所以 0 號接口也就叫做 pin0 對象,當然也可以通過 import machine 的 Pin 重新定義自己喜歡的引腳名稱

“害羞”的板子

  • 今天要實現(xiàn)的功能為,觸摸板子的引腳并讓它做出對應的反應

  • 準備的代碼如下:

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 號標簽的引腳,它會一直顯示苦臉
  • 運行效果如下圖:

  • 需要注意的是,因為我們?nèi)梭w(手)有靜電,可能會影響到ADC采樣

燈的 ON 或 OFF

  • 元件(LED)正極接電源正極(+),元件(LED)負極接電源負極(-)
  • 長端為LED正極,短端為LED負極
  • 先普通的把燈點亮,也就是直接將其(LED)接到電源上,把LED的兩條引腳分別直接接到板子的 3V 和 GND 。3V 指電源正極(3V),GND 指電源負級,也稱接地
  • 這樣就點亮了一盞燈(注意正負極),但這樣點亮的燈是不可以控制的,它只會亮,不能滅

  • 本想拿另外一盞燈接上去做對比的,但我發(fā)現(xiàn)一個問題,其他的燈都太短了,所以就交換了以下,用我們的大燈來控制了,可以看到此時接上去燈是不會亮的。

  • 接下來使用代碼來控制它的亮和滅,可以看圖中我使用了 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. 將上述過程重新來一遍。
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容