目录

  • 一、wiringPi库
  • 二、继电器
  • 1、继电器介绍及接线说明
  • 2、树莓派控制继电器


一、wiringPi库

IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程等。

在树莓派命令行输入gpio -v 可以查看是否安装wiringPi 库,会显示库的相关信息,有版本号就是安装好了。

python 通过继电器控制 python控制继电器模块_树莓派


在编译时需要链接上wiringPi库:

gcc demo.c -lwiringPi

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

gpio readall

树莓派3b的引脚图:

python 通过继电器控制 python控制继电器模块_物联网_02

二、继电器

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

控制电路。

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

继电器就相当于一个开关,接在任意线上,断开状态下线就断开了,没导通,闭合状态下线就接在了一起,导通了。

python 通过继电器控制 python控制继电器模块_物联网_03


产品介绍

1、常开接口限大负载:交流250V/10A,直流30V/10A

2、采用贴片光耦隔离,驱动能力强,性能稳定;触发电流5mA

3、模块工作电压有5v、12v、24v可供选择(请注意连接是否为所需电压)

4、模块可以通过跳线设置高电平或低电平触发

5、电源指示灯(绿色),继电器状态指示灯(红色)继电器接线图

python 通过继电器控制 python控制继电器模块_linux_04


接口说明

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");
                }
        }
}

结果:

python 通过继电器控制 python控制继电器模块_python 通过继电器控制_05


python 通过继电器控制 python控制继电器模块_c语言_06


四路继电器:

代码:

#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");
                }
        }
}

结果:

python 通过继电器控制 python控制继电器模块_c语言_07


python 通过继电器控制 python控制继电器模块_物联网_08


参考:

继电器介绍及接线说明

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