按键开关控制树莓派4B(GPIO)

获取树莓派引脚GPIO信号,利用获得的信号来执行一些控制操作。

关于使用按键开关控制树莓派上某GPIO引脚的信号,参考:树莓派 GPIO按钮开关 原理与实现 | 鱼儿的博客 (yuerblog.cc)

而关于树莓派GPIO的介绍,可以看:树莓派 GPIO 控制 - 树莓派使用指南 - 极客学院Wiki (jikexueyuan.com),里面介绍了不同IO操作库的安装使用方法。

这里我们选择wiringPi,因为它支持c++,库函数的介绍以及4B中引脚的定义参考:树莓派wiringPi库详解 - lulipro - 博客园 (cnblogs.com)

首先在树莓派4B上面安装wiringPi库,这里用的系统是它官方的系统raspbain,打开终端执行:

wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb

安装后执行

gpio -v
gpio readall

就可以查看树莓派引脚信息。 

然后编写gpioTest.cpp来测试一下:

#include<iostream>
#include<cstdlib>
#include<wiringPi.h>

const int pin=1; //定义GPIO(wirintPI编码的1号引脚)

int main()
{
    if(wiringPiSetup()==-1)
    {
        std::cout<<"setup error\n";
        exit(-1);
    }
    pinMode(pin,INPUT); //定义pin引脚的io模式为输入模式
    pullUpDnControl(pin,PUD_DOWN); //对INPUT的输入引脚设置下拉电阻模式
    while(1){
    if(digitalRead(pin))//当检测到pin引脚接收信号为高电平(开关连通,另一端连接3.3V电源)
        std::cout<<"open!"<<std::endl;
    else  //当检测到pin引脚接收信号为低电平(开关断开,接地)
        std::cout<<"close!"<<std::endl;
    delay(10); //延时10ms再检测
    }
    return 0;
}

在gpioTest.cpp所在目录下,打开终端执行命令: 

g++ -Wall -o gpioTest gpioTest.cpp  -lwiringPi

生成可执行文件gpioTest之后,再./gpioTest运行。

准备按键开关 ,两根杜邦线,按键开关一头通过杜邦线连接树莓派的17号物理引脚(board编码),另一头通过杜邦线连接连接树莓派的12号物理引脚(board编码),它对应wirintPI编码的1号引脚。开关按下时,./gpioTest输出open!,开关弹起时./gpioTest输出close!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值