【树莓派】了解wiringPi库、控制继电器

一、wiringPi库

  wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程等。

在树莓派命令行输入gpio -v 可以查看是否安装wiringPi 库,会显示库的相关信息,有版本号就是安装好了。
在这里插入图片描述
在编译时需要链接上wiringPi库:

gcc demo.c -lwiringPi

查看树莓派的引脚标号,输入命令即可查看:

gpio readall

树莓派3b的引脚图:
在这里插入图片描述

二、继电器

1、继电器介绍及接线说明

  继电器主要用于控制电路

  继电器是一种电控制器件,是当输入量的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器。继电器具有控制系统和被控制系统,通常应用于自动化的控制电路中,在电路中起着自动调节、安全保护、转换电路等作用。

  简单来说,继电器就相当于一个开关,接在任意线上,断开状态下线就断开了,没导通,闭合状态下线就接在了一起,导通了。
在这里插入图片描述
产品介绍
1、常开接口限大负载:交流250V/10A,直流30V/10A
2、采用贴片光耦隔离,驱动能力强,性能稳定;触发电流5mA
3、模块工作电压有5v、12v、24v可供选择(请注意连接是否为所需电压)
4、模块可以通过跳线设置高电平或低电平触发
5、电源指示灯(绿色),继电器状态指示灯(红色)

继电器接线图
在这里插入图片描述
接口说明
1、继电器输入部分:
a、VCC:接电源正极(电压按继电器要求,有5V、9V、12v和24v选择)
b、GND:接电源负极
c、IN:可以高或低电平控制继电器吸合

2、继电器输出端:
a、NO:继电器常开接口,继电器吸合前悬空,吸合后与COM短接
b、COM:继电器公用接口
c、NC:继电器常闭接口,继电器吸合前与COM短接,吸合后悬空

高低电平触发选择端(有些继电器模块没有):
1、跳线与LOW短接时为低电平触发
2、跳线与HIGH短接时为高电平触发

2、树莓派控制继电器

注意:
单路继电器电源只能接3.3v,接5v不能正常工作,四路继电器可接3.3v和5v。
单路继电器:
代码:

#include<wiringPi.h>
#include<stdio.h>
#define SWITCHER 0

int main()
{
        int cmd;

        if(wiringPiSetup() == -1){
                printf("硬件接口初始化失败\n");
                return -1;
        }

        pinMode(SWITCHER,OUTPUT);
        digitalWrite(0,HIGH);
        while(1){
                printf("请输入0/1:0-断开开关,1-导通开关\n");
                scanf("%d",&cmd);

                if(cmd == 1){
                        digitalWrite(SWITCHER,LOW);
                        printf("开\n");
                }else if(cmd == 0){
                        digitalWrite(SWITCHER,HIGH);
                        printf("关\n");
                }else{
                        printf("输入错误,请重行输入\n");
                }
        }
}

结果:
在这里插入图片描述
在这里插入图片描述
四路继电器:
代码:

#include<wiringPi.h>
#include<stdio.h>
#include<string.h>
#define SWITCHER1 21
#define SWITCHER2 22
#define SWITCHER3 23
#define SWITCHER4 24

int main()
{
        char cmd[12] = {'\0'};

        if(wiringPiSetup() == -1){
                printf("硬件接口初始化失败\n");
                return -1;
        }

        pinMode(SWITCHER1,OUTPUT);
        pinMode(SWITCHER2,OUTPUT);
        pinMode(SWITCHER3,OUTPUT);
        pinMode(SWITCHER4,OUTPUT);

        digitalWrite(SWITCHER1,HIGH);
        digitalWrite(SWITCHER2,HIGH);
        digitalWrite(SWITCHER3,HIGH);
        digitalWrite(SWITCHER4,HIGH);

        while(1){
                printf("请输入1on(off)/2on(off)/3on(off)/4on(off):\n[off-断开开关,on-导通开关]\n");
                memset(cmd,'\0',sizeof(cmd));
                scanf("%s",cmd);

                if(!strcmp(cmd,"1on")){
                        digitalWrite(SWITCHER1,LOW);
                        printf("1开\n");
                }else if(!strcmp(cmd,"1off")){
                        digitalWrite(SWITCHER1,HIGH);
                        printf("1关\n");
                }

                else if(!strcmp(cmd,"2on")){
                        digitalWrite(SWITCHER2,LOW);
                        printf("2开\n");
                }else if(!strcmp(cmd,"2off")){
                        digitalWrite(SWITCHER2,HIGH);
                        printf("2关\n");
                }

                else if(!strcmp(cmd,"3on")){
                        digitalWrite(SWITCHER3,LOW);
                        printf("3开\n");
                }else if(!strcmp(cmd,"3off")){
                        digitalWrite(SWITCHER3,HIGH);
                        printf("3关\n");
                }

                else if(!strcmp(cmd,"4on")){
                        digitalWrite(SWITCHER4,LOW);
                        printf("4开\n");
                }else if(!strcmp(cmd,"4off")){
                        digitalWrite(SWITCHER4,HIGH);
                        printf("4关\n");
                }

                else{
                        printf("输入错误,请重新输入\n");
                }
        }
}

结果:
在这里插入图片描述
在这里插入图片描述
参考:
继电器介绍及接线说明

最后谢谢阅读,笔者乃小白,如有错误之处还请指正。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Apibro

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

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

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

打赏作者

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

抵扣说明:

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

余额充值