触摸开关/触摸传感器/轻触开关,是一种通过轻触就可以实现开关的电子器件,生活中随处可见,很多家用电器的操控界面都是触摸开关。
本文中的触摸开关,是在树莓派OS运行的情况下,用来触发某个动作(例如,触摸的时候控制摄像头拍照)。
『1』触摸开关模块介绍
淘宝上很容易买到,仅需2元,你没有看错,只要2元,就可以买到这样一个触摸开关模块。
该模块是一个基于触摸检测IC(TTP223B)的电容式点动型触摸开关模块。常态下,模块输出低电平,模式为低功耗模式;当用手指触摸相应位置时,模块会输出高电平,模式切换为快速模式;当持续12秒没有触摸时,模式又切换为低功耗模式。
它的外观:
电路板上的圆圈处就是触摸位置。
『2』电路接线
这个触摸开关模块只有3个接口:
SIG:信号输出,高电平表示正在触摸,低电平表示没有触摸
VCC:接电源正
GND:接地
因此,我们可以把SIG接到树莓派的任意一个GPIO口上(在这里,我使用的是GPIO 8),并且用程序把该GPIO口设置为INPUT(输入)模式,再把VCC和GND分别接到树莓派的5V输出口以及GND口上。
文章来源:http://www.codelast.com/
下面是面包板电路图:
文章来源:http://www.codelast.com/
下面是电路原理图:
文章来源:http://www.codelast.com/
『3』软件控制
这个就更简单了。我们直接使用WiringPi自带的gpio程序来周期性读取SIG所接的树莓派GPIO口的状态,读到1的时候就是有人触摸了开关,读到0就是没有人触摸,然后在发现有人触摸的时候,去调用其他程序(例如控制摄像头拍照)即可。
下面是程序,用shell脚本就可以实现了,超简单:
#!/bin/bash
# A touch-switch control program.
# the Raspberry Pi GPIO input pin number, namely the pin connected to the signal output pin of the toch-switch module
GPIO_PORT=8
# set the specified GPIO port to INPUT mode
gpio mode $GPIO_PORT in
while true
do
SWITCH_STATUS=`gpio read $GPIO_PORT`
if [ $SWITCH_STATUS -eq 1 ]; then
echo "Pressed @ `date +\"%F %T\"`"
fi
sleep 0.01
done
程序也可以在我的GitHub上找到。
那么,这么简单的一个小东西,有什么用呢?我们可以把我们经常需要树莓派做(但又没有固定周期)的一些任务,用这个触摸开关来控制,例如可以在摸它一下的时候,调用pacman -Syu来升级Arch Linux ARM。还可以怎么玩,全凭你的想像力了。
文章来源:https://www.codelast.com/
➤➤ 版权声明 ➤➤
转载需注明出处:codelast.com
感谢关注我的微信公众号(微信扫一扫):