和我一起玩树莓派3B+--读取按钮状态(十四)

一、基本原理

上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用。而下拉电阻的设定的原则和上拉电阻是一样的。
下拉电阻是直接接到地上,接二极管的时候电阻末端是低电平。

二、电路原理图

下拉电阻

三、代码实现

# -*- coding: utf-8 -*-

from RPi import GPIO
import time

# 采用BCM引脚编号
GPIO.setmode(GPIO.BCM)
# 关闭警告
GPIO.setwarnings(False)
# 输入引脚
channel = 12
# 设置GPIO输入模式, 使用GPIO内置的下拉电阻, 即开关断开情况下输入为LOW
GPIO.setup(channel, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)

# 检测LOW -> HIGH的变化
GPIO.add_event_detect(channel, GPIO.RISING, bouncetime = 200)

# 开关闭合的处理
def on_switch_pressed():
    print('open')

try:
    while True:
        # 如果检测到电平RISING, 说明开关闭合
        if GPIO.event_detected(channel):
            on_switch_pressed()
        # 可以在循环中做其他检测
        time.sleep(0.01)     # 10毫秒的检测间隔
except Exception as e:
    print(e)

# 清理占用的GPIO资源
GPIO.cleanup()


# 代码执行
pi@raspberrypi:~ $ python main.py
open

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容