加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 一、前言
    • 二、硬件連接
    • 三、編寫代碼并運(yùn)行
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

樹莓派從零開始快速入門第7講——外部中斷

07/07 15:25
1673
閱讀需 4 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

一、前言

前面兩節(jié)介紹了LED燈和按鍵輸入,那么這一講就基于按鍵學(xué)習(xí)一下外部中斷,目標(biāo)是通過按鍵控制LED開燈和關(guān)燈。

二、硬件連接

連接好按鍵和LED燈,不懂的同學(xué)可以先看下前兩節(jié)的內(nèi)容,硬件原理就不多做介紹了,樹莓派單片機(jī)有所區(qū)別,對(duì)于樹莓派編程來說,我們更多的是做上層的應(yīng)用,下層驅(qū)動(dòng)的實(shí)現(xiàn)不會(huì)花太多的時(shí)間去研究。

三、編寫代碼并運(yùn)行

示例代碼如下:

#!/usr/bin/python                             
#-*- coding:utf-8 -*-               
import RPi.GPIO as GPIO                #導(dǎo)入RPi.GPIO庫
import time                            #導(dǎo)入time庫   

LED = 26                               #LED引腳號(hào)
KEY = 20                               #按鍵引腳號(hào)

GPIO.setwarnings(False)                #不加這句會(huì)有警告,因?yàn)樵撘_已經(jīng)被設(shè)置成了非默認(rèn)值(也可以不加,不影響正常使用)
GPIO.setmode(GPIO.BCM)                 #使用BCM編碼的引腳號(hào)
GPIO.setup(LED,GPIO.OUT)               #配置LED引腳模式
GPIO.setup(KEY,GPIO.IN,GPIO.PUD_UP)    #設(shè)置KEY引腳模式

global led_status                      #記錄LED電平狀態(tài)(全局變量)
led_status = 0                         

def KEYInterrupt(KEY):                 #外部中斷服務(wù)函數(shù)
    global led_status
    if led_status :
        GPIO.output(LED,GPIO.LOW)      #關(guān)燈
        print("LED OFF")
        led_status = 0  
    else :
        GPIO.output(LED,GPIO.HIGH)     #開燈
        print("LED ON")
        led_status = 1 

GPIO.add_event_detect(KEY,GPIO.FALLING,KEYInterrupt,200) #KEY:按鍵引腳號(hào),GPIO.FALLING:下降沿模式,KEYInterrupt:中斷服務(wù)函數(shù),200:消抖時(shí)間(ms)

while True:
    time.sleep(1)

運(yùn)行結(jié)果:

按鍵按下,LED點(diǎn)亮,打印“LED ON”。再按一次,LED熄滅,打印“LED OFF”。

在這里插入圖片描述

四、結(jié)束語

這一講結(jié)合了LED和KEY介紹了樹莓派外部中斷的使用,功能比較簡(jiǎn)單,但是很實(shí)用。好了,這一講的內(nèi)容就這么多了,想了解更多樹莓派的知識(shí)可以關(guān)注我,后續(xù)我會(huì)繼續(xù)更新更多的教程。

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
LTC6991HS6#TRPBF 1 Linear Technology LTC6991 - TimerBlox: Resettable, Low Frequency Oscillator; Package: SOT; Pins: 6; Temperature Range: -40°C to 125°C
$15.23 查看
AD9361BBCZ 1 Analog Devices Inc RF Agile Transceiver

ECAD模型

下載ECAD模型
$269.47 查看
NC7S14M5X 1 onsemi TinyLogic HS Inverter with Schmitt Trigger Input, 3000-REEL

ECAD模型

下載ECAD模型
$0.28 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜