栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

树莓派GPIO做稳定信号检测

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

树莓派GPIO做稳定信号检测

2021/11/28 10:58:26

树莓派GPIO做稳定信号检测

硬件材料

  1. raspberry 4b * 1
  2. 发光二极管 * 1
  3. 杜邦线 * n

实现目标

  1. 初始状态下二极管是熄灭的
  2. 信号收到高电平(3.3V),二极管发光,并保持住
  3. 信号收到低电平(0V),二极管熄灭,并保持住
  4. 高低电平信号受开关控制
树莓派引脚与接线


gpio-pinout-diagram

接线图

python程序
import RPi.GPIO as GPIO
import time

# 定义使用的引脚
GPIO_PIN_16 = 16
GPIO_PIN_26 = 26


def gpio_callback(channel):
    # 重点,触发状态后等待时间,保证不会发生数据抖动导致的误差
    time.sleep(0.005)
    if GPIO.input(channel) == GPIO.HIGH:
        print("高电压")
        GPIO.output(GPIO_PIN_26, GPIO.HIGH)
    elif GPIO.input(channel) == GPIO.LOW:
        print("低电压")
        GPIO.output(GPIO_PIN_26, GPIO.LOW)


if __name__ == '__main__':
    try:
        # 使用BCM编号
        GPIO.setmode(GPIO.BCM)
        # 忽略输入端的警告
        GPIO.setwarnings(False)
        # 初始化输入端,上拉电阻
        GPIO.setup(GPIO_PIN_16, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
        # 初始化输出端,设置低电平
        GPIO.setup(GPIO_PIN_26, GPIO.OUT, initial=GPIO.LOW)
        # 监听事件,并回调
        # GPIO.add_event_detect(GPIO_PIN_16, GPIO.RISING, callback=gpio_callback)
        # GPIO.add_event_detect(GPIO_PIN_16, GPIO.FALLING, callback=gpio_callback, bouncetime=2000)
        GPIO.add_event_detect(GPIO_PIN_16, GPIO.BOTH, callback=gpio_callback, bouncetime=50)
        while True:
            time.sleep(1)
    except KeyboardInterrupt:
        # 清理使用的gpio
        GPIO.cleanup()

效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605376.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号