加入星計劃,您可以享受以下權益:

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

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

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

一、前言

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

二、硬件連接

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

三、編寫代碼并運行

示例代碼如下:

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

LED = 26                               #LED引腳
KEY = 20                               #按鍵引腳號

GPIO.setwarnings(False)                #不加這句會有警告,因為該引腳已經被設置成了非默認值(也可以不加,不影響正常使用)
GPIO.setmode(GPIO.BCM)                 #使用BCM編碼的引腳號
GPIO.setup(LED,GPIO.OUT)               #配置LED引腳模式
GPIO.setup(KEY,GPIO.IN,GPIO.PUD_UP)    #設置KEY引腳模式

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

def KEYInterrupt(KEY):                 #外部中斷服務函數
    global led_status
    if led_status :
        GPIO.output(LED,GPIO.LOW)      #關燈
        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:按鍵引腳號,GPIO.FALLING:下降沿模式,KEYInterrupt:中斷服務函數,200:消抖時間(ms)

while True:
    time.sleep(1)

運行結果:

按鍵按下,LED點亮,打印“LED ON”。再按一次,LED熄滅,打印“LED OFF”。

在這里插入圖片描述

四、結束語

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

推薦器件

更多器件
器件型號 數量 器件廠商 器件描述 數據手冊 ECAD模型 風險等級 參考價格 更多信息
AD73311ARSZ 1 Analog Devices Inc Single-Channel, 3 V and 5 V Front-End Processor for General Purpose Applications Including Speech and Telephony

ECAD模型

下載ECAD模型
$10.72 查看
S25FL512SAGBHIA13 1 Spansion Flash, 128MX4, PBGA24, FBGA-24
$59.58 查看
ASEM1-24.000MHZ-LC-T 1 Abracon Corporation MEMS OSC XO 24.0000MHZ CMOS SMD
$2.01 查看

相關推薦

電子產業(yè)圖譜