#函数:wait_for_edge(channel, status)
#参数说明:
参数 | 说明 | 可选项 |
channel | 传感器引脚 | |
status | 要检测的状态 | GPIO.RISING, GPIO.FALLING, GPIO.BOTH |
其中GPIO.RISING表示电压由低变高;GPIO.FALLING表示电压由高变低;GPIO.BOTH表示两者都检测。
#实验案例参考:http://www.shumeijiang.com/2020/03/15/gpio之边沿检测/
#实验代码:
执行代码可见效果:
1、代码执行可见屏幕输出“准备开始接收”,然后主线程进入阻塞状态,由于没有其他线程所以进程进入阻塞状态;
2、当用手指放置在传感器触摸板上,并持续放置时,可见屏幕输出“发现低电压变化高电压”,即检测到触摸动作;
3、当手指从传感器触摸板离开时,可见屏幕输出“发现高电压变化低电压”,即传感器感知到触摸结束。
#结论
- 函数是阻塞形式;
- 函数不需while循环检测,检测到即可触发进程继续进行;
- 函数可检测电压由低变高,可检测电压由高变低,也可检测发现变压变化即触发。
!/usr/bin/env python
coding:utf-8
'''
from JiuJiang
树莓酱的操作实例
http:://www.shumeijiang.com
'''
import RPi.GPIO as GPIO ##引入GPIO模块
import time ##引入time库
touchPin = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(touchPin, GPIO.IN)
print '准备开始接收'
GPIO.wait_for_edge(touchPin, GPIO.RISING)
print '发现低电压变化高电压'
GPIO.wait_for_edge(touchPin, GPIO.FALLING)
print '发现高电压变化低电压'
#官方函数定义见如下截图: