鹹魚ZTMR實例—按鍵用法

鹹魚ZTMR實例—按鍵用法

在pyboard上,有一個用戶按鍵。MicroPython已經預先定義好了按鍵的類,按鍵可以這樣使用:
定義按鍵

sw = pyb.Switch() 

讀取按鍵狀態

sw() 

定義按鍵回調函數

sw.callback(lambda:pyb.LED(1).toggle()) 

禁用按鍵回調函數

sw.callback(None) 

更復雜的使用回調函數(按鍵後翻轉LED3)點擊測試按鍵觀看效果

import pyb

sw = pyb.Switch() 
pyb.LED(3).on()

def f():
 pyb.LED(4).toggle()

sw.callback(f)

當然還可以直接當作GPIO使用:

import pyb from Pin

sw=Pin("X17", Pin.IN, Pin.PULL_UP)
sw()

板載中斷按鍵可以理解成外接按鍵,用法如下
使用方法
調用外中斷模塊

from pyb import ExtInt

定義中斷

from pyb import Pin, ExtInt

pyb.ExtInt(pin, mode, pull, callback)    #定義中斷 
'''
pin 
	中斷使用的GPIO,可以是pin對象或者已經定義GPIO的名稱  
mode 
	ExtInt.IRQ_RISING                上升沿 
	ExtInt.IRQ_FALLING               下降沿 
	ExtInt.IRQ_RISING_FALLING        上升下降沿 
pull 
	pyb.Pin.PULL_NONE                無 
	pyb.Pin.PULL_UP                  上拉電阻 
	pyb.Pin.PULL_DOWN                下拉電阻
callback
	回調函數 
'''

上升沿, 下降沿:上升沿等於是接通的瞬間給個瞬發信號,相當與通電信號。下降沿等於是斷開的瞬間給個瞬發信號,相當與斷電信號。
在這裏插入圖片描述
上升沿脈衝相當於你按開關,開關一接通的那一瞬間動作,之後就再也沒有輸入信號;下降沿脈衝則是一按了開關一鬆手,開關斷開的那一瞬間動作,其他時間都沒輸入信號。

上下拉電阻:上拉就是將不確定的信號通過一個電阻鉗位在高電平,電阻同時起限流作用。下拉同理,也是將不確定的信號通過一個電阻鉗位在低電平。
上拉是對器件輸入電流,下拉是輸出電流;強弱只是上拉電阻的阻值不同,沒有什麼嚴格區分;對於非集電極(或漏極)開路輸出型電路(如普通門電路)提供電流和電壓的能力是有限的,上拉電阻的功能主要是爲集電極開路輸出型電路輸出電流通道。

callback = lambda e: print("0")          #定義按鍵回調
函數 說明
extint.disable() 禁止中斷
extint.enable() 允許中斷
extint.line() 返回中斷映射的行號
extint.swint() 軟件觸發中斷
ExtInt.regs() 中斷寄存器值

案例1 按鈕在串口工具輸出定義字符

# main.py -- put your code here!


from pyb import Pin    #引入引腳
from pyb import ExtInt #引入中斷

callback = lambda e: print("xianyu")   #定義按鍵回調觸發輸出"xianyu"


sw2 = ExtInt(Pin('X18'), ExtInt.IRQ_FALLING, Pin.PULL_UP, callback) #點擊中斷按鍵返回xianyu

在這裏插入圖片描述
例程2 按鈕控制LED

# main.py -- put your code here!


from pyb import Pin    #引入引腳
from pyb import ExtInt,LED #引入中斷

#控制LED狀態  toggle()翻轉LED,狀態是開,變爲關;原來是關,變爲開。
callback = lambda e: LED(2).toggle()    


#點擊按鈕返回
sw2  = ExtInt(Pin('X18'), ExtInt.IRQ_FALLING, Pin.PULL_UP, callback) 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章