树莓派控制4路5v继电器开关

准备材料

  1. 4路5v继电器

在这里插入图片描述

  1. 杜邦线
    在这里插入图片描述
    这里正常来说是公对母的杜邦线。我直接接的线。

  2. 树莓派3b

  3. 树莓派的电源线

附上继电器的对接规格
在这里插入图片描述

wiringPi库

安装wiringPi库

wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程等等。
进入 wiringPi的github https://git.drogon.net/?p=wiringPi;a=summary 下载安装包。点击页面的第一个链接的右边的snapshot,下载安装压缩包。

然后进入安装包所在的目录执行以下命令:

tar xfz wiringPi-98bcb20.tar.gz //98bcb20为版本标号,可能不同
cd wiringPi-98bcb20
./build

验证wiringPi的是否安装成功,输入gpio -v,会在终端中输出相关wiringPi的信息。否则安装失败。

在这里插入图片描述

查看引脚编号表格

使用如下控制台下命令

gpio readall

注意:查看时,将树莓派的USB接口面对自己,这样看才是正确的。

在这里插入图片描述

wiringPi API

插一句:

编写demo是需要写 #include<wiringPi.h>头文件,同样的运行的时候,也要指定-lwiringPi

硬件初始化函数wiringPiSetup

int wiringPiSetup (void)

返回:执行状态,-1表示失败

当使用这个函数初始化树莓派引脚时,程序使用的是wiringPi 引脚编号表。引脚的编号为 0~16
需要root权限

GPIO控制函数pinMode

void pinMode (int pin, int mode)

pin:配置的引脚
mode:指定引脚的IO模式

可取的值:INPUT、OUTPUT、PWM_OUTPUT,GPIO_CLOCK
作用:配置引脚的IO模式

注意:
只有wiringPi 引脚编号下的1脚(BCM下的18脚) 支持PWM输出

只有wiringPi编号下的7(BCM下的4号)支持GPIO_CLOCK输出

GPIO控制函数digitalWrite

void digitalWrite (int pin, int value)

pin:控制的引脚
value:引脚输出的电平值。

可取的值:HIGH,LOW分别代表高低电平

让对一个已近配置为输出模式的 引脚 输出指定的电平信号

demo示例

#include <stdio.h>
#include <wiringPi.h>
#include <stdlib.h>
#include <string.h>
/*树莓派控制继电器高低电平亮灯*/

#define SWITCH1 26
#define SWITCH2 27
#define SWITCH3 28
#define SWITCH4 29
int main(){

        char cmd[12] = {"\0"};
        if(wiringPiSetup() == -1){
                printf("wiringPi初始化失败\n");
                exit(-1);
        }
        pinMode(SWITCH1,OUTPUT);
        pinMode(SWITCH2,OUTPUT);
        pinMode(SWITCH3,OUTPUT);
        pinMode(SWITCH4,OUTPUT);
        digitalWrite(SWITCH1,HIGH);
        digitalWrite(SWITCH2,HIGH);
        digitalWrite(SWITCH3,HIGH);
        digitalWrite(SWITCH4,HIGH);
        while(1){
                printf("请输入1/2/3/4 on or off\n");
                memset(cmd,0,sizeof(cmd));
                gets(cmd);
                if(strcmp(cmd,"1 off") == 0){
                        digitalWrite(SWITCH1,HIGH);
                }else if(strcmp(cmd,"1 on") == 0){
                        digitalWrite(SWITCH1,LOW);
                }
                if(strcmp(cmd,"2 off") == 0){
                        digitalWrite(SWITCH2,HIGH);
                }else if(strcmp(cmd,"2 on") == 0){
                        digitalWrite(SWITCH2,LOW);
                }
                if(strcmp(cmd,"3 off") == 0){
                        digitalWrite(SWITCH3,HIGH);
                }else if(strcmp(cmd,"3 on") == 0){
                        digitalWrite(SWITCH3,LOW);
                }
                if(strcmp(cmd,"4 off") == 0){
                        digitalWrite(SWITCH4,HIGH);
                }else if(strcmp(cmd,"4 on") == 0){
                        digitalWrite(SWITCH4,LOW);
                }
                if(strcmp(cmd,"all off") == 0){
                        digitalWrite(SWITCH1,HIGH);
                        digitalWrite(SWITCH2,HIGH);
                        digitalWrite(SWITCH3,HIGH);
                        digitalWrite(SWITCH4,HIGH);
                }else if(strcmp(cmd,"all on") == 0){
                        digitalWrite(SWITCH1,LOW);
                        digitalWrite(SWITCH2,LOW);
                        digitalWrite(SWITCH3,LOW);
                        digitalWrite(SWITCH4,LOW);
                }
        }
        return 0;
}

执行

gcc demo2.c -lwiringPi

基本实现就是这样,用法和输入比较土。

实现效果图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

石子君

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值