树莓派——树莓派控制继电器组
一、接线
树莓派的5v——继电器的VCC
树莓派的0v——继电器的GND
其他的四根线为信号线
继电器IN1——IN4分别接到树莓派的GPIO26,
GPIO27,GPIO28,GPIO29。
二、代码
#include <wiringPi.h>
#include <stdio.h>
#include <string.h>
/*定义四个针脚*/
#define SWI1 26
#define SWI2 27
#define SWI3 28
#define SWI4 29
int main()
{
char cmd[12]={'\0'};
//把命令设置为字符串,初始化为空字符。
if(wiringPiSetup()==-1)//设备初始化
{
printf("硬件接口初始化失败\n");
return -1;
}
/*设置SWI1——SWI4为输出引脚*/
pinMode(SWI1,OUTPUT);
pinMode(SWI2,OUTPUT);
pinMode(SWI3,OUTPUT);
pinMode(SWI4,OUTPUT);
//设置SWI1——SWI4引脚上电之前为断开状态
digitalWrite(SWI1,HIGH);
digitalWrite(SWI2,HIGH);
digitalWrite(SWI3,HIGH);
digitalWrite(SWI4,HIGH);
while(1)
{
printf("请输入1/2/3/4on off:off——断开开关,on——导通开关\n");
memset(cmd,'\0',sizeof(cmd));//初始化
//scanf("%s",&cmd);
gets(cmd);
if(strcmp(cmd,"1 on")==0)
{
digitalWrite(SWI1,LOW);
//低电平导通开通
}
else if(strcmp(cmd,"1 off")==0)
{
digitalWrite(SWI1,HIGH);
//高电平导通断开
}
if(strcmp(cmd,"2 on")==0)
{
digitalWrite(SWI2,LOW);
//低电平导通开通
}
else if(strcmp(cmd,"2 off")==0)
{
digitalWrite(SWI2,HIGH);
//高电平导通断开
}
if(strcmp(cmd,"3 on")==0)
{
digitalWrite(SWI3,LOW);
//低电平导通开通
}
else if(strcmp(cmd,"3 off")==0)
{
digitalWrite(SWI3,HIGH);
//高电平导通断开
}
if(strcmp(cmd,"4 on")==0)
{
digitalWrite(SWI4,LOW);
//低电平导通开通
}
else if(strcmp(cmd,"4 off")==0)
{
digitalWrite(SWI4,HIGH);
//高电平导通断开
}
else
{
printf("请输入正确指令\n");
}
}
}
运行时要链接库:gcc demo1.c -lwiringPi
执行代码:./a.out
继电器的灯亮起:
每一个都要执行开关操作
继电器亮
继电器灭
一键关闭和开启
#include <wiringPi.h>
#include <stdio.h>
#include <string.h>
/*定义四个针脚*/
#define SWI1 26
#define SWI2 27
#define SWI3 28
#define SWI4 29
int main()
{
char cmd[12]={'\0'};
//把命令设置为字符串,初始化为空字符。
if(wiringPiSetup()==-1)//设备初始化
{
printf("硬件接口初始化失败\n");
return -1;
}
/*设置SWI1——SWI4为输出引脚*/
pinMode(SWI1,OUTPUT);
pinMode(SWI2,OUTPUT);
pinMode(SWI3,OUTPUT);
pinMode(SWI4,OUTPUT);
//设置SWI1——SWI4引脚上电之前为断开状态
digitalWrite(SWI1,HIGH);
digitalWrite(SWI2,HIGH);
digitalWrite(SWI3,HIGH);
digitalWrite(SWI4,HIGH);
while(1)
{
printf("请输入1/2/3/4/all on/off:off——断开开关,on——导通开关\n");
memset(cmd,'\0',sizeof(cmd));//初始化
//scanf("%s",&cmd);
gets(cmd);
if(strcmp(cmd,"1 on")==0)
{
digitalWrite(SWI1,LOW);
//低电平导通开通
}
else if(strcmp(cmd,"1 off")==0)
{
digitalWrite(SWI1,HIGH);
//高电平导通断开
}
if(strcmp(cmd,"2 on")==0)
{
digitalWrite(SWI2,LOW);
//低电平导通开通
}
else if(strcmp(cmd,"2 off")==0)
{
digitalWrite(SWI2,HIGH);
//高电平导通断开
}
if(strcmp(cmd,"3 on")==0)
{
digitalWrite(SWI3,LOW);
//低电平导通开通
}
else if(strcmp(cmd,"3 off")==0)
{
digitalWrite(SWI3,HIGH);
//高电平导通断开
}
if(strcmp(cmd,"4 on")==0)
{
digitalWrite(SWI4,LOW);
//低电平导通开通
}
else if(strcmp(cmd,"4 off")==0)
{
digitalWrite(SWI4,HIGH);
//高电平导通断开
}
if(strcmp(cmd,"all on")==0)
{
//低电平导通开通
digitalWrite(SWI1,LOW);
digitalWrite(SWI2,LOW);
digitalWrite(SWI3,LOW);
digitalWrite(SWI4,LOW);
}
else if(strcmp(cmd,"all off")==0)
{
//高电平导通断开
digitalWrite(SWI1,HIGH);
digitalWrite(SWI2,HIGH);
digitalWrite(SWI3,HIGH);
digitalWrite(SWI4,HIGH);
}
else
{
printf("请输入正确指令\n");
}
}
}
运行效果:
一键全开:
一键全关
——@上官可编程