目录
- 一、wiringPi库
- 二、继电器
- 1、继电器介绍及接线说明
- 2、树莓派控制继电器
一、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");
}
}
}
结果:
参考:
继电器介绍及接线说明
最后谢谢阅读,笔者乃小白,如有错误之处还请指正。