树莓派编程控制继电器及继电器组
创始人
2025-06-01 02:28:06

目录

一,继电器说明

● 继电器接口说明 

① 继电器输入端:

② 继电器输出端:

二,树莓派控制继电器

三,树莓派控制继电器组


一,继电器说明

通俗点讲,可以把继电器理解成是一些功能设备的控制开关。

● LOW:给到低电平时,电路接通;

● HIGH:给到高电平时,电路断开;

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

继电器继电器组

● 继电器接口说明 

① 继电器输入端:

● VCC:接电源正极(电压按继电器要求,有5V、9V、12v和24v选择);
● GND:接电源负极,开发板上有GND或0V表示;
● IN:GPIO口,可以高电平或低电平控制继电器吸合(开关);

② 继电器输出端:

● NO:继电器常开接口,继电器吸合前悬空,吸合后与COM短接;
● COM:继电器公用接口;
● NC:继电器常闭接口,继电器吸合前与COM短接,吸合后悬空;

二,树莓派控制继电器

(单个继电器)接好电源线和自己设置的控制引脚:

● 继电器vcc——树莓3.3v或5v;

● 继电器Gnd——树莓0v或Gnd;

● 继电器In——树莓GPIO.7(自己设置);

#include 
#include 
#include #define PIN 7  //#define宏定义控制引脚为GPIO.7int main()
{int cmd;if(wiringPiSetup() == -1){  //初始化wiringPi库printf("init error\n");return -1;}pinMode(PIN,OUTPUT); //设置为输出io口digitalWrite(PIN,HIGH);//默认断电状态while(1){printf("please input 0 or 1:0-close,1-open\n");//输入0或1,0关闭,1打开scanf("%d",&cmd);if(cmd == 1){digitalWrite(PIN,LOW);//输入的是1,就给低电平,供电     }else if(cmd == 0){digitalWrite(PIN,HIGH);//输入的是0,就给高电平,断电 }else{printf("OUTPUT error\n");//如果输入的不是1或0digitalWrite(PIN,HIGH);//就自动断电exit(-1);            //并退出}}return 0;
}

编译时需要链接wiringPi库 

pi@raspberrypi:~/wiringPi $ gcc demo2.c -lwiringPi //编译要链接wiringPi库
pi@raspberrypi:~/wiringPi $ ./a.out
please input 0 or 1:0-close,1-open
1  //输入1,低电平通电,灯亮
please input 0 or 1:0-close,1-open
0  //输入0,高电平断电,灯灭
please input 0 or 1:0-close,1-open
1
please input 0 or 1:0-close,1-open
3  //输入其它指令,灯灭并退出程序
OUTPUT error
pi@raspberrypi:~/wiringPi $ 

三,树莓派控制继电器组

控制继电器组其实和控制单个继电器操作一样,只是继电器组要多设置一些控制的io口而已!

● 本次测试用的继电器组是4个继电器为组;

● 针脚有gnd vcc in1 in2 in3 in4共6个。其中in1 in2 in3 in4分别控制继电器的4个灯;

● 接线方式同上,首先电源正负级接通开发板,in1 in2 in3 in4分别接入树莓的GPIO口;

#include 
#include 
#include 
#include #define PIN1 29  //#define宏定义控制引脚为29
#define PIN2 28  //#define宏定义控制引脚为28
#define PIN3 27  //#define宏定义控制引脚为27
#define PIN4 26  //#define宏定义控制引脚为26int main()
{char cmd[12] = {'\0'};if(wiringPiSetup() == -1){  //初始化wiringPi库printf("init error\n");return -1;}pinMode(PIN1,OUTPUT);//配置引脚为输出引脚pinMode(PIN2,OUTPUT);pinMode(PIN3,OUTPUT);pinMode(PIN4,OUTPUT);digitalWrite(PIN1,HIGH);//4个控制口默认断电状态digitalWrite(PIN2,HIGH);digitalWrite(PIN3,HIGH);digitalWrite(PIN4,HIGH);while(1){printf("please input 1/2/3/4 off/on:off-close,on-open\n");memset(cmd,'\0',sizeof(cmd));gets(cmd);if(strcmp(cmd,"1 on") == 0){digitalWrite(PIN1,LOW);//输入1 on,给低电平,供电  }else if(strcmp(cmd,"1 off") == 0){digitalWrite(PIN1,HIGH);//输入0 off,给高电平,断电 }if(strcmp(cmd,"2 on") == 0){digitalWrite(PIN2,LOW);//输入2 on,给低电平,供电  }else if(strcmp(cmd,"2 off") == 0){digitalWrite(PIN2,HIGH);//输入2 off,给高电平,断电 }if(strcmp(cmd,"3 on") == 0){digitalWrite(PIN3,LOW);//输入3 on,给低电平,供电  }else if(strcmp(cmd,"3 off") == 0){digitalWrite(PIN3,HIGH);//输入3 off,给高电平,断电 }if(strcmp(cmd,"4 on") == 0){digitalWrite(PIN4,LOW);//输入4 on,给低电平,供电  }else if(strcmp(cmd,"4 off") == 0){digitalWrite(PIN4,HIGH);//输入4 off,给高电平,断电 }if(strcmp(cmd,"all on") == 0){digitalWrite(PIN1,LOW);//输入all on,给低电平,4个灯全部供电  digitalWrite(PIN2,LOW); digitalWrite(PIN3,LOW); digitalWrite(PIN4,LOW);}else if(strcmp(cmd,"all off") == 0){digitalWrite(PIN1,HIGH);//输入all off,给高电平,全部断电 digitalWrite(PIN2,HIGH);digitalWrite(PIN3,HIGH);digitalWrite(PIN4,HIGH); }else{printf("OUTPUT error!\n");//输入其它 提示错误}}return 0;
}
pi@raspberrypi:~/wiringPi $ ./a.out
please input 1/2/3/4 off/on:off-close,on-open
1 on  //一号灯亮
INPUT error!
please input 1/2/3/4 off/on:off-close,on-open
1 off //一号灯灭  其他三颗灯一样的
INPUT error!
please input 1/2/3/4 off/on:off-close,on-open
all on //全部灯打开
please input 1/2/3/4 off/on:off-close,on-open
all off //全部灯关闭

相关内容

热门资讯

玩家必看“浙江游戏大厅开挂脚本... 您好:【浙江游戏大厅】这款游戏可以开挂,确实是有挂的,需要了解加客服微信【63550187】很多玩家...
[第一财经]“新贝壳互娱有没有... 您好:新贝壳互娱这款游戏可以开挂,确实是有挂的,需要软件加微信【3671900】很多玩家在这款游戏中...
玩家实测“乐友汇可以开挂吗”(... 您好:乐友汇这款游戏可以开挂,确实是有挂的,需要软件加微信【6380798】,很多玩家在乐酷副厅这款...
玩家实测“诸暨游戏到底有没有挂... 您好:诸暨游戏这款游戏可以开挂,确实是有挂的,需要了解加客服微信【6670747】很多玩家在这款游戏...
今日重大通报“哈局十三张是不是... 您好:哈局十三张这款游戏可以开挂,确实是有挂的,需要了解加客服微信【8383742】很多玩家在这款游...