一宰译、基本原理
上拉就是將不確定的信號(hào)通過(guò)一個(gè)電阻嵌位在高電平不皆,電阻同時(shí)起限流作用。而下拉電阻的設(shè)定的原則和上拉電阻是一樣的加缘。
下拉電阻是直接接到地上鸭叙,接二極管的時(shí)候電阻末端是低電平。
二拣宏、電路原理圖
三沈贝、代碼實(shí)現(xiàn)
# -*- coding: utf-8 -*-
from RPi import GPIO
import time
# 采用BCM引腳編號(hào)
GPIO.setmode(GPIO.BCM)
# 關(guān)閉警告
GPIO.setwarnings(False)
# 輸入引腳
channel = 12
# 設(shè)置GPIO輸入模式, 使用GPIO內(nèi)置的下拉電阻, 即開(kāi)關(guān)斷開(kāi)情況下輸入為L(zhǎng)OW
GPIO.setup(channel, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
# 檢測(cè)LOW -> HIGH的變化
GPIO.add_event_detect(channel, GPIO.RISING, bouncetime = 200)
# 開(kāi)關(guān)閉合的處理
def on_switch_pressed():
print('open')
try:
while True:
# 如果檢測(cè)到電平RISING, 說(shuō)明開(kāi)關(guān)閉合
if GPIO.event_detected(channel):
on_switch_pressed()
# 可以在循環(huán)中做其他檢測(cè)
time.sleep(0.01) # 10毫秒的檢測(cè)間隔
except Exception as e:
print(e)
# 清理占用的GPIO資源
GPIO.cleanup()
# 代碼執(zhí)行
pi@raspberrypi:~ $ python main.py
open