• 正文
    • 一、前言
    • 二、硬件連接
    • 三、編寫代碼并運(yùn)行
  • 推薦器件
  • 相關(guān)推薦
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

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

2024/07/07
1659
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

一、前言

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

二、硬件連接

連接好按鍵和LED燈,不懂的同學(xué)可以先看下前兩節(jié)的內(nèi)容,硬件原理就不多做介紹了,樹莓派單片機(jī)有所區(qū)別,對(duì)于樹莓派編程來(lái)說,我們更多的是做上層的應(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庫(kù)
import time                            #導(dǎo)入time庫(kù)   

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é)束語(yǔ)

這一講結(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à)格 更多信息
ABM3-9.8304MHZ-D2Y-T 1 Abracon Corporation CRYSTAL 9.8304MHZ 18PF SMD
$0.2 查看
CY62167EV30LL-45ZXI 1 Cypress Semiconductor Standard SRAM, 1MX16, 45ns, CMOS, PDSO48, TSOP1-48
$69.33 查看
HFBR-2528Z 1 Broadcom Limited Receiver, 635nm Min, 662nm Max, 10Mbps, Through Hole Mount, ROHS COMPLIANT PACKAGE
$31.15 查看
樹莓派

樹莓派

Raspberry Pi Ltd致力于讓全世界的用戶和企業(yè)都能暢享計(jì)算的便利。Raspberry Pi產(chǎn)品成本低、品質(zhì)高、結(jié)構(gòu)緊湊、效率高,可用于很多地方:從家用計(jì)算到工廠控制、從復(fù)古游戲到嵌入式應(yīng)用,從教育到企業(yè)。自2012年出售第一款產(chǎn)品以來(lái),Raspberry Pi已成為英國(guó)備受歡迎的計(jì)算機(jī)公司。

Raspberry Pi Ltd致力于讓全世界的用戶和企業(yè)都能暢享計(jì)算的便利。Raspberry Pi產(chǎn)品成本低、品質(zhì)高、結(jié)構(gòu)緊湊、效率高,可用于很多地方:從家用計(jì)算到工廠控制、從復(fù)古游戲到嵌入式應(yīng)用,從教育到企業(yè)。自2012年出售第一款產(chǎn)品以來(lái),Raspberry Pi已成為英國(guó)備受歡迎的計(jì)算機(jī)公司。收起

查看更多

相關(guān)推薦